Skip to content

On sauvegarde tous les imports de données

Vincent Lara requested to merge new-meta into main

Contexte

On voudrait pouvoir une trace de tous les imports et les exports de données que l’on fait.

Contenu

Pour faire cela on change pas mal de chose notamment les tables SQL que l’on utilise pour suivre les imports : meta et meta_imports et exsitu.

Dans un premier temps on crée un schema meta pour distinguer ces tables de travail des tables dans lesquelles on stocke la donnée, puis on crée de nouvelles tables.

Nouvelles tables SQL

meta.datasets

On met ici les définitions des datasets.

Il y a une contrainte d’unicité sur le couple nom de la table, version de la configuration. On pourrait faire porter la contrainte sur la spécification, c’est à réfléchir.

colonne type commentaire
id SERIAL Identifiant SQL de la définition du dataset
spec JSONB Définition de la table, on prend le yaml et on le stocke en JSONB
table_name TEXT Nom de la table qui est liée
filesource TEXT Nom du fichier qui a été utilisé pour l’import
config_version TEXT Version git qui a été utilisé pour l’import
date TIMESTAMPTZ Quand la définition a été ajoutée à la table
deleted BOOLEAN Est-ce que cette définition a été effacée

meta.imports

On garde maintenant une trace de tous les imports et on a une référence à de la définition du dataset que l’on a utilisé

colonne type commentaire
id SERIAL Identifiant d’import
dataset_id SERIAL Référence à la définition du dataset utilisé
last_modified DATE Date de modification du fichier
expires DATE Si le fichier expire à une date on la stocke
imported_by TEXT Nom de la personne ayant effectué l’import
insitu_version TEXT Version git d’insitu utilisé pour l’import
date TIMESTAMPTZ Date de l’import

meta.exsitu

On remplace le booléen processing par une date de fin de traitement qui donne la même information et plus encore !

colonne type commentaire
import_id SERIAL Identifiant d’import associé
start_time TIMESTAMPTZ Horodatage du début d’import
end_time TIMESTAMPTZ Horodatage de la fin d’import

Nouvelle vue SQL

meta.current_import

Cette vue comprend pour chaque jeu de donnée le dernier import fait, elle renvoie toutes les colonnes des tables meta.dataset et meta.import

Gros du travail

Je ne vais pas détailler ici, mais il a fallu après modifier tout le code et les tests pour prendre en compte tout ça, il n’y a pas de changement fonctionnel pour l’instant

Edited by Ronan Amicel

Merge request reports