-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add class task management + csv path from config #138
base: main
Are you sure you want to change the base?
Conversation
9a6e8b0
to
8eb4337
Compare
j'ai l'erreur suivante lorsque je lance le traitement init.py:
|
corrigé pour la tâche init, en fait je voulais la supprimer au profit de LoadDimensions et LoadFacts, mais au final ça peut avoir un sens que Init appelle Loaddimensions et LoadFacts donc je l'ai laissée et mise à jour |
Oui, je voulais que tu regardes pour me dire quels traitement étaient toujours d'actualité et lesquels potentiellement pourrait grouper dans un LoadDimensions, LoadFacts, PipelineXXX et éventuel Init |
pour l'instant j'avais laissé les anciens traitements. Mais en gros tout ce qui charge directement du CSV vers des tables en passant par Dataframe est à supprimer. |
Hésite pas à propose une autre répartition logique
|
et |
OK, je te laisse terminer, je regarderai demain 🥱... et on reparle demain à 19h en visio si tu es dispo. |
56c1164
to
fc93bb3
Compare
J'ai corrigé des erreurs de syntaxe Union Par contre je termine mon chargement avec une erreur Y aurait un problème dans l'ordonnancement des tâches ou bien dans les fichier CSV ? @njouanin a ton avis ?
|
je pense qu'il y a un micmac entre la table vessel et la table dim_vessel
|
Oui
oui, via le traitement
oui, via le traitement
|
Peut-être pour une prochaine évolution, mais pourrait-on améliorer la visibilité du logging:
Pourquoi pas ? pousser les log dans un channel slack.... |
# Conflicts: # src/bloom/tasks/clean_positions.py
Signed-off-by: herve.le-bars <[email protected]>
# Conflicts: # src/bloom/tasks/load_spire_data_from_api.py
# Conflicts: # src/bloom/tasks/update_vessel_data_voyage.py
Usage: /venv/bin/python src/task/pipeline_ports.py
# Conflicts: # src/tasks/dimensions/load_dim_vessel_from_csv.py
# Conflicts: # src/bloom/domain/excursion.py # src/bloom/domain/segment.py
# Conflicts: # src/tasks/dimensions/load_dim_vessel_from_csv.py
…s for csv_file_name
# Conflicts: # src/bloom/domain/segment.py
L'idée est d'intégrer la proposition de gestion des tâches sur la base d'une classe BaseTask permettent de lancer des tâches et groupes de tâches de manière simple mais tracées avec gestion des erreurs et envoi d'email
Pour une plus grande flexibilité, le nom des fichiers CSV est migré vers un paramètre de config bloom.config, ceux-ci étant du coup surchargeable via le fichier de config .env.*
Utilisation des tasks unitaires
Utilisation des groupes de tasks (Pipeline)
Passage de paramètres
Les paramètres des tâches sont passés directement à la création
task=MyTask(param,mykey=value)
task.start()
Le paramètre "param" sera accessible via l'argument args de la fonction run(self,*args,**kwargs)
print(args['param'])
Le paramètre "mykey" sera accessible via l'argument kwargs de la fonction run(self,*args,**kwargs)
print(kwargs['mykey'])
Si la tâche est correctement écrite il est possible de passer les paramètres directement en ligne de commande
Les paramètres sont passés de la tâche parente à la tâche enfant en les précisant explicitement