Lange tijd was er weinig écht nieuws onder de zon in het land van data warehousing en data-integratie, maar de laatste tijd volgen de ontwikkelingen elkaar in razend tempo op. Zo is daar de opkomst van de logische data warehouse (LDW) architectuur, als alternatief om data veel sneller en eenvoudiger aan gebruikers ter beschikking te stellen (meer achtergrond vind je in dit e-book). Daarnaast zien we dat cloud-platformen in korte tijd serieuze opties zijn geworden voor het implementeren van bedrijfskritische BI- en analytics-toepassingen. Door die twee ontwikkelingen te combineren, ontstaat een enorm schaalbaar platform waarop we oplossingen veel sneller en goedkoper kunnen realiseren. Waarbij ontwikkeling, onderhoud en beheer bijna als vanzelf gaan…
In dit artikel leg ik uit hoe je de uitgebreide functionaliteit van het Microsoft Azure cloud platform kunt gebruiken om een logisch data warehouse te implementeren en waarom je dat zou moeten doen. In een volgend artikel ga ik in op de details van de verschillende componenten van het Azure platform die daarbij gebruikt worden.
Bezint eer gij begint!
Allereerst een waarschuwing. Misschien heb je je al verdiept in Microsoft Azure of ga je dat meteen na het lezen van dit verhaal doen. Dan is de kans groot dat je je als een kind in de snoepwinkel voelt. Je ziet eindeloze mogelijkheden en functies die je met een druk op de knop kunt activeren en uitproberen. En iedere dag komt er wel iets nieuws bij. En dat is meteen het probleem, want al die mogelijkheden om te experimenteren leiden ook af van je uiteindelijke doel. Denk vooraf dus goed na wat je wil bereiken, wat je daarvoor nodig hebt en hoe je de samenhang bewaakt (lees: hoe je architectuur eruitziet). Klinkt logisch, maar door het gemak waarmee je kunt beginnen, verzanden initiatieven vaak in allerlei experimenten zonder rode draad. De logische data warehouse architectuur is vaak precies die ontbrekende rode draad.
De referentiearchitectuur
Eerst even terug naar het logisch data warehouse. Daar is in diverse artikelen al veel over geschreven. Dat zal ik niet allemaal herhalen, maar laten we nog even kijken naar de twee belangrijkste kenmerken van de LDW-architectuur:
- In een logisch data warehouse minimaliseren we het fysiek dupliceren van data zoveel mogelijk
- Daarnaast zorgen we voor een strikte ontkoppeling tussen gegevensbronnen en rapport door business logica maar op één (centrale) plek vast te leggen
Deze twee uitgangspunten zorgen ervoor dat we extra databronnen en nieuwe BI-toepassingen veel sneller en eenvoudiger kunnen aansluiten dan bij de traditionele data warehouse architectuur.
In het e-book van Jonathan Wisgerhof en Mattijs Voet wordt de volgende functionele referentiearchitectuur gepresenteerd voor het realiseren van een logisch data warehouse:
Waarom in de cloud?
Het zou natuurlijk geweldig zijn als we deze functionele architectuur kunnen vertalen naar de onderdelen en functies van een cloud-platform als Microsoft Azure. Daarmee versterken we de kracht van het logisch data warehouse immers met:
- Schaalbaarheid: het met een druk op de knop kunnen op- en afschakelen van functionaliteit en capaciteit.
- Minder investeringen: betalen naar gebruik, door precies uit te kiezen wat wel- en niet nodig is, maar ook wanneer het nodig is en voor wie.
- Uitgebreide functionaliteit: eenvoudig gebruik van functionaliteiten die eerder buiten bereik van je organisatie waren en iedere dag de beschikking over nieuwe mogelijkheden.
- Stabiliteit: een platform met een uptime van 99,9% en 24/7 ondersteuning.
- Lagere kosten: gebruik van standaardcomponenten zorgt voor lagere ontwikkel-, onderhouds- en beheerkosten.
De kracht van Azure
Microsoft Azure is één van de meest volwassen cloud-platformen op het gebied van (big) data-oplossingen en biedt uitgebreide functionaliteit voor databases, datalakes, data-integratie, rapportage, dashboarding en analytics. Maar ook het aansluiten van andere BI-tools of analysetoepassingen is eenvoudig mogelijk. Bedrijven die al werken met oplossingen op basis van SQL Server hebben veel aan hun kennis en ervaring bij de overstap naar Azure. Door de schaalbaarheid van het platform kunnen bestaande en nieuwe oplossingen stapsgewijs geïmplementeerd worden in de cloud door ook stapsgewijs verwerkingscapaciteit, functionaliteit en gebruikers toe te voegen.
Een LDW-implementatie op Azure
In de onderstaande figuur heb ik componenten en functies van het Azure platform geprojecteerd op de referentiearchitectuur van het logisch data warehouse. Met Azure kunnen we alle onderdelen van deze architectuur technisch invullen. Een logisch data warehouse kan op deze manier dus binnen één platform gerealiseerd worden, wat veel voordelen biedt in termen van kennis(opbouw), kosten en beheer.
Hieronder een korte toelichting op de verschillende onderdelen uit deze figuur. In een vervolgartikel zal ik voor alle componenten in detail de werking uitleggen en tips geven wanneer en hoe je ze kunt gebruiken.
Connect
Voor het realiseren van de connect-laag uit de architectuur biedt Microsoft Azure verschillende mogelijkheden waarmee een diversiteit aan databronnen kan worden ontsloten. Het platform ondersteunt bovendien alle ritmes van aanlevering, van het naadloos integreren en beschikbaar maken van real-time data tot het dagelijks samenbrengen van (big) data in data lake. En dat sluit perfect aan op de principes van het logisch data warehouse. De meest gebruikte Azure componenten voor data-integratie zijn:
- Azure Data Factory: een geavanceerde data-integratie service waarmee je ‘data pipelines’ kunt maken, beheren en monitoren.
- Azure Functions: de mogelijkheid om event driven functies te onwikkelen in C# die real-time interacteren met andere onderdelen van het platform, bijvoorbeeld de servicebus.
- Azure Logic Apps: standaardoplossingen voor het automatiseren en schedulen van workflows om apps, data en systemen te integreren, voor bijvoorbeeld het uitlezen van AOI’s en files of het integreren van data vanaf Sharepoint.
- Azure Service Bus: een generiek messaging system voor het onderling laten communiceren van apps, services en devices, geschikt voor het real-time ontsluiten van data.
- Azure Data Lake Analytics: met U-SQL, de krachtige big data taal voor Azure Data Lake die integreert met C#, R en Python, kunnen geavanceerde databewerkingen uitgevoerd worden, bijvoorbeeld om grote datasets te cleansen.
Integrate
In de (logical) integration-laag wordt data uit verschillende bronnen met elkaar geïntegreerd. Business rules die bedrijfsbreed gelden worden hier toegepast. Hier wordt de eerste ontkoppeling van de bronsystemen gerealiseerd. In deze laag kunnen drie componenten van het Azure platform een rol spelen:
- Azure SQL Data warehouse: de parallelle databaseserver van Azure, naadloos te integreren met de rest van het platform, maar ook met externe SQL-gebaseerde tools.
- Azure Data Lake Store: de op HDFS gebaseerde big data oplossing met de mogelijkheid voor parallelle gegevensverwerking via U-SQL.
- Azure Stored Procedures: de gebruikelijke mogelijkheid om voorgecompileerde SQL-statements op te slaan en schedulen.
Publish
In deze laag worden datamarts klaargezet om informatie in de juiste vorm en met de juiste inhoud klaar te zetten voor de gebruikers, applicaties en services. Met Azure hebben we diverse mogelijkheden voor deze ‘uitgifte’ van data, door data vanuit de connect-laag te publiceren naar datasets/tabellen in Azure SQL DB, Azure Data Lake of PowerBI Datasets. Omdat algemeen geldende transformatieregels al zijn toegepast, zijn dit eenvoudige publicaties die (mede door de kracht van het platform) snel volledig opnieuw opgebouwd kunnen worden. Door de opzet van Azure kan, afhankelijk van de behoefte op dat moment, eenvoudig op- of afgeschaald worden.
Analysis model
Hier worden aggregaties en afleidingen uit de data vastgelegd voor analyse en data science doeleinden, of voor de specifieke rapportages. Azure biedt hier meerdere mogelijkheden, zowel voor het structureel klaarzetten van datasets als het snel aanmaken van datasets voor data science.
- Azure Tabular Model: multidimensionele opslag van data voor gebruik met de cloud versie van SQL Server Analysis Services.
- Azure HDInsight: een open source analytics service voor het inrichten van geoptimaliseerde clusters voor o.a. Hadoop, Spark, HBase, and R Server.
- Azure Data lake analytics: big data opslag en analyse met U-SQL, .Net, R en Python.
Management
Voor beheer, scheduling en monitoring van alle processen in het logisch data warehouse gebruiken we twee onderdelen van het Azure platform:
- Azure Log Analytics: een service waarmee alle technische logging van het Azure platform, zoals gebruik, prestaties, events, dataverkeer en verwerkte records, geanalyseerd kunnen worden om de beschikbaarheid en prestaties te monitoren.
- Azure Automation Accounts: Azure Automation is een service voor het automatiseren van terugkerende taken voor procesautomatisering, configuratiemanagement, update-management en scheduling. Via Accounts in Azure Automation worden op rollen gebaseerde toegangsrechten verleend aan gebruikers, groepen en toepassingen.
Services
De services die gebruik maken van het logisch data warehouse zijn vaak divers en uitgebreid. Van rapportage en dashboarding tools tot allerlei applicaties en externe dataleveringen. Door de sterke ontkoppeling tussen gegevensbronnen en gegevensgebruik in het logisch data warehouse, kunnen we hiervoor op een beheersbare manier allerlei tools en technologieën inzetten zonder dat er chaos ontstaat. Maar het Azure platform biedt zelf met PowerBI en de integratie met R en Python ook uitgebreide mogelijkheden voor rapportage, dashboarding, analyse en data science. Wat je gebruikt hangt vooral af van de kennis en ervaring die je in huis hebt en in welke mate je bestaande toepassingen wil hergebruiken. Kortom: vreemdgaan mag, maar het hoeft niet!
De toekomst
In de praktijk blijkt dat de flexibiliteit van het logisch data warehouse, gecombineerd met de kracht van het Microsoft Azure platform, de ontwikkeling van nieuwe BI- en analytics-toepassingen enorm versnelt. Databronnen aansluiten, gegevens beschikbaar stellen, analytics toepassingen ontwikkelen, het wordt allemaal eenvoudiger, goedkoper en steeds mooier. Zeker omdat er op het cloud platform technisch steeds meer vanzelf voor ons geregeld wordt. We hoeven geen servers meer in te richten en voor allerlei processen en toepassingen zijn al standaardcomponenten aanwezig. Die ontwikkeling zal zich nog veel verder doorzetten. Mijn voorspelling is dat mijn werk op termijn alleen nog maar bestaat uit het modelleren van data en business rules en dat alle benodigde techniek automatisch geconfigureerd, ‘gescript’ en uitgevoerd wordt. Zodat je in een paar uur een nieuw data warehouse genereert. Maar zover is het nog niet en daarom ga ik in deel II van dit artikel nog in detail in op de verschillende Microsoft Azure componenten die hierboven zijn beschreven.
Welke rol spelen cloud platformen in jouw data warehouse en BI-architectuur?