Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Nesta página, você encontra informações sobre os dados que o Cloud Composer armazena no seu ambiente no Cloud Storage.
Quando você cria um ambiente, um bucket do Cloud Storage gerado pelo Cloud Composer é associado a ele. O nome do bucket é baseado na região do ambiente, no nome e em um ID aleatório, como us-central1-b1-6efabcde-bucket
.
O Cloud Composer sincroniza pastas específicas no bucket do ambiente com componentes do Airflow que são executados nele. Por exemplo, quando você atualiza um arquivo com o código do DAG do Airflow no bucket do ambiente, os componentes do Airflow também recebem a versão atualizada. O Cloud Composer usa o Cloud Storage FUSE para sincronização.
Pastas no bucket do Cloud Storage
Pasta | Caminho de armazenamento | Diretório mapeado | Descrição |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Armazena os DAGs do ambiente. |
Plug-ins | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Armazena os plug-ins personalizados, como interfaces, sensores, hooks e operadores internos do Airflow. |
Dados | gs://bucket-name/data |
/home/airflow/gcs/data |
Armazena os dados gerados e usados pelas tarefas. |
Registros | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Armazena os registros de tarefas do Airflow. Os registros também estão disponíveis na interface da Web do Airflow e na guia Logs no console do Google Cloud. |
O Cloud Composer sincroniza as pastas dags/
e plugins/
de forma unidirecional. A sincronização unidirecional significa que as alterações locais nessas
pastas em um componente do Airflow são substituídas. As pastas data/
e logs/
são sincronizadas de forma bidirecional.
A sincronização de dados tem consistência eventual. Para enviar mensagens entre operadores, use XComs.
Observações sobre capacidade
Os dados das pastas dags/
, plugins/
e data/
são sincronizados com os programadores e workers do Airflow.
No Airflow 2, o conteúdo da pasta plugins/
também é sincronizado com o servidor da Web do Airflow. No Airflow 1, as pastas dags/
e plugins/
do conteúdo
são sincronizadas com o servidor da Web do Airflow somente se a serialização de DAG estiver desativada.
Caso contrário, a sincronização não será realizada.
Quanto mais dados forem colocados nessas pastas, mais espaço será ocupado
no armazenamento local dos componentes do Airflow. Salvar muitos dados em
dags/
e plugins/
pode interromper suas operações e causar problemas como:
Um worker ou um programador fica sem armazenamento local e é removido porque não há espaço suficiente no disco local do componente.
A sincronização de arquivos das pastas
dags/
eplugins/
para workers e programadores leva muito tempo.A sincronização de arquivos das pastas
dags/
eplugins/
para workers e programadores se torna impossível. Por exemplo, você armazena um arquivo de 2 GB na pastadags/
, mas o disco local de um worker do Airflow só pode acomodar 1 GB. Durante a sincronização, o worker fica sem armazenamento local e a sincronização não pode ser concluída.
Pastas de DAGs e plug-ins
Para evitar falhas na execução de DAGs, armazene DAGs, plug-ins e módulos do Python nas pastas dags/
ou plugins/
, mesmo que os módulos do Python não tenham DAGs ou plug-ins.
Por exemplo, você usa um DataFlowPythonOperator
que faz referência a um pipeline do Dataflow py_file
. Esse py_file
não contém DAGs ou
plug-ins, mas ainda precisa ser armazenado na pasta dags/
ou plugins/
.
Pasta de dados
Há casos em que determinados arquivos da pasta data/
são
sincronizados com um componente específico do Airflow. Por exemplo, quando o Cloud Composer tenta ler um determinado arquivo pela primeira vez durante:
Análise de DAG: quando um arquivo é lido pela primeira vez durante a análise de DAG, o Cloud Composer o sincroniza com o programador que analisa o DAG.
Execução de DAG: quando um arquivo é lido pela primeira vez durante a execução de DAG, o Cloud Composer o sincroniza com o worker que executa a execução.
Os componentes do Airflow têm armazenamento local limitado. Portanto, considere excluir arquivos transferidos por download para liberar espaço em disco nos componentes. O uso do armazenamento local também pode aumentar temporariamente se você tiver tarefas simultâneas que fazem o download do mesmo arquivo para um único worker do Airflow.
Pasta de registros
A pasta logs/
é sincronizada dos workers do Airflow para o bucket do ambiente usando a API Cloud Storage.
A cota da API Cloud Storage é calculada pela quantidade de dados movidos. Portanto, o número de tarefas do Airflow executadas pelo sistema pode aumentar o uso da API Cloud Storage: quanto mais tarefas você executar, maiores serão seus arquivos de registro.
Sincronização com o servidor da Web
O Airflow 2 usa a serialização de DAGs de forma nativa. A pasta plugins/
é sincronizada automaticamente com o servidor da Web para que os plug-ins possam ser carregados pela interface do Airflow. Não é possível desativar a serialização de DAG no Airflow 2.
No Airflow 1, a serialização de DAG é compatível e ativada por padrão no Cloud Composer.
- Quando a serialização do DAG está ativada, os arquivos das pastas
dags/
eplugins/
não são sincronizados com o servidor da Web. - Quando a serialização do DAG está desativada, os arquivos de
dags/
eplugins/
são sincronizados com o servidor da Web.