Hoe 'modern' is ons Data Warehouse?

Door datathatworks, 13 juli 2023

Wat is een Modern Data Warehouse?
moderndwh'Modern Data Warehouse" is op dit moment een veel gebruikte term door leveranciers van data management oplossingen in de cloud. Dit roept de vraag wat een 'Modern Data Warehouse' precies is en wat de meerwaarde is ten opzichte van een 'normaal' Data Warehouse. Als we de architectuur plaatjes bekijken in marketing uitingen van de genoemde leveranciers, dan valt direct iets op: Was de gewone datawarehouse architectuur nog vrij eenduidig en overzichtelijk, de moderne datawarehouse architectuur kent vele verschijningsvormen.

De 'gewone' Datawarehouse architectuur
Een 'ouderwets' datawarehouse architectuur plaatje bevat doorgaans een vast aantal componenten:

  • Bronsystemen die de brondata bevatten
  • Een ETL tool voor de extractie, transformatie en het laden van data
  • Een relationele database voor de opslag van data (Het Data Warehouse)
  • Front-end tools voor de presentatie van data
  • De Moderne Data Warehouse architectuur
    Binnen de moderne data warehouse architectuur kan nog steeds gekozen worden voor databases, ETL tools en front end tools. Wel zijn er per categorie meerdere typen waaruit gekozen kan worden. Hierover volgt verderop in het artikel meer.

    Object Storage
    Een nieuw type opslag binnen een modern datawarehouse is object storage. De diverse cloud providers hanteren verschillende namen voor dit type opslag, zoals: Cloud Storage, Data Lake Store, Simple Storage Service, etc. Het betreft schaalbare, relatief goedkope opslag van bestanden, welke veelal de basis vormt voor een z.g. Data Lake. Van origine is het Data Lake bedoeld voor ongestructureerde data, zoals grafische bestanden, films, documenten, etc. Echter, op dit moment wordt dit type storage ook gepromoot om gestructureerde data op te slaan. Hiervoor worden speciale bestandsformaten gebruikt, zoals Avro , Parquet of ORC. Op deze wijze kan bijvoorbeeld de staging area of historische brondata laag van het datawarehouse worden opgeslagen in dit type opslag. Het is zelfs mogelijk om het complete datawarehouse op te slaan in object storage. In dit kader wordt dan vaak gesproken over een Data Lakehouse.

    Data Ingestion en Data Preparation
    In plaats van Extract-Transform-Load (ETL) of Extract-Load-Transform (ELT) wordt binnen de Moderne Data Warehouse architectuur vaak gesproken over 'Data Ingestion' en 'Data Preparation'. Data Ingestion betreft het extraheren van data uit de bron en laden van deze rauwe data in een staging area, zoals bijvoorbeeld een Data Lake. In die zin is het vergelijkbaar met Extract en Load van de ELT architectuur. Data Preparation betreft het transformeren van deze data tot een bruikbare vorm. In een Moderne Data Warehouse architectuur worden vaak verschillende toolsets gebruikt voor Data Ingestion en Data Preparation. Data Ingestion tools zijn gespecialiseerd in het lezen van data uit diverse soorten bronnen en het schrijven van deze rauwe data in bijvoorbeeld een datalake. Dit kan zowel middels een batchverwerking als een continue stroom (streaming) plaatsvinden. Data Preparation vindt veelal plaats middels een platform dat gespecialiseerd is in het parallel lezen, schrijven en transformeren van grote hoeveelheden data, zoals bijvoorbeeld Spark.

    Cloud technologie
    Het begrip 'Modern Data Warehouse' wordt veelal in verband gebracht met cloud technologie. Zo kan het datawarehouse onderdeel zijn van een z.g. Data Fabric architectuur. Diverse cloud ploviders bieden platform oplossingen voor het opslaan, verwerken en analyseren van data. Zo worden Data Warehouse Databases aangeboden als een service in de cloud. Diverse leverancier bieden verschillende typen systemen, elk met zijn eigen voor- en nadelen qua schaalbaarheid, flexibiliteit, gebruiksvriendelijkheid en mogelijkheden.

    Een andere aanpak vereist een andere architectuur (en vice versa)
    In de tijd dat klassieke Data Warehouses opkwamen werden deze vaak ontwikkeld via de waterval aanpak. Deze aanpak houdt in dat na de definitiestudie eerst een functioneel ontwerp wordt gemaakt, vervolgens een technisch ontwerp. Als deze zijn goedgekeurd volgen de realisatie-, test- en implementatiefase. Er was in die tijd ook sprake van een top down aanpak, waarbij uitgegaan werd van het eindproduct (de gewenste rapportages gebaseerd op de uiteindelijke informatiebehoefte), waarna terug gewerkt werd naar de benodigde tussen producten (benodigde brondata en transformatiestappen). Deze klassieke top-down aanpak wordt op dit moment nog weinig gebruikt, omdat deze tot langdurige projecten leidt met een vaak teleurstellend resultaat. Op dit moment worden Data Warehouses meer bottom-up en meer agile ontwikkeld. Per informatiegebied wordt bijvoorbeeld begonnen met het ontsluiten van een aantal aantal brontabellen. Door deze data te analyseren wordt meer inzicht verkregen in deze data en de bijbehorende business processen. Zodra dit inzicht er is, is het makkelijker om een bruikbaar informatie model te ontwikkelen. Nieuwe inzichten leiden ook weer tot nieuwe informatievragen. Een Modern Data Warehouse biedt mogelijkheden om ruwe brodata al in een vroeg stadium beschikbaar te stellen aan een grote groep mensen.

    Pluriforme toolset
    Zoals eerder gezegd, kent de moderne datawarehouse architectuur meerdere typen tools, welke geschikt zijn voor een bepaald type verwerking. Zo komen naasst de bekende relationele database, ook zo genoemde No-SQL databases voor. Het laatste type kan beter geschikt zijn voor de verwerking van grote volumes ongestructureerde data, of gestructureerde data zonder vast schema, zoals key-value data, graph data of hiƫrarchische data. Qua data data verwerkings toolset bestaan er meerdere varianten, zoals: batch verwerking, streaming verwerking of realtime verwerking. Kortom de 'moderne' Data Warehouse architect zal over een bredere technische kennis moeten beschikken, om in staat te zijn de juiste tool voor de juiste taak te selecteren.

    Conclusie
    Hoe 'modern' een datawarehouse is, is lastig af te leiden van de globale technische specificaties. Het feit dat een datawarehouse in de cloud draait, wil niet zeggen dat het datawarehouse aansluit bij de eisen die eraan gesteld worden of dat het toekomst bestendig is. Het wil zelfs niet zeggen dat het schaalbaar is. De schaalbaarheid van bijvoorbeeld een ETL process is niet alleen afhankelijk van het platform waarop het draait, maar ook van de wijze waarop de ETL taken zijn ingericht. Het aanschaffen van moderne tools alleen is geen garantie voor een goed resultaat. Het is slechts een begin, waarvanuit een solide architectuur ontwikkeld kan worden. Hiervoor dienen wel de juiste ontwerpkeuzes te worden gemaakt.

    Reacties