Dados armazenados no Cloud Storage

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página descreve os dados que o Cloud Composer armazena para o seu ambiente no Cloud Storage.

Quando cria um ambiente, o Cloud Composer cria um contentor do Cloud Storage e associa o contentor ao seu ambiente. O nome do contentor baseia-se na região do ambiente, no nome e num ID aleatório, como us-central1-b1-6efabcde-bucket.

O Cloud Composer sincroniza pastas específicas no contentor do seu ambiente com os componentes do Airflow que são executados no seu ambiente. Por exemplo, quando atualiza um ficheiro com o código do seu DAG do Airflow no contentor 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 contentor do Cloud Storage

Pasta Caminho de armazenamento Diretório mapeado Descrição
DAG gs://bucket-name/dags /home/airflow/gcs/dags Armazena os DAGs para o seu ambiente.
Plug-ins gs://bucket-name/plugins /home/airflow/gcs/plugins Armazena os seus plug-ins personalizados, como operadores, hooks, sensores ou interfaces do Airflow internos personalizados.
Dados gs://bucket-name/data /home/airflow/gcs/data Armazena os dados que as tarefas produzem e utilizam.
Registos gs://bucket-name/logs /home/airflow/gcs/logs Armazena os registos do Airflow para tarefas. Os registos também estão disponíveis na interface Web do Airflow e no separador Registos na Google Cloud consola.

O Cloud Composer sincroniza pastas unidirecionalmente: do contentor para os componentes do Airflow. A sincronização unidirecional significa que as alterações locais nestas pastas num componente do Airflow são substituídas.

A sincronização de dados acaba por ser consistente. Para enviar mensagens de um operador para outro, use XComs.

Considerações sobre a capacidade

Os dados das pastas dags/, plugins/ e data/ são sincronizados com os programadores e os trabalhadores do Airflow.

No Airflow 2, o conteúdo da pasta plugins/ também é sincronizado com o servidor Web do Airflow. No Airflow 1, as pastas dags/ e plugins/ de conteúdo são sincronizadas com o servidor Web do Airflow apenas se a serialização de DAGs estiver desativada. Caso contrário, a sincronização não é realizada.

Quanto mais dados forem colocados nestas pastas, mais espaço é ocupado no armazenamento local dos componentes do Airflow. A poupança de demasiados dados no dags/ e plugins/ pode interromper as suas operações e originar problemas como:

  • Um trabalhador ou um programador fica sem armazenamento local e é removido devido a espaço insuficiente no disco local do componente.

  • A sincronização de ficheiros das pastas dags/ e plugins/ para os trabalhadores e os programadores demora muito tempo.

  • A sincronização de ficheiros das pastas dags/ e plugins/ com os trabalhadores e os agendadores torna-se impossível. Por exemplo, armazena um ficheiro de 2 GB na pasta dags/, mas o disco local de um trabalhador do Airflow só pode acomodar 1 GB. Durante a sincronização, o trabalhador fica sem armazenamento local e não é possível concluir a sincronização.

Pastas de DAGs e plug-ins

Para evitar falhas na execução de DAGs, armazene os seus DAGs, plug-ins e módulos Python nas pastas dags/ ou plugins/, mesmo que os seus módulos Python não contenham DAGs nem plug-ins.

Por exemplo, usa um DataFlowPythonOperator que faz referência a um pipeline do py_file Dataflow. Esse ficheiro py_file não contém DAGs nem plug-ins, mas tem de o armazenar na pasta dags/ ou plugins/.

Pasta de dados

Existem cenários em que determinados ficheiros da pasta data/ são sincronizados com um componente específico do Airflow. Por exemplo, quando o Cloud Composer tenta ler um determinado ficheiro pela primeira vez durante:

  • Análise DAG: quando um ficheiro é lido pela primeira vez durante a análise DAG, o Cloud Composer sincroniza-o com o programador que analisa o DAG.

  • Execução de DAG: quando um ficheiro é lido pela primeira vez durante a execução de DAG, o Cloud Composer sincroniza-o com o trabalhador que está a executar a execução.

Os componentes do Airflow têm armazenamento local limitado, pelo que deve considerar eliminar os ficheiros transferidos para libertar espaço em disco nos seus componentes. Tenha em atenção que a utilização do armazenamento local também pode aumentar temporariamente se tiver tarefas simultâneas que transfiram o mesmo ficheiro para um único trabalhador do Airflow.

Pasta de registos

A pasta logs/ é sincronizada dos trabalhadores do Airflow para o contentor do ambiente através da API Cloud Storage.

A quota da API Cloud Storage é calculada pela quantidade de dados movidos, pelo que o número de tarefas do Airflow que o seu sistema executa pode aumentar a sua utilização da API Cloud Storage: quanto mais tarefas executar, maiores são os seus ficheiros de registo.

Sincronização com o servidor Web

O Airflow 2 usa a serialização de DAGs de imediato. A pasta plugins/ é sincronizada automaticamente com o servidor Web para que os plug-ins possam ser carregados pela IU do Airflow. Não pode desativar a serialização de DAGs no Airflow 2.

No Airflow 1, a serialização de DAGs é suportada e está ativada por predefinição no Cloud Composer.

  • Quando a serialização de DAG está ativada, os ficheiros das pastas dags/ e plugins/ não são sincronizados com o servidor Web.
  • Quando a serialização de DAG está desativada, os ficheiros de dags/ e plugins/ são sincronizados com o servidor Web.

O que se segue?