Migrar ambientes para o Airflow gerenciado (geração 3)

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Nesta página, explicamos como transferir DAGs, dados e configuração do ambiente atual do Airflow gerenciado (Geração 2) para o Airflow gerenciado (Geração 3).

Outros guias de migração

De Para Método Guia
Airflow gerenciado (Geração 3), Airflow 2 Airflow gerenciado (Geração 3), Airflow 3 Transferência manual lado a lado Guia de migração manual
Airflow gerenciado (Geração 2) Airflow gerenciado (Geração 3) Lado a lado, usando o script de migração Guia de migração de script
Airflow gerenciado (Geração 2) Airflow gerenciado (Geração 3) Lado a lado, usando snapshots Este guia
Airflow gerenciado (Geração 1 legada), Airflow 2 Airflow gerenciado (Geração 3) Lado a lado, usando snapshots Guia de migração de snapshots
Airflow gerenciado (Geração 1 legada), Airflow 2 Airflow gerenciado (Geração 2) Lado a lado, usando snapshots Guia de migração de snapshots
Airflow gerenciado (Geração 1 legada), Airflow 2 Airflow gerenciado (Geração 2) Transferência manual lado a lado Guia de migração manual
Airflow gerenciado (Geração 1 legada), Airflow 1 Airflow gerenciado (Geração 2), Airflow 2 Lado a lado, usando snapshots Guia de migração de snapshots
Airflow gerenciado (Geração 1 legada), Airflow 1 Airflow gerenciado (Geração 2), Airflow 2 Transferência manual lado a lado Guia de migração manual
Airflow gerenciado (Geração 1 legada), Airflow 1 Airflow gerenciado (Geração 1 legada), Airflow 2 Transferência manual lado a lado Guia de migração manual

Antes de começar

  • Este guia de migração usa snapshots. Os snapshots são compatíveis com o Airflow gerenciado (Geração 2) versão 2.0.9 e mais recentes.

  • O Airflow gerenciado oferece suporte à migração lado a lado do Airflow gerenciado (Geração 2) para o Airflow gerenciado (Geração 3). Não é possível fazer upgrade do Airflow gerenciado (Geração 2) para o Airflow gerenciado (Geração 3) no local.

  • Confira a lista de diferenças entre o Airflow gerenciado (Geração 2) e o Airflow gerenciado (Geração 3). Verifique se o ambiente não usa recursos que ainda não estão disponíveis no Airflow gerenciado (Geração 3).

  • O tamanho máximo do banco de dados do Airflow que oferece suporte a snapshots é de 20 GB. Se o banco de dados do ambiente ocupar mais de 20 GB, reduza o tamanho do banco de dados do Airflow.

  • O número total de objetos nas pastas /dags, /plugins e /data no bucket do ambiente precisa ser menor que 100.000 para criar snapshots.

  • Se você usar o mecanismo XCom para transferir arquivos, certifique-se de que você o use de acordo com as diretrizes do Airflow. A transferência de arquivos grandes ou de um grande número de arquivos usando o XCom afeta o desempenho do banco de dados do Airflow e pode levar a falhas ao carregar snapshots ou fazer upgrade do ambiente. Considere usar alternativas, como o Cloud Storage, para transferir grandes volumes de dados.

Verifique se os DAGs são compatíveis com o Airflow gerenciado (Geração 3)

Para verificar se os DAGs são compatíveis com o Airflow gerenciado (Geração 3), siga estas sugestões:

Pause os DAGs no ambiente do Airflow gerenciado (Geração 2)

Para evitar execuções duplicadas de DAGs, pause todos os DAGs no ambiente do Airflow gerenciado (Geração 2) antes de salvar o snapshot. Pule o DAG de monitoramento de atividade (airflow_monitoring). Ele é usado para fins de monitoramento e não está incluído em snapshots de ambiente.

É possível usar qualquer uma das opções a seguir para pausar DAGs:

  • Pause os DAGs um por um no Google Cloud console:

    1. No Google Cloud console, acesse a página Ambientes.

      Acessar "Ambientes"

    2. Selecione um ambiente para ver os detalhes.

    3. Na página Detalhes do ambiente, acesse a guia DAGs.

    4. Clique no nome de um DAG.

    5. Na página Detalhes do DAG, clique em Pausar DAG.

  • Em a interface da Web do Airflow, acesse DAGs e pause todos os DAGs manualmente.

  • Use o script composer_dags para pausar todos os DAGs:

    python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation pause
    

    Substitua:

    • COMPOSER_2_ENV pelo nome do ambiente do Airflow gerenciado (Geração 2).
    • PROJECT_ID com o ID do projeto.
    • COMPOSER_2_LOCATION pela região em que o ambiente está localizado.

Salvar um snapshot do ambiente do Airflow gerenciado (Geração 2)

Console

Crie um snapshot do ambiente:

  1. No Google Cloud console, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente do Airflow gerenciado (Geração 2). A página Detalhes do ambiente é aberta.

  3. Clique em Criar snapshot.

  4. Na caixa de diálogo Criar snapshot, clique em Enviar. Neste guia, você salva o snapshot no bucket do ambiente do Airflow gerenciado (Geração 2), mas é possível selecionar um local diferente, se quiser. Se você especificar um local personalizado, as contas de serviço dos dois ambientes precisarão ter permissões de leitura e gravação para o local especificado.

  5. Aguarde até que o Airflow gerenciado crie o snapshot.

  6. Depois que o snapshot for criado, a mensagem exibida vai gerar o local do snapshot. Salve essas informações para usar mais tarde ao carregar esse snapshot no ambiente do Airflow gerenciado (Geração 3).

    Por exemplo, o local do snapshot pode ser assim: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

gcloud

  1. Crie um snapshot do ambiente do Airflow gerenciado (Geração 2):

    gcloud composer environments snapshots save \
      COMPOSER_2_ENV \
      --location COMPOSER_2_LOCATION
    

    Substitua:

    • COMPOSER_2_ENV pelo nome do ambiente do Airflow gerenciado (Geração 2).
    • COMPOSER_2_LOCATION pela região em que o ambiente do Airflow gerenciado (Geração 2) está localizado.
    • (Opcional) É possível usar o argumento --snapshot-location para especificar um local personalizado em que o snapshot do ambiente precisa ser armazenado.

      Neste guia, você salva o snapshot no bucket do ambiente do Airflow gerenciado (Geração 2), mas é possível selecionar um local diferente, se quiser. Se você especificar um local personalizado, as contas de serviço dos dois ambientes precisarão ter permissões de leitura e gravação para o local especificado.

  2. Depois que o snapshot for criado, a mensagem exibida vai gerar o local do snapshot. Salve essas informações para usar mais tarde ao carregar esse snapshot no ambiente do Airflow gerenciado (Geração 3).

    Por exemplo, o local do snapshot pode ser assim: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

Criar um ambiente do Airflow gerenciado (Geração 3)

Crie um ambiente do Airflow gerenciado (Geração 3) usando as diretrizes a seguir:

  • É possível começar com a mesma configuração de limites de recursos do ambiente do Airflow gerenciado (Geração 2) e, mais tarde, escalonar e otimizar ainda mais a configuração.

  • Em ambientes do Airflow gerenciado (Geração 3), o processador de DAG do Airflow é executado como um componente de ambiente separado. Como o processador de DAG descarrega a análise de DAGs do programador, talvez seja necessário redistribuir os recursos alocados anteriormente aos programadores do Airflow. É possível fazer isso mais tarde, depois de migrar para o Airflow gerenciado (Geração 3) e monitorar o desempenho do programador e do processador de DAG.

  • O Airflow gerenciado (Geração 3) oferece uma configuração de rede mais simplificada em comparação com o Airflow gerenciado (Geração 2). É possível alternar entre a configuração de rede de IP público e IP particular e anexar e desanexar redes VPC. Não é necessário especificar intervalos de IP . Verifique se a configuração de rede do ambiente do Airflow gerenciado (Geração 3) corresponde à configuração do Airflow gerenciado (Geração 2).

  • Não é necessário especificar modificações de configuração e variáveis de ambiente, porque elas serão substituídas mais tarde ao carregar o snapshot do ambiente do Airflow gerenciado (Geração 2).

Carregar o snapshot no ambiente do Airflow gerenciado (Geração 3)

Console

Para carregar o snapshot no ambiente do Airflow gerenciado (Geração 3):

  1. No Google Cloud console, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente do Airflow gerenciado (Geração 3). A página Detalhes do ambiente é aberta.

  3. Clique em Carregar snapshot.

  4. Na caixa de diálogo Carregar snapshot, clique em Procurar.

  5. Selecione a pasta com o snapshot.

    Se você usar o local padrão para este guia, essa pasta estará localizada no bucket do ambiente do Airflow gerenciado (Geração 2) na pasta /snapshots, e o nome dela será o carimbo de data/hora da operação de salvamento do snapshot. O mesmo local foi exibido na mensagem sobre a criação bem-sucedida do snapshot.

    Por exemplo: us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

  6. Clique em Carregar e aguarde até que o Airflow gerenciado carregue o snapshot.

gcloud

Carregue o snapshot do ambiente do Airflow gerenciado (Geração 2) para o ambiente do Airflow gerenciado (Geração 3):

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Substitua:

  • COMPOSER_3_ENV pelo nome do ambiente do Airflow gerenciado (Geração 3).
  • COMPOSER_3_LOCATION pela região em que o ambiente do Airflow gerenciado (Geração 3) está localizado.
  • SNAPSHOT_PATH pelo URI do bucket do ambiente do Airflow gerenciado (Geração 2), seguido pelo caminho para o snapshot. O mesmo local foi exibido na mensagem sobre a criação bem-sucedida do snapshot. Por exemplo: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12.

Retomar DAGs no ambiente do Airflow gerenciado (Geração 3)

É possível usar qualquer uma das opções a seguir:

  • Retome os DAGs um por um no Google Cloud console:

    1. No Google Cloud console, acesse a página Ambientes.

      Acessar "Ambientes"

    2. Selecione um ambiente para ver os detalhes.

    3. Na página Detalhes do ambiente, acesse a guia DAGs.

    4. Clique no nome de um DAG.

    5. Na página Detalhes do DAG, clique em Retomar DAG.

  • Na interface da Web do Airflow, acesse DAGs e retome todos os DAGs manualmente um por um.

  • Use o script composer_dags para retomar todos os DAGs:

      python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    Substitua:

    • COMPOSER_3_ENV pelo nome do ambiente do Airflow gerenciado (Geração 3).
    • PROJECT_ID com o ID do projeto.
    • COMPOSER_3_LOCATION pela região em que o ambiente está localizado.

Verificar erros de DAG

  1. Na interface da Web do Airflow, acesse DAGs e verifique se há erros de sintaxe de DAG relatados.

  2. Verifique se as execuções de DAG estão programadas para o horário correto.

  3. Aguarde até que as execuções do DAG aconteçam no ambiente do Airflow gerenciado (Geração 3) e verifique se foram bem-sucedidas. Se uma execução do DAG foi bem-sucedida, não a retome no ambiente do Airflow gerenciado (Geração 2). Se você fizer isso, uma execução do DAG para o mesmo horário e data ocorrerá no ambiente do Airflow gerenciado (Geração 2).

  4. Se um DAG específico for executado, tente resolver problemas do DAG até que ele seja executado no Airflow gerenciado (Geração 3).

Monitorar o ambiente do Airflow gerenciado (Geração 3)

Depois de transferir todos os DAGs e a configuração para o ambiente do Airflow gerenciado (Geração 3), monitore-os em busca de possíveis problemas, execuções com falha do DAG e integridade geral do ambiente.

Se o ambiente do Airflow gerenciado (Geração 3) for executado sem problemas por um período suficiente, considere excluir o ambiente do Airflow gerenciado (Geração 2).

A seguir