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 mapear as pastas para os 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" da interface do Cloud Composer.

Observações sobre capacidade

Os 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 as operações e levar a problemas como os seguintes:

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

  • Sincronizar 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 seus 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 do Dataflow py_file. Esse py_file não contém DAGs ou plug-ins, mas ainda é preciso 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 sincroniza o arquivo com o programador que analisa o DAG.

  • Execução do DAG Quando um arquivo é lido pela primeira vez durante a execução dele, o Cloud Composer o sincroniza no worker que está executando 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 seus componentes. Observe que 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.

Registros

A pasta logs/ é sincronizada dos workers do Airflow para 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, dags/, plugins/ e pastas data/

  • O Airflow 2 usa a serialização do DAG pronta para uso. 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 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 é 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

Quando você modifica DAGs ou plug-ins no bucket do Cloud Storage, os dados são sincronizados em todos os nós do 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 quantidades diferentes de CPU e memória para os componentes que realizam a sincronização de dados.

Dependendo da 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 pode ser diferente ao comparar o Cloud Composer 1 com o Cloud Composer 2.

A seguir