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,/pluginse/datano 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:
A lista de pacotes no ambiente do Airflow gerenciado (Geração 3) pode ser diferente do ambiente do Airflow gerenciado (Geração 2). Isso pode afetar a compatibilidade dos DAGs com o Airflow gerenciado (Geração 3).
O Airflow gerenciado carrega modificações de configuração, variáveis de ambiente e pacotes PyPI do snapshot do ambiente do Airflow gerenciado (Geração 2) para o Airflow gerenciado (Geração 3) sem mudar ou ajustar para compatibilidade. Para resolver conflitos entre esses parâmetros de configuração, é possível pular o carregamento de pacotes PyPI personalizados, variáveis de ambiente e modificações de configuração do Airflow ao carregar o snapshot.
No Airflow gerenciado (Geração 3), o cluster do ambiente está localizado no projeto de locatário. Verifique se os DAGs são compatíveis com essa mudança. Em particular,
KubernetesPodOperatoras cargas de trabalho agora são escalonadas de forma independente de seu ambiente, e não é possível usar configurações de afinidade de pods.
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:
No Google Cloud console, acesse a página Ambientes.
Selecione um ambiente para ver os detalhes.
Na página Detalhes do ambiente, acesse a guia DAGs.
Clique no nome de um DAG.
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 pauseSubstitua:
COMPOSER_2_ENVpelo nome do ambiente do Airflow gerenciado (Geração 2).PROJECT_IDcom o ID do projeto.COMPOSER_2_LOCATIONpela 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:
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do ambiente do Airflow gerenciado (Geração 2). A página Detalhes do ambiente é aberta.
Clique em Criar snapshot.
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.
Aguarde até que o Airflow gerenciado crie o snapshot.
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
Crie um snapshot do ambiente do Airflow gerenciado (Geração 2):
gcloud composer environments snapshots save \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATIONSubstitua:
COMPOSER_2_ENVpelo nome do ambiente do Airflow gerenciado (Geração 2).COMPOSER_2_LOCATIONpela região em que o ambiente do Airflow gerenciado (Geração 2) está localizado.(Opcional) É possível usar o argumento
--snapshot-locationpara 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.
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):
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do ambiente do Airflow gerenciado (Geração 3). A página Detalhes do ambiente é aberta.
Clique em Carregar snapshot.
Na caixa de diálogo Carregar snapshot, clique em Procurar.
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.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_ENVpelo nome do ambiente do Airflow gerenciado (Geração 3).COMPOSER_3_LOCATIONpela região em que o ambiente do Airflow gerenciado (Geração 3) está localizado.SNAPSHOT_PATHpelo 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:
No Google Cloud console, acesse a página Ambientes.
Selecione um ambiente para ver os detalhes.
Na página Detalhes do ambiente, acesse a guia DAGs.
Clique no nome de um DAG.
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 unpauseSubstitua:
COMPOSER_3_ENVpelo nome do ambiente do Airflow gerenciado (Geração 3).PROJECT_IDcom o ID do projeto.COMPOSER_3_LOCATIONpela região em que o ambiente está localizado.
Verificar erros de DAG
Na interface da Web do Airflow, acesse DAGs e verifique se há erros de sintaxe de DAG relatados.
Verifique se as execuções de DAG estão programadas para o horário correto.
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).
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).