DBT naamgevingsconventies en Medallion Architectuur

6 maart 2024 | 4 minuten leestijd

Bronze Silver Gold layers

In data engineering is het omzetten van ruwe data in bruikbare inzichten essentieel voor organisaties die een concurrentievoordeel willen behalen. Dit proces is afhankelijk van effectief Data Management en de samenwerking tussen Data Engineers en Analytics Engineers. Ze werken samen om data te organiseren met behulp van de Medallion Architecture, die een gelaagdheid in ‘bronze’, ‘silver’ en ‘gold’ heeft. Het helpt complexe datamanagementprocessen te vereenvoudigen en de datakwaliteit te verbeteren.

De verschillende rollen uitgelegd:

  • Data Engineers richten zich op het extraheren en organiseren van ruwe data in hun oorspronkelijke vorm. Deze stap vormt de basis voor de daaropvolgende data processen.
  • Analytics Engineers beginnen met het werken met data in dbt, dit kan dbt Core of dbt Cloud zijn. Ze beginnen met eenvoudige staging modellen in de bronze layer. Daarna gaan ze verder naar meer complexe en inzichtelijke datamodellen in de silver en gold layers.

Layers in data transformatie en naamgevingsconventies

In moderne datawarehouses onderscheiden we verschillende lagen waarin data worden verwerkt, verrijkt en samengevoegd. We passen verschillende naamgevingsconventies toe op de verschillende lagen in een datawarehouse om deze lagen effectief te onderscheiden en om databases gestructureerd te houden.

Bronze Layer (Staging)

Bronze is de eerste laag voor de ruwe data. In de bronze laag wordt data onaangeroerd opgeslagen. Het datamodel is in dit stadium eenvoudig.

In dbt verwijst de bronze data naar de brontabellen zoals gedefinieerd in het source.yml bestand. Deze ruwe data vereisen vaak voorbewerking, zoals het gebruik van SELECT statements om de dataset te beperken of UNION statements om informatie samen te voegen, voordat latere transformaties kunnen plaatsvinden. De naamgevingsconventie voor deze tabellen bevat voorvoegsels zoals stg_. Dit laat zien dat dit staging modellen zijn voor de initiële datatransformatie.

Silver Layer (Intermediate en Marts)

Deze laag bevat data op een gestructureerde manier, en past een multi-hop architectuur toe met gevalideerde en verrijkte transformaties en aggregaties. Het omvat:

Tussenmodellen

Deze modellen fungeren als brug tussen de ruwe data in de bronze laag en de verfijnde modellen in de silver of gold laag.

Tussenliggende modellen krijgen de naam int_ om aan te geven dat ze data verder verwerken en normaliseren. Dit voorvoegsel helpt bij het identificeren van modellen die cruciaal zijn voor het transformeren van data voor diepgaande analyse en rapportage.

Marts Modellen

Marts-modellen zijn op maat gemaakt voor analyses ter ondersteuning van bedrijfsintelligentie en besluitvorming.

Marts modellen hebben namen die beginnen met mrt_ of mart_, wat aangeeft dat ze bedrijfslogica hebben en gemaakt zijn voor het creëren van waardevolle inzichten. Deze modellen zijn essentieel voor het maken van dataproducten die strategische waarde leveren aan de organisatie.

Gold Layer (aggregaten op bedrijfsniveau)

In de gold laag bereiken datamodellen hun hoogste verfijning, volledig geoptimaliseerd voor besluitvorming in termen van efficiëntie en effectiviteit. Hier zijn datamodellen zeer geavanceerd, ontworpen om directe waarde te bieden aan zakelijke gebruikers en besluitvormers. De naamgevingsconventies voor de gold laag onderstrepen dat de data klaar is voor geavanceerde analyses en rapportages.

We hebben drie gebruikelijke opties die we willen bespreken

De eerste optie is een naamgevingsconventie gebaseerd op afdelingen. Dit kan de adoptie door het bedrijf ten goede komen. En het voorvoegsel met afdelingsspecifieke codes helpt het doel te verduidelijken. Voorbeelden:

  • sal_ voor Verkoop: Richt zich op verkoopdata, bijv. sal_revenue_forecast.
  • mkt_ voor Marketing: Richt zich op marketingdata, bijv. mkt_campaign_roas.
  • fin_ voor Financiën: Omvat financiële analyse, bijv. fin_expense_summary.

Een andere optie is om het voorvoegsel fct_ te geven voor feitentabellen of dim_ voor dimensietabellen. Dit volgt de Kimball-methodologie, die het onderscheid tussen transactionele data en dimensionale context benadrukt. Dit laat zien hoe ze helpen bij het analyseren en rapporteren. Het maakt het makkelijker voor gebruikers en analisten om de beste datamodellen te gebruiken in het dbt-project.

Tot slot komen we de situatie tegen waarin marts uit de silver laag, voorafgegaan door mrt_, uitzonderlijk goed zijn opgebouwd en direct kunnen worden gebruikt in activerings- of rapportagetools. Dit besef opent de deur naar een genuanceerde strategie: het mengen van aangepaste naamgevingsconventies met het strategisch gebruik van silver datamarts in de gold laag. De beslissing om deze marts te kopiëren, weergaven te maken of ze rechtstreeks te integreren in activeringstools zonder enige duplicatie, is een complexe keuze, elk met zijn eigen reeks voordelen en uitdagingen.

Voorzichtigheid is geboden omtrent deze complexiteit. Het gaat om het evalueren van de impact op datamanagement, prestaties en toegankelijkheid. Dit proces kan een uitdaging zijn, maar het zal je helpen om een data-architectuur te ontwerpen die aansluit bij je strategische doelen.

We komen dus tot de volgende conclusie

Naamgevingsconventies in gold

Om de gold layer te optimaliseren, presenteren we drie verschillende opties. In eerste instantie zorgen afdelingsspecifieke codes zoals sal_ voor Sales of fin_ voor Finance voor een duidelijke bedrijfsafstemming en duidelijkheid voor de gebruiker. Vervolgens introduceert fct_ voor feiten en dim_ voor dimensies van de Kimball-methodologie een gestructureerde aanpak voor analytische diepte. Tot slot zorgt het gebruik van mrt_ prefixed silver marts direct in rapportagetools voor gestroomlijnde efficiëntie. Al deze benaderingen kunnen werken; het hangt natuurlijk af van je specifieke behoeften en doelen.

Data Governance en afhankelijkheden verbeteren

Het gebruik van duidelijke en consistente namen in dbt-projecten helpt bij het identificeren en organiseren van data. Het verbetert ook de data governance en maakt activiteiten efficiënter. Teams kunnen ervoor zorgen dat ze standaarden volgen door dezelfde taal te gebruiken voor datamodellen. Dit helpt bij het vinden van data, het volgen van dataregels en het behalen van bedrijfsdoelen.

Bovendien stroomlijnen deze conventies het onderhoud en updaten van datamodellen. Het systematisch benoemen van modellen helpt teams om afhankelijkheden en wijzigingen te begrijpen en om datamiddelen eenvoudiger te beheren. Dit helpt teamleden om effectief samen te werken. Het versnelt ook de ontwikkeling.

Best practices voor samenwerking

  • Om van ruwe data naar data te gaan die klaar zijn voor rapportage- en activeringstools is zorgvuldig data management nodig, waarbij versiebeheer moet worden gebruikt en duidelijke naamgevingsregels moeten worden gevolgd. Deze werkwijzen zijn cruciaal voor het managen van de samenwerking tussen Data Engineers en Analytics Engineers.
  • Een gestructureerde methode voor data transformatie in de lakehouse-architectuur helpt om gegevens effectief te beheren en de kwaliteit van data over de lagen heen te verbeteren. Deze methode verplaatst data van hun ruwe vorm in de bronze laag naar data op business-niveau in de gold laag.

Conclusie

Organisaties kunnen het proces om data om te zetten in waardevolle analytische informatie beheren door gebruik te maken van gestructureerde werkwijzen en data/analytics engineers. Dit helpt hen om data effectief te gebruiken in BI-tools, tools voor data activatie en Machine Learning-modellen. Hierdoor kunnen organisaties betere beslissingen nemen op basis van de verzamelde informatie.

De Medallion Architecture, met de nadruk op bronze, silver en gold lagen, biedt een duidelijk kader voor het organiseren van data en het verhogen van de kwaliteit van data. Het zorgt ervoor dat de data op de juiste manier worden gevalideerd, verrijkt en omgezet in bruikbare inzichten. Deze methode maakt data-transformatie eenvoudiger en volgt moderne dataprincipes, waardoor teams snel goede dataproducten kunnen maken.