Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como transferir DAGs, dados e configuração dos seus ambientes do Cloud Composer 1 e Airflow 2 existentes para o Cloud Composer 3 e o Airflow 2 através de capturas instantâneas.
Outros guias de migração
De | Para | Método | Guia |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | Paralelamente, usando o guião de migração | Guia de migração de scripts |
Cloud Composer 2 | Cloud Composer 3 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | Lado a lado, usando instantâneos | Este guia |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Transferência manual lado a lado | Guia de migração manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Lado a lado, usando instantâneos | Guia de migração do Snapshots |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Transferência manual lado a lado | Guia de migração manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 1, Airflow 2 | Transferência manual lado a lado | Guia de migração manual |
Antes de começar
O Cloud Composer suporta a migração lado a lado do Cloud Composer 1 para o Cloud Composer 3. Não é possível atualizar o Cloud Composer 1 para o Cloud Composer 3 no local.
Consulte a lista de diferenças entre o Cloud Composer 1, o Cloud Composer 2 e o Cloud Composer 3.
O tamanho máximo da base de dados do Airflow que suporta resumos é de 20 GB. Se a base de dados do seu ambiente ocupar mais de 20 GB, reduza o tamanho da base de dados do Airflow.
O número total de objetos nas pastas
/dags
,/plugins
e/data
no contentor do ambiente tem de ser inferior a 100 000 para criar instantâneos.Se usar o mecanismo XCom para transferir ficheiros, certifique-se de que o usa de acordo com as diretrizes do Airflow. A transferência de ficheiros grandes ou de um grande número de ficheiros através do XCom afeta o desempenho da base de dados do Airflow e pode originar falhas ao carregar instantâneos ou atualizar o seu ambiente. Considere usar alternativas, como o Cloud Storage, para transferir grandes volumes de dados.
Certifique-se de que os seus DAGs são compatíveis com o Cloud Composer 3
Certifique-se de que os seus DAGs são compatíveis com o Cloud Composer 3 seguindo estas sugestões:
A [lista de pacotes][cc-versions] no ambiente do Cloud Composer 3 pode ser diferente da do ambiente do Cloud Composer 1. Isto pode afetar a compatibilidade dos seus DAGs com o Cloud Composer 3.
O Cloud Composer carrega substituições de configuração, variáveis de ambiente e pacotes PyPI a partir da captura instantânea do ambiente do Cloud Composer 1 para o Cloud Composer 3 sem os alterar nem ajustar para compatibilidade. Se os pacotes PyPI personalizados causarem conflitos de dependências, pode ignorar a respetiva instalação quando carregar a captura instantânea.
No Cloud Composer 3, o cluster do ambiente está localizado no projeto de inquilino. Certifique-se de que os seus DAGs são compatíveis com esta alteração. Em particular, as cargas de trabalho
KubernetesPodOperator
são agora dimensionadas independentemente do seu ambiente e não é possível usar configurações de afinidade de pods.No Cloud Composer 3, não é possível aceder diretamente à base de dados do Airflow. Certifique-se de que os seus DAGs são compatíveis com esta alteração.
Pause DAGs no seu ambiente do Cloud Composer 1
Para evitar execuções duplicadas de DAGs, pause todos os DAGs no seu ambiente do Cloud Composer 1
antes de guardar a respetiva captura de ecrã. Ignore o DAG de monitorização da vivacidade (airflow_monitoring
), que é usado para fins de monitorização e não está incluído nas capturas instantâneas do ambiente.
Pode usar qualquer uma das seguintes opções:
Na interface Web do Airflow, aceda a 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 pause
Substituir:
COMPOSER_1_ENV
com o nome do seu ambiente do Cloud Composer 1.PROJECT_ID
com o ID do projeto.COMPOSER_1_LOCATION
com a região onde o ambiente está localizado.
(Versões 2.9.1 e posteriores do Airflow) Se existirem erros de quota ao pausar um grande número de DAGs, pode usar 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 a 2.9.1) Se existirem erros de quota ao pausar um grande número de DAGs, é possível pausar DAGs através da API REST do Airflow. Consulte também a secção Experimentar a API na documentação do Airflow.
Guarde a captura instantânea do seu ambiente do Cloud Composer 1
Consola
Crie um instantâneo do seu ambiente:
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente do Cloud Composer 1. É apresentada a página Detalhes do ambiente.
Clique em Criar instantâneo.
Na caixa de diálogo Criar instantâneo, clique em Enviar. Neste guia, guarda a captura instantânea no contentor do ambiente do Cloud Composer 1, mas pode selecionar uma localização diferente, se quiser.
Aguarde até que o Cloud Composer crie a captura instantânea.
gcloud
Obtenha o URI do contentor do ambiente 1 do Cloud Composer:
Execute o seguinte comando:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"
Substituir:
COMPOSER_1_ENV
com o nome do seu ambiente do Cloud Composer 1.COMPOSER_1_LOCATION
com a região onde o ambiente está localizado.
Na saída, remova a pasta
/dags
. O resultado é o URI do contentor do seu ambiente do Cloud Composer 1.Por exemplo, altere
gs://us-central1-example-916807e1-bucket/dags
parags://us-central1-example-916807e1-bucket
.
Crie um instantâneo do seu ambiente do Cloud Composer 1:
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
Substituir:
COMPOSER_1_ENV
com o nome do seu ambiente do Cloud Composer 1.COMPOSER_1_LOCATION
com a região onde o ambiente do Cloud Composer 1 está localizado.COMPOSER_1_SNAPSHOTS_FOLDER
com o URI do contentor do seu ambiente 1 do Cloud Composer. Neste guia, guarda a imagem instantânea no contentor do ambiente do Cloud Composer 1, mas pode selecionar uma localização diferente, se quiser. Se especificar uma localização personalizada, as contas de serviço de ambos os ambientes têm de ter autorizações de leitura e escrita para qualquer localização disponível para as contas de serviço de ambos os ambientes.
Crie um ambiente do Cloud Composer 3
Crie um ambiente do Cloud Composer 3. Pode começar com uma predefinição de ambiente que corresponda às demandas de recursos esperadas e, mais tarde, dimensionar e otimizar ainda mais o seu ambiente.
Não precisa de especificar substituições de configuração nem variáveis de ambiente, porque as substitui mais tarde quando carregar o instantâneo do seu ambiente do Cloud Composer 1.
Carregue a captura de ecrã para o seu ambiente do Cloud Composer 3
Consola
Para carregar a captura instantânea para o seu ambiente do Cloud Composer 3:
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente do Cloud Composer 3. É apresentada a página Detalhes do ambiente.
Clique em Carregar instantâneo.
Na caixa de diálogo Carregar resumo, clique em Procurar.
Selecione a pasta com o instantâneo. Se usar a localização predefinida para este guia, esta pasta encontra-se no contentor do ambiente do Cloud Composer 1 na pasta
/snapshots
e o respetivo nome é a data/hora da operação de guardar a captura de ecrã. 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 Cloud Composer carregue a captura instantânea.
gcloud
Carregue a captura instantânea do seu ambiente do Cloud Composer 1 para o seu ambiente do Cloud Composer 3:
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Substituir:
COMPOSER_3_ENV
com o nome do seu ambiente do Cloud Composer 3.COMPOSER_3_LOCATION
com a região onde o ambiente do Cloud Composer 3 está localizado.SNAPSHOT_PATH
com o URI do contentor do seu ambiente 1 do Cloud Composer, seguido do caminho para a captura instantânea. Por exemplo,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.
Retome os DAGs no ambiente do Cloud Composer 3
Pode usar qualquer uma das seguintes opções:
Na interface Web do Airflow, aceda a DAGs e retome todos os DAGs manualmente, um a um.
Use o script composer_dags para reativar todos os DAGs:
python3 composer_dags.py --environment COMPOSER_3_ENV \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ --operation unpause
Substituir:
COMPOSER_3_ENV
com o nome do seu ambiente do Cloud Composer 3.PROJECT_ID
com o ID do projeto.COMPOSER_3_LOCATION
com a região onde o ambiente está localizado.
(Versões 2.9.1 e posteriores do Airflow) Se existirem erros de quota ao retomar um grande número de DAGs, pode usar os seguintes comandos da CLI do Airflow para retomar todos os DAGs de uma só vez:
gcloud composer environments run COMPOSER_3_ENV dags unpause \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ -- -y --treat-dag-id-as-regex ".*"
(Versões do Airflow anteriores a 2.9.1) Se existirem erros de quota ao reativar um grande número de DAGs, é possível reativar DAGs através da API REST do Airflow. Consulte também a secção Experimentar a API na documentação do Airflow.
Verifique se existem erros de DAG
Na interface Web do Airflow, aceda a DAGs e verifique se existem erros de sintaxe de DAG comunicados.
Verifique se as execuções de DAG estão agendadas para a hora correta.
Aguarde a execução dos DAGs no ambiente do Cloud Composer 3 e verifique se foram bem-sucedidos. Se a execução de um DAG tiver sido bem-sucedida, não a retome no ambiente do Cloud Composer 1. Se o fizer, é executado um DAG para a mesma data e hora no ambiente do Cloud Composer 1.
Se a execução de um DAG específico falhar, tente resolver os problemas do DAG até que seja executado com êxito no Cloud Composer 3.
Monitorize o seu ambiente do Cloud Composer 3
Depois de transferir todos os DAGs e a configuração para o ambiente do Cloud Composer 3, monitorize-o para detetar potenciais problemas, execuções de DAGs com falhas e o estado geral do ambiente.
Se o ambiente do Cloud Composer 3 for executado sem problemas durante um período suficiente, considere eliminar o ambiente do Cloud Composer 1.
O que se segue?
- Resolução de problemas de DAGs
- Resolução de problemas de criação do ambiente
- Resolução de problemas de atualizações do ambiente