Dados armazenados no Cloud Storage

Cloud Composer 1 | Cloud Composer 2

Nesta página, você vê quais dados do ambiente são armazenados pelo Cloud Composer 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-6efannnn-bucket.

O Cloud Composer espera o código-fonte dos fluxos de trabalho (DAGs) e as dependências deles em pastas específicas no Cloud Storage. Ele usa o Cloud Storage FUSE para associar as pastas aos componentes do Airflow no ambiente do Cloud Composer.

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. Somente os DAGs dessa pasta são programados no 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. Essa pasta é ativada em todos os nós de worker.
Registros gs://bucket-name/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 "Registros" na interface do Cloud Composer.

Observações sobre capacidade

Dados das pastas dags/, plugins/ e data/ são sincronizados com os programadores e os 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 de conteúdo dags/ e plugins/ serão sincronizadas com o servidor da Web do Airflow somente se a serialização do DAG estiver desativada. Caso contrário, a sincronização não será realizada.

Quanto mais dados são colocados nessas pastas, mais espaço é ocupado no armazenamento local dos componentes do Airflow. Salvar muitos dados em dags/ e plugins/ pode interromper suas operações e levar a problemas como estes:

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

  • A sincronização de arquivos das pastas dags/ e plugins/ com workers e programadores leva muito tempo.

  • A sincronização de arquivos das pastas dags/ e plugins/ com workers e programadores se torna impossível. Por exemplo, você armazena um arquivo de 2 GB na pasta dags/, mas o disco local do componente só pode acomodar 1 GB. Durante a sincronização, o componente fica sem armazenamento local, e a sincronização não pode ser concluída.

DAGs e plug-ins

Para evitar falhas no fluxo de trabalho, armazene os DAGs, plug-ins e módulos do Python nas pastas dags/ ou plugins/, mesmo que os módulos do Python não contenham DAGs ou plug-ins.

Por exemplo, você usa um DataFlowPythonOperator que faz referência a um pipeline py_file do Dataflow. Esse py_file não contém DAGs ou plug-ins, mas você ainda precisa armazená-lo na pasta dags/ ou plugins/.

Dados

Há cenários 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 do DAG Quando um arquivo é lido pela primeira vez durante a análise do DAG, o Cloud Composer o sincroniza com o programador que o analisa.

  • Execução do DAG Quando um arquivo é lido pela primeira vez durante a execução do DAG, o Cloud Composer o sincroniza com o worker que está executando a execução.

Os componentes do Airflow têm armazenamento local limitado. Por isso, considere excluir arquivos transferidos por download para liberar espaço em disco nos seus componentes. Observe que o uso do armazenamento local também pode aumentar temporariamente se você tiver tarefas simultâneas que façam o download do mesmo arquivo em um único worker do Airflow.

Registros

A pasta logs/ é sincronizada dos workers do Airflow com o bucket 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 que seu sistema executa pode aumentar o uso da API Cloud Storage: quanto mais tarefas você executa, maiores são os arquivos de registros.

Servidor da Web, pastas dags/, plugins/ e data/

  • O Airflow 2 usa a serialização do DAG pronta para uso. A pasta plugins/ é sincronizada automaticamente com o Webserver para que os plug-ins possam ser carregados pela IU do Airflow. Não é possível desativar a serialização do DAG no Airflow 2.

  • No Airflow 1, a serialização do DAG é compatível e é ativada por padrão no Cloud Composer.

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

Sincronização de dados

Ao modificar DAGs ou plug-ins no bucket do Cloud Storage, os dados são sincronizados em todos os nós no cluster.

O Cloud Composer sincroniza as pastas dags/ e plugins/ unidirecionalmente, fazendo uma cópia local. A sincronização unidirecional significa que as alterações locais nessas pastas são substituídas.

As pastas data/ e logs/ são sincronizadas bidirecionalmente usando o Cloud Storage FUSE.

Diferenças entre o Cloud Composer 1 e o Cloud Composer 2

O Cloud Composer 1 e o Cloud Composer 2 alocam diferentes quantidades de CPU e memória para os componentes que realizam a sincronização de dados.

Dependendo da sua configuração, a velocidade da sincronização de conteúdo para pastas dags/, plugins/ e data/ entre o bucket do Cloud Storage e os componentes do Airflow poderá ser diferente se você comparar o Cloud Composer 1 e o Cloud Composer 2.

A seguir