De ‘Medallion Architecture’: het stapsgewijs verhogen van je datakwaliteit

28 februari 2024 | 4 minuten leestijd

Vrijwel iedereen die regelmatig in aanraking komt met het verwerken van grote hoeveelheden data kent het wel, het ontbreken van een duidelijke structuur in een database. De data die uit verschillende bronnen geëxtraheerd wordt, eindigt bijvoorbeeld in verschillende schema’s in het datawarehouse en analisten rapporteren op tabellen die verspreid zijn over de gehele database. Het logisch ordenen van jouw gegevens en het verbeteren van de kwaliteit van data kan een redelijk hoofdpijndossier vormen als consensus over een duidelijke structuur in een database ontbreekt.

Wat is de ‘Medallion Architecture’?

Voor het verbeteren van datakwaliteit in verschillende fases en het aanbrengen van een duidelijke structuur in je data lakehouse introduceerde Databricks een aantal jaar geleden de zogenaamde ‘Medallion Architecture’. Deze architectuur, die gebaseerd is op de drie verschillende gradaties van medailles, vormt een duidelijk framework voor het verhogen van de datakwaliteit door middel van het herstructureren en transformeren van data in drie verschillende lagen of fases, namelijk: bronze, silver & gold.

Bronze

De bronslaag bestaat uit data die ‘as-is’ opgeslagen wordt in het datawarehouse. Deze data wordt meestal incrementeel verzameld vanuit verschillende bronnen, vaak met behulp van API’s en SaaS tools zoals Fivetran of Dataddo, en in ruwe vorm opgeslagen. Dat wil zeggen, er vinden in deze fase geen of weinig transformaties plaats op de data. Op deze manier wordt een significante historie aan data opgebouwd als bestanden in je cloud platform of als tabellen in je datawarehouse.

Silver

In de zilverlaag wordt vervolgens de data uit de bronslaag getransformeerd. In deze fase wordt data beter inzichtelijk gemaakt door het te ontdubbelen, bronnen te combineren, te filteren, uniform te maken etc. In deze fase wordt een grote slag gemaakt in het verbeteren van de kwaliteit van de data. Deze transformatieprocessen worden vaak gebouwd met SQL-modellen in dbt. dbt is een populaire tool in de datawereld voor het efficiënt en effectief transformeren van big data.

Gold

In de goudlaag van het datawarehouse slaan we vervolgens de data op die verder getransformeerd en geaggregeerd is zodat deze volledig klaar is voor waardevolle rapportages in BI-tools en als input voor Data Activation tools of Machine Learning modellen. Deze data is geoptimaliseerd zodat het ophalen hiervan efficiënt uitgevoerd kan worden door tools die aan dit schema van het datawarehouse gekoppeld zijn.

Waarin verschilt deze architectuur van anderen?

Door in verschillende stappen data te ontdubbelen, aggregeren en transformeren, eindigt in de goudlaag van je data lakehouse alleen de data die klaargestoomd is voor analyse. Deze geoptimaliseerde tabellen zorgen ervoor dat het runnen van dashboards en rapportages in BI-tools efficiënt verloopt. Er hoeven namelijk weinig tot geen complexe aggregaties of extra transformaties in de BI-tools zelf gemaakt te worden. Dit merk je aanzienlijk in de tijd die het kost om je dashboards te runnen.

De Medallion Architecture onderscheidt zich ook in inregelen van rechten op bepaalde tabellen en schema’s in je data lakehouse. Door de splitsing van onbewerkte, gevalideerde en verrijkte data in verschillende locaties in je database kun je bepaalde handelingen en rechten toekennen en afschermen voor bepaalde groepen gebruikers binnen een organisatie. Je zult waarschijnlijk willen dat data engineers volledige rechten hebben op de tabellen in de bronslaag maar bijvoorbeeld niet op de goudlaag. Op de tabellen in de goudlaag zullen bijvoorbeeld analisten weer meer rechten hebben.

Wat zijn de voor- en nadelen van de ‘Medallion Architecture’?

