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.