-
Notifications
You must be signed in to change notification settings - Fork 1
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
Proposition pour decoupler les sources des traitements finaux #264
Conversation
@vperron les data tests n'ayant lieu qu'après l'exec des models, si il y a une erreur sur l'étape intermediate de dora par exemple, les données invalides contenues dans la table intermediate alimenteront quand même les models en aval. D'où l'idée du nouveau layer qui fait buffer... autre solution qui ne nécessite pas de modifier la structure des models (et donc plus proche de ce que tu imaginais @hlecuyer en passant via une transaction) : changer de schéma temporairement ? dans ...
models:
data_inclusion:
...
intermediate:
+schema: "{{ 'intermediate_tmp' if var('tmp', false) else 'intermediate' }}"
+materialized: table
...
Si erreur, les données ne se propageront pas |
Je suis d'accord @vmttn pour les modèles intermediate, on avait "pas de solution". Ta suggestion est cool cependant car elle permettra de protéger AUSSI le layer intermediate et ne prend pas bcp de code ! |
@@ -106,6 +110,7 @@ def get_before_geocoding_tasks(): | |||
"path:models/intermediate/int__union_structures.sql", | |||
] | |||
), | |||
trigger_rule=TriggerRule.ALL_DONE, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, yes, mais du coup ça pose la question de:
- découpler les
before_geocoding_tasks
en "tâches sources alternatives" (odspep, monenfant, en faire deux TaskGroup comme les autres ?) et les pousser dans lesstaging tasks
? - conserver les
int__union__xxx
derrière le triggerALL_DONE
Je me suis posé la question de savoir si ça fonctionnerait si par exemple pour une source donnée, les tests de staging fail + une intermediate est donc skipped, on a bien une erreur (et non un skip) pour le TaskGroup. Donc le ALL_DONE est bien ce qu'il nous faut.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Je vais tester la solution de @vmttn. |
2dbc94d
to
39a9000
Compare
694122b
to
2c735f1
Compare
No description provided.