Wij werken om verschillende redenen met dit framework en implementeren het dan ook graag bij onze klanten. De belangrijkste redenen hiervoor zijn:

  • De Medallion Architecture is eenvoudig. Deze architectuur voor een datamodel is over de hele linie van een organisatie goed te begrijpen. Dit maakt het werken met deze architectuur niet ingewikkeld. Mede hierdoor leent deze architectuur zich ook goed voor grotere organisaties zoals holdings. Data van verschillende bedrijven die onder een overkoepelende organisatie vallen kan makkelijk gescheiden worden in deze lagen in je database. Door het rapporteren op informatie uit de goudlaag ontstaan er niet meerdere waarheden voor bepaalde metingen. Dit is iets waar men vaak tegenaan loopt bij het ontbreken van een duidelijke structuur in het datawarehouse.
  • Data Integriteit. Met deze architectuur behoud je altijd de onbewerkte vorm van je ruwe data. Hierdoor kunnen incrementele tabellen makkelijk volledig opnieuw opgebouwd, fouten eenvoudig hersteld worden en nieuwe kolommen eenvoudig toegevoegd worden aan tabellen verderop in je transformatieprocessen. Dit maakt het enerzijds makkelijk nieuwe aggregaties te maken, anderzijds biedt het extra veiligheid doordat de architectuur foutbestendig is. Je behoudt namelijk je data zoals deze uit de bronnen ontsloten is.
  • Flexibiliteit en modulariteit. Omdat er een grote variëteit aan aggregaties tussen verschillende bronnen mogelijk is, kunnen analisten creatief te werk gaan om tot waardevolle inzichten te komen. En dit alles zonder andere modellen te hoeven manipuleren, waarvan andere processen hinder zouden kunnen ondervinden door onderlinge afhankelijkheden.

Natuurlijk is het niet alleen maar rozengeur en maneschijn en ondervinden wij ook nadelen aan het werken met deze architectuur. Een aanzienlijk nadeel is in onze ogen de volgende:

  • Kan tot meer opslag leiden dan andere architecturen. Wanneer je in je data platform een aantal bronnen ontsluit waarvan de data weinig tot geen transformaties nodig heeft, is deze architectuur niet aan te raden. Je zult dan data die amper verandert opslaan in de verschillende lagen in je data lakehouse. Natuurlijk zal dit dan meer opslag vergen, wat weer hogere kosten met zich mee kan brengen.

Conclusie

De Medallion Architecture vormt een framework voor het aanbrengen van een duidelijke structuur in je data warehouse. Met deze structuur maken wij een splitsing tussen ruwe-, gevalideerde-, en verrijkte data door deze verschillende niveaus van datakwaliteit op te slaan in verschillende lagen in het data warehouse. Dit zijn respectievelijk de bronze-, silver- en goldlaag. Per laag wordt de kwaliteit van de data verbeterd door validaties, transformaties en aggregaties uit te voeren. Hierdoor creëren we in de goudlaag één waarheid, een zogenaamde ‘single source of truth’, die geoptimaliseerd is voor efficiënte analyses en rapportages in BI-tools. Daarnaast behoud je met de Medallion Architecture altijd de data in zijn onbewerkte vorm, wat een extra garantie biedt voor het niet verliezen van waardevolle gegevens. Ook geeft dit je de ruimte om creatief om te springen met nieuwe aggregaties met data die bijvoorbeeld afkomstig is uit recent toegevoegde bronnen. Mede door de duidelijke structuur en de flexibiliteit van dit framework zien wij grote voordelen in het werken met de Medallion Architecture en daarom implementeren we deze ook graag in data lakehouses en -warehouses.

Ben jij er klaar voor?

Maak je nog niet gebruik van de Medallion Architectuur om de kwaliteit van je data te verbeteren, maar hebben we je wel nieuwsgierig gemaakt? We adviseren je graag hoe je dit kunt integreren in jouw datamanagement. Als je wilt kunnen we jou zelfs een groot deel van dit proces uit handen nemen. Neem vrijblijvend contact met ons op voor de mogelijkheden.