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 dos ambientes atuais do Airflow Gerenciado (geração 1 legada), Airflow 2 para o Airflow Gerenciado (geração 2), Airflow 2.
Este guia de migração usa o recurso Snapshots.
Outros guias de migração
| De | Para | Método | Guia |
|---|---|---|---|
| Airflow gerenciado (Geração 3), Airflow 2 | Airflow gerenciado (Geração 3), Airflow 3 | Lado a lado, transferência manual | Guia de migração manual |
| Airflow Gerenciado (Geração 2) | Airflow gerenciado (Geração 3) | Paralela, usando o script de migração | Guia de migração de scripts |
| Airflow Gerenciado (Geração 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 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 | Este guia |
| Airflow gerenciado (Geração 1 legada), Airflow 2 | Airflow Gerenciado (Geração 2) | Lado a lado, transferência manual | 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 | Lado a lado, transferência manual | Guia de migração manual |
| Airflow gerenciado (Geração 1 legada), Airflow 1 | Airflow gerenciado (Geração 1 legada), Airflow 2 | Lado a lado, transferência manual | Guia de migração manual |
Antes de começar
Os snapshots são compatíveis com o Airflow Gerenciado (Geração 2) versão 2.0.9 e mais recentes. O Airflow gerenciado (Geração 1 legada) é compatível com o salvamento de snapshots de ambiente na versão 1.18.5.
O Airflow gerenciado é compatível com a migração lado a lado do Airflow gerenciado (Geração 1 legada) para o Airflow gerenciado (Geração 2). Não é possível fazer upgrade do Airflow gerenciado (geração 1 legada) para o Airflow gerenciado (geração 2) no local.
Confira a lista de diferenças entre o Airflow gerenciado (Geração 1 legada) e o Airflow gerenciado (Geração 2).
O tamanho máximo do banco de dados do Airflow que aceita 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, use-o de acordo com as diretrizes do Airflow. A transferência de arquivos grandes ou de um grande número de arquivos usando XCom afeta o desempenho do banco de dados do Airflow e pode causar falhas ao carregar snapshots ou fazer upgrade do ambiente. Considere usar alternativas como o Cloud Storage para transferir grandes volumes de dados.
Etapa 1: pausar DAGs no ambiente do Airflow gerenciado (geração 1 legada)
Para evitar execuções de DAG duplicadas, pause todos os DAGs no ambiente do Airflow Gerenciado (geração 1 legada) antes de salvar o snapshot.
Você pode usar uma das seguintes opções:
Na 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_1_ENV \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ --operation pauseSubstitua:
COMPOSER_1_ENVpelo nome do ambiente do Airflow Gerenciado (geração 1 legada).PROJECT_IDpelo ID do projeto;COMPOSER_1_LOCATIONpela região em que o ambiente está localizado;
(Versões 2.9.1 e mais recentes do Airflow) Se houver erros de cota ao pausar um grande número de DAGs, use os seguintes comandos da CLI do Airflow para pausar todos os DAGs de uma só vez:
gcloud composer environments run COMPOSER_1_ENV dags pause \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Versões do Airflow anteriores à 2.9.1) Se houver erros de cota ao pausar um grande número de DAGs, é possível pausar DAGs usando a API REST do Airflow. Consulte também Como testar a API na documentação do Airflow.
Etapa 2: salvar o snapshot do ambiente do Airflow gerenciado (geração 1 legada)
Console
Crie um snapshot do seu ambiente:
No console Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente do Airflow Gerenciado (geração 1 legada). 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 1 legada), mas é possível selecionar um local diferente, se quiser.
Aguarde até que o Airflow Gerenciado crie o instantâneo.
gcloud
Receba o URI do bucket do ambiente do Airflow gerenciado (geração 1 legada):
Execute este comando:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"Substitua:
COMPOSER_1_ENVcom o nome do seu ambiente do Airflow Gerenciado (geração 1 legada).COMPOSER_1_LOCATIONpela região em que o ambiente está localizado;
Na saída, remova a pasta
/dags. O resultado é o URI do bucket do ambiente do Airflow gerenciado (geração 1 legada).Por exemplo, altere
gs://us-central1-example-916807e1-bucket/dagsparags://us-central1-example-916807e1-bucket.
Crie um snapshot do seu ambiente do Airflow gerenciado (Geração 1 legada):
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"Substitua:
COMPOSER_1_ENVpelo nome do ambiente do Airflow Gerenciado (geração 1 legada).COMPOSER_1_LOCATIONcom a região em que o ambiente do Airflow Gerenciado (geração 1 legada) está localizado.COMPOSER_1_SNAPSHOTS_FOLDERpelo URI do bucket do ambiente do Airflow Gerenciado (Geração 1 legada). Neste guia, você salva o snapshot no bucket do ambiente do Airflow Gerenciado (geração 1 legada), mas é possível selecionar outro local, 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.
Etapa 3: criar um ambiente do Airflow gerenciado (geração 2)
Crie um ambiente do Airflow Gerenciado (Geração 2). É possível começar com uma predefinição de ambiente que corresponda às demandas de recursos esperadas e, depois, escalonar e otimizar o ambiente ainda mais.
Não é necessário especificar substituiçõ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 1 legada).
Etapa 4: carregar o snapshot no ambiente do Airflow gerenciado (geração 2)
Console
Para carregar o snapshot no ambiente do Airflow Gerenciado (Geração 2):
No console Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente do Airflow Gerenciado (Geração 2). 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 deste guia, essa pasta estará no bucket do ambiente do Airflow gerenciado (geração 1 legada) na pasta
/snapshots, e o nome dela será o carimbo de data/hora da operação de salvamento do snapshot. Por exemplo,us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.Clique em Carregar e aguarde até que o Airflow Gerenciado carregue o snapshot.
gcloud
Carregue o snapshot do ambiente do Airflow gerenciado (geração 1 legada) para o ambiente do Airflow gerenciado (geração 2):
gcloud composer environments snapshots load \
COMPOSER_2_ENV \
--location COMPOSER_2_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Substitua:
COMPOSER_2_ENVcom o 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.SNAPSHOT_PATHcom o URI do bucket do ambiente do Airflow gerenciado (geração 1 legada) seguido pelo caminho do snapshot. Por exemplo,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.
Etapa 5: retomar os DAGs no ambiente do Airflow Gerenciado (geração 2)
Você pode usar uma das seguintes opções:
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_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation unpauseSubstitua:
COMPOSER_2_ENVcom o nome do ambiente do Airflow Gerenciado (Geração 2).PROJECT_IDpelo ID do projeto;COMPOSER_2_LOCATIONpela região em que o ambiente está localizado;
(versões 2.9.1 e mais recentes do Airflow) Se houver erros de cota ao retomar um grande número de DAGs, use os seguintes comandos da CLI do Airflow para retomar todos os DAGs de uma só vez:
gcloud composer environments run COMPOSER_2_ENV dags unpause \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Versões do Airflow anteriores à 2.9.1) Se houver erros de cota ao retomar um grande número de DAGs, é possível fazer isso usando a API REST do Airflow. Consulte também Como testar a API na documentação do Airflow.
Etapa 6: verificar se há erros no 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 2) 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 1 legada). Se você fizer isso, uma execução do DAG para o mesmo horário e data vai ocorrer no ambiente do Airflow gerenciado (geração 1 legada).
Se uma execução de DAG específica falhar, tente resolver problemas do DAG até que ele seja executado com sucesso no Airflow Gerenciado (Gen 2).
Etapa 7: monitorar o ambiente do Airflow gerenciado (geração 2)
Depois de transferir todos os DAGs e a configuração para o ambiente do Airflow Gerenciado (Geração 2), monitore-o 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 2) for executado sem problemas por um período suficiente, considere excluir o ambiente do Airflow gerenciado (Geração 1 legada).
A seguir
- Como resolver problemas de DAGs
- Como resolver problemas da criação de ambientes
- Solução de problemas de atualizações do ambiente
- Como usar pacotes de backport