Configurer des environnements pour la sérialisation des DAG

Dans un environnement Cloud Composer normal, les DAG sont traités en continu par le programmeur et le serveur Web Airflow. Vous pouvez améliorer la fiabilité et les performances du serveur Web Airflow en activant la sérialisation des DAG, ce qui oblige le programmeur à traiter les fichiers DAG avant leur envoi au serveur Web.

Fonctionnement

Sans sérialisation, les DAG sont traités simultanément par le programmeur et le serveur Web, et le serveur Web charge l'intégralité du sac du DAG dès le démarrage. L'activation de la sérialisation des DAG oblige le programmeur à analyser tous les fichiers DAG avant le démarrage du serveur Web, en stockant les résultats dans une table DAG sérialisée. Le serveur Web charge ensuite chaque DAG à la demande à partir de la table pour effectuer le traitement. La sérialisation réduit l'utilisation du processeur et de la mémoire par le serveur Web, en particulier lors du traitement d'un grand nombre de DAG.

Prérequis et limitations

  • La sérialisation des DAG ne peut être activée que dans les environnements Cloud Composer à l'aide de Composer version 1.8.2 ou ultérieure ET Airflow version 1.10.3 ou ultérieure. Consultez la liste des versions Cloud Composer pour toutes les versions disponibles.

  • La sérialisation des DAG ne peut pas être activée en même temps que le chargement asynchrone des DAG.

  • L'activation de la sérialisation des DAG désactive tous les plug-ins du serveur Web Airflow pour Cloud Composer. Cela n'affecte pas les plug-ins du programmeur ou du nœud de calcul, y compris les opérateurs Airflow, les capteurs, etc.

Activer la sérialisation des DAG

Pour activer la sérialisation des DAG, vous devez spécifier les paramètres de configuration suivants :

Section Clé Value
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 contrôle la fréquence de mise à jour des DAG sérialisés dans la base de données, tandis que [scheduler] dag_dir_list_interval contrôle la fréquence à laquelle les DAG supprimés sont supprimés de la base de données. Nous vous recommandons de définir ces paramètres sur 30 secondes, car une fréquence de mise à jour élevée peut avoir un impact négatif sur les performances.

Remplacer les configurations Airflow

Il existe deux manières de remplacer les configurations Airflow :

Désactiver la sérialisation des DAG

Pour désactiver la sérialisation des DAG, utilisez les remplacements de configuration Airflow pour définir [core] store_serialized_dags et [core] store_dag_code sur False.

Références

Pour en savoir plus sur la sérialisation des DAG, consultez l'article à ce sujet dans la documentation Airflow.