Skip to content
RnoldR edited this page Oct 1, 2024 · 12 revisions

Inleiding

Uitgangspunt van DiDo is dat alle data wordt opgeslagen als een of meer tabellen in Postgres. Daartoe moet eerst die tabel worden gedefinieerd. Daar zijn de volgende onderdelen voor nodig:

  • Een DiDo projekt in Gitlab. Dat projekt wordt gekloond in jouw projects directory. Lees hoe je snel zo'n projekt kunt aanmaken.
  • Elk DiDo programma verwijst vervolgens met de -p(roject) parameter naar die gekloonde directory
  • In die project directory is een config directory met daarin een config.yaml file. Daarin vindt je verwijzingen naar dataschema, metafile en database servers.
  • Er is een dataschema met de beschrijvingen van de kolommen van de tabel.
  • Er is een metafile waarin gegevens over de in te richten tabel te vinden zijn.
  • Met het programma dido_create_tables.py kun je de tabellen aanmaken. Je moet aan dido_create_tables de -p parameter opgeven gevolgd door het pad waar het projekt is te vinden (het projekt dat je hebt gekloond in jouw projects directory).

Van elke tabel moet minstens worden gedefinieerd:

  • de naam en betekenis van de tabel
  • De namen van elke kolom
  • Het datatype van elke kolom
  • De beschrijving van elke kolom

Dit zijn de minimum vereisten. DiDo vult de rest automatisch in.

Een datamodelleur en een analist vullen de DiDo defaults aan, denk aan:

  • Minimum en maximum waarden per kolom
  • het al dan niet toestaan van NULL waarden
  • Lijsten met toegestane waarden
  • Frekwentie van de levering (Jaarlijks, maandelijks, etc.)
  • Het wijzigen van waarden (bijvoorbeeld 00000000 -> 9999-12-31)

Goede controle op de definitie belangrijk. Wijzigen achteraf is (nog) niet mogelijk.

data-definitie.drawio

Overzicht van het Data Definitie Proces

Data inlezen

Data wordt als een levering aangeleverd door een leverancier en opgeslagen in een s3-bucket. Elke levering moet voldoen aan de definities zoals die zijn opgeslagen in de database. In de leveringsfile worden de specifieke eigenschappen beschreven van deze levering, zoals de datum waarop deze geleverd is, de tekenset, etc.

Vervolgens leest DiDo de data in. De data moet voldoen aan de data-definitie. Tijdens het inlezen wordt daarop gecontroleerd.

  • Kontrole of het aantal kolommen en de namen van de kolommen ervan korrekt zijn
  • Kontrole of datatypes, min/max, etc. korrekt is
  • Data wordt gewijzigd indien dat wordt gespecificeerd
  • etc.

Foutmeldingen worden gegenereerd in .csv, markdown en sql formaat. Naar aanleiding van de foutmeldingen kun je beslissen om de data al dan niet op te slaan. In principe worden fouten niet opgeslagen, maar DiDo laat in bepaalde gevallen toe als je dat wilt.

data-inlezen.drawio

Overzicht van het Data Inlezen Proces

Metadata

DiDo slaat de data op, maar ook veel zaken eromheen, denk aan:

  • historie
  • welke periode de levering betreft
  • datum waarop de data is opgeslagen
  • leverancier van de data
  • kwaliteit van de data
  • etc.

Dit gebeurt allemaal op de achtergrond. Dat maakt het mogelijk specifieke leveringen terug te vinden en achteraf aan te passen.

En verder...

Clone this wiki locally