Como configurar ambientes para serialização de DAG

Em um ambiente normal do Cloud Composer, os gráficos acíclicos direcionados (DAGs) são processados continuamente pelo programador do Airflow e pelo servidor da Web. É possível melhorar a confiabilidade e o desempenho do servidor da Web do Airflow ativando a serialização do DAG, o que força o programador a processar arquivos DAG antes de enviá-los ao servidor.

Como funciona

Sem a serialização do DAG, os DAGs são processados simultaneamente pelo programador e pelo servidor da Web, e o servidor da Web carrega toda a bagagem do DAG assim que começa. A ativação da serialização do DAG força o programador a analisar todos os arquivos do DAG antes do início do servidor da Web, armazenando os resultados em uma tabela de DAG serializada. Em seguida, o servidor da Web carrega cada DAG sob demanda da tabela para processamento. A serialização de DAGs dessa maneira reduziu o uso de CPU e da memória pelo servidor da Web, especialmente ao processar um grande número de DAGs.

Pré-requisitos e limitações

  • A serialização do DAG só pode ser ativada em ambientes do Cloud Composer usando a versão 1.8.2 ou mais recente do Composer E a versão 1.10.3 ou mais recente do Airflow. Consulte a lista de versões do Cloud Composer para ver todas as versões disponíveis.

  • A serialização do DAG não pode ser ativada ao mesmo tempo que o carregamento de DAG assíncrono.

  • Ativar a serialização do DAG desativa todos os plug-ins de servidor da Web do Airflow para o Cloud Composer. Isso não afeta os plug-ins do programador ou do worker, incluindo operadores do Airflow, sensores etc.

Como ativar a serialização do DAG

Para ativar a serialização do DAG, especifique os seguintes parâmetros de configuração:

Seção Chave Valor
core store_serialized_dags True
core store_dag_code True
core min_serialized_dag_update_interval 30
scheduler dag_dir_list_interval 30

[core] min_serialized_dag_update_interval controla com que frequência o DAG serializado é atualizado no banco de dados, enquanto [scheduler] dag_dir_list_interval controla a frequência com que os DAGs removidos são excluídos do banco de dados. Recomendamos defini-los como 30 segundos porque uma frequência de atualização alta pode afetar negativamente o desempenho.

Como modificar as configurações do Airflow

Há duas maneiras de modificar as configurações do Airflow:

Como desativar a serialização do DAG

Para desativar a serialização do DAG, use as modificações da configuração do Airflow para definir [core] store_serialized_dags e [core] store_dag_code como False.

Referências

Para saber mais sobre a serialização do DAG, leia o artigo relevante na documentação do Airflow (em inglês).