Add PGP ingestion pipeline (Excel -> PostgreSQL)#82
Conversation
cgoudet
left a comment
There was a problem hiding this comment.
Merci beaucoup!
Bon début.
Beaucoup de mes commentaires me laissent penser que tu n'as pas trop d'expérience en django. A dispo si tu as besoin de plus d'explications.
| from datetime import date | ||
| import re | ||
|
|
||
| # ========================= |
| RAW_SCHEMA = "raw" | ||
|
|
||
|
|
||
| # ========================= |
|
|
||
| # ========================= | ||
|
|
||
| if __name__ == "__main__": |
There was a problem hiding this comment.
Peux tu regarder la documentation pour créer des commandes django?
| print("Ingestion complete.") | ||
|
|
||
|
|
||
| # ========================= |
| cursor.close() | ||
| conn.close() | ||
|
|
||
| print("Ingestion complete.") |
There was a problem hiding this comment.
Mettre un log plutot qu'un print.
|
|
||
| def ingest_excel(): | ||
|
|
||
| print("Reading Excel file...") |
There was a problem hiding this comment.
A priori le fichier sera un google sheet.
Donc il faudrait une étape pour soit le lire directement en pandas grâce à l'url, soit une étape pour le télécharger avant de le lire.
| conn = psycopg2.connect(**DB_CONFIG) | ||
| cursor = conn.cursor() | ||
|
|
||
| create_schema(cursor) |
There was a problem hiding this comment.
Django permet de directement créer les modèles de tes tables dans models.py et d'utiliser des objets python qui représente des lignes dans les bases.
| df = pd.read_excel(FILE_PATH, sheet_name=sheet) | ||
|
|
||
| # clean column names | ||
| df.columns = [clean_name(c) for c in df.columns] |
There was a problem hiding this comment.
tu peux utiliser rename à la fin de la ligne précédente.
|
|
||
| df = pd.read_excel(FILE_PATH, sheet_name=sheet) | ||
|
|
||
| # clean column names |
There was a problem hiding this comment.
Plutot mettre ce fichier comme fixture pour un test unitaire avec un nom plus simple.
Cette PR ajoute le script Python d’ingestion qui charge les données Excel dans PostgreSQL (schéma raw).