-
Notifications
You must be signed in to change notification settings - Fork 51
Feature/Mise à jour automatique de la donnée 1/2 #24
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
Feature/Mise à jour automatique de la donnée 1/2 #24
Conversation
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.
Hello, merci pour ton travail, c'est top!
J'ai fais quelques commentaires, plutôt sur la structure du code.
Et attention, le precommit ne passe pas, n'oublie pas de le lancer en local avant de push (cf readme)
N'hésite pas à me contacter si tu as des questions
pipelines/tasks/update_database.py
Outdated
; | ||
""" | ||
conn.execute(query, (year,)) | ||
current_dataset_datetime = conn.fetchone()[0] |
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.
est ce que c'est pas mieux de mettre un limit 1 dans la query? Je ne sais pas exactement comment fonctionne le fetchone
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.
fetchone permet de recuperer une seul valeur de la colonne sous forme de tuple
* Drop edc_table when refresh_type='all' or 'reset-table' set to True * rename 'reset-tables' param to 'drop-tables' --------- Co-authored-by: jaouenadel <jaouenadel@protonmail.com>
Co-authored-by: jaouenadel <jaouenadel@protonmail.com>
* Setup dbt * Setup dbt
* Setup dbt * Setup dbt
Co-authored-by: jaouenadel <jaouenadel@protonmail.com>
* Setup dbt * Setup dbt
…//github.com/simhub75/13_pollution_eau into feature/mise_a_jour_automatique_de_la_donnee
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.
Comme discuté hier il faudrait retirer les année avant 2020 et permettre de faire un on change sur toutes les année, sur des années custom ou sur last uniquement
Context
La donnée sur le site https://www.data.gouv.fr/fr/datasets/resultats-du-controle-sanitaire-de-leau-distribuee-commune-par-commune/ est mise a jour régulièrement (ex: 14 octobre 2024 pour la donnée de 2023), il faut donc que notre projet soit capable de mettre a jour la carte lorsque cette donnée a été changé
Livrable:
1 - Mettre a jour le code pour qu'il puisse checker si une source de donnée a été update depuis la dernière ingestion et lance l'ingestion que si c'est le cas
2 - Créer un github action qui lance l'ingestion de la donnée de manière régulière
Changes (livrable 1)
build_database.py:
Ajout d'un flag check-update dans cli command
ex:
Ajout de la colonne "de_dataset_datetime"
download_extract_insert_yearly_edc_data()
(Update)Best practice SQL:
Utilisez des paramètres de requête pour insérer des variables pour se protéger contre les injections SQL
/!\ par contre les paramètres de requête sont conçus pour les valeurs des colonnes, mais pas pour les noms de tables ou de colonnes. (Update)
utils.py
Récupération des headers de l'url statique du dataset
get_url_headers()
(New)Extraction du datetime du dataset depuis les headers:
Dans les headers de l'url statique du dataset on a le champ "location" qui contient l'url de localisation du dataset ou on trouve le datetime sous le format "YYYYMMDD-HHMMSS"
extract_dataset_datetime()
(New)Pour chaque année de dataset on compare le datetime de data.gouv.fr avec celui de notre base de données et on retourne la liste des années dont le datetime data.gouv.fr est plus récent.
get_edc_dataset_years_to_update()
(New)