Skip to content
RnoldR edited this page Mar 20, 2024 · 12 revisions

DiDo Inleiding

DiDo staat voor Data in Data out. Het faciliteert de gebruiker in het opslaan van data in het Datawarehouse en het maken van dokumentatie over die data. Als we uitgaan van de drie fasen van data-opslag:

DiDo kent twee fasen:

  1. Data en Dokumentatie Definitie. Dit is (in theorie) een eenmalige gebeuren waarin de data volgens een vast stramien wordt vastgelegd, in Postgres tabellen wordt opgeslagen en als Wiki dokumentatie wordt weggeschreven.
  2. Data Inlezen in de database. Als de tabellen zijn gedefinieerd kan de data worden geleverd. De leveringen worden opgeslagen in de tabel, tezamen met de datakwaliteit. De levering wordt gedokumenteerd en kan worden opgeslagen in de Wiki.

Daarnaast zijn er een aantal hulpprogramma's die het omgaan met leveranciers en leveringen in de database vereenvoudigen.

1. Data Definitie

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

  • een DiDo projeckt in Gitlab. Dat projekt wordt gekloond in jouw projects directory. Lees de snelstart hoe je snel; zo'n projekt kunt aanmaken.
  • Er is een [config file](Config file) waarin de definities te vinden zijn, ook wordt verwezen naar de [schemafile](Schema file) en [meta definities](Meta file)
  • Er is een dataschema met de beschrijvingen van de kolommen van de tabel.
  • Er is een [metafile](Meta file) 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.

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

2. 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](Delivery file) wordden 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

3. 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.

4. En verder...

  • Snelstart voor het inrichten van een eigen project met ODL.
  • [Werken met DiDo](Werken met d3g) - Beschrijft hoe je DiDo gebruikt om automatisch je database en dokumentatie op te zetten.
  • [Nieuw project](Nieuw project) - Aanmaken van een nieuw project.
  • Projectstruktuur - Beschrijving van de projeckstruktuur
  • [Verwerken levering](Verwerken levering) - Een nieuwe levering door DiDo laten controleren en opslaan in de database
  • Files - schemafile, [metafile](Meta file), bootstrapfile, [configfile](Config file)
  • [Logisch model](Logisch Model Datawarehouse) - Datamodel van de Operationele DataLaag.
Clone this wiki locally