82 votes

Comment supprimer les sacs de l'exemple par défaut dans le flux d'air

Je suis un nouvel utilisateur du logiciel libre de gestion des flux de travail et des données d'Airbnb. débit d'air . Il existe des dizaines d'exemples d'erreurs par défaut après le démarrage de l'interface utilisateur Web. J'ai essayé de nombreuses façons de supprimer ces dags, mais je n'y suis pas parvenu.

  • load_examples = False est défini dans airflow.cfg.
  • Le dossier lib/python2.7/site-packages/airflow/example_dags est supprimé.

Les états de ces dags d'exemple sont devenus gris après que j'ai supprimé le dossier dags, mais les éléments occupent toujours l'écran de l'interface Web. Et un nouveau dossier de dags est spécifié dans airflow.cfg en tant que dags_folder = /mnt/dag/1 . J'ai vérifié ce dossier dag, il n'y a rien. Je trouve vraiment bizarre qu'il soit si difficile de supprimer ces exemples.

157voto

jhnclvr Points 880

Lorsque vous démarrez le débit d'air, assurez-vous de le régler :

load_examples = False

à l'intérieur de votre airflow.cfg

Si vous avez déjà lancé le flux d'air sans que ce paramètre soit réglé sur false, vous pouvez le régler sur false et exécuter airflow resetdb dans le cli (!ce qui détruira toutes les informations actuelles de la dag !).

Vous pouvez également vous rendre dans le airflow_db et supprimer manuellement ces entrées du dag table.

2 votes

Merci beaucoup, j'ai résolu le problème en suivant votre réponse.

9 votes

Je viens d'essayer cela dans la version 1.8.1 et cela ne semble pas suffire. Je peux confirmer que la table dag est vide après avoir exécuté airflow resetdb J'ai fait le changement dans le fichier cfg, mais les dags d'exemple sont toujours là dans le serveur web. J'ai dû redémarrer le serveur web pour que cela fonctionne. Cela a impliqué de tuer un grand nombre de processus et de lancer airflow webserver encore. Il est probablement préférable d'utiliser systemd ou upstart pour gérer les redémarrages. airflow.incubator.apache.org/

1 votes

L'exécution de la commande airflow resetdb fonctionne bien en 1.10.5. devrait être une solution acceptée (upvoting pour le moment)

26voto

paradox Points 97

Pour Airflow 2.0, dans docker-compose.yaml, vous pouvez configurer AIRFLOW__CORE__LOAD_EXAMPLES: 'false' pour ne pas les charger au lieu de modifier le fichier .cfg.

1 votes

Cela m'a évité de me taper la tête contre un mur. Merci ! Le fichier par défaut de docker-compose dans la documentation a ce paramètre défini et il remplace tout ce qui se trouve dans la section airflow.cfg fichier.

12voto

J Schmidt Points 65

Comme d'autres l'ont dit, vous pouvez changer load_examples = False sur airflow.cfg . Cependant, cela nécessite que le fichier cfg existe déjà.

Vous pouvez initier le DB airflow sans avoir à configurer le fichier cfg en utilisant les variables ENV.

export AIRFLOW__CORE__LOAD_EXAMPLES=False
airflow initdb

Ver docs pour plus d'informations.

4voto

Dipak Tandel Points 69

Avant de commencer le flux d'air, assurez-vous de régler load_example à False dans airflow.cfg fichier. Par défaut, il est défini sur True.

load_examples = False

Si vous avez déjà lancé airflow, vous devez supprimer manuellement le DAG exemple à partir de l'interface utilisateur d'airflow. Cliquez sur l'icône de suppression disponible sur le côté droit du DAG pour le supprimer.

Click on the delete icon available on the right side of the DAG to delete it

Au lieu de supprimer manuellement le DAG exemple, vous pouvez réinitialiser votre base de données en utilisant airflow resetdb mais cela supprimera vos connexions, variables et autres informations importantes. N'utilisez pas airflow resetdb option en production.

0voto

yartem Points 11

TL;DR : vérifiez que vous avez uniquement Les fichiers DAG dans votre dags_folder -- Airflow va parcourir ce répertoire de manière récursive et essayer de charger tous les .py des fichiers.

J'ai perdu un certain temps à déboguer un comportement similaire d'Airflow : même si load_examples = False mais airflow chargeait toujours des tonnes de choses inutiles, y compris example_dags. Le problème était que j'avais un répertoire virtualenv venv/ en dags_folder et je ne m'attendais pas à ça Airflow recherche des sacs. récursivement dans le répertoire dags. Donc il chargeait example_dags depuis apache-airflow installé dans ce virtualenv.

UPD : il y a un .airflowignore fichier pour ignorer les répertoires de dags_folder

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X