Operational data store (ODS)
Wat is een operational data store (ODS)?
Een operational data store is een database die de actuele gegevens uit meerdere bronsystemen bij elkaar haalt en op één geïntegreerde plek bewaart, klaar om dagelijks te bevragen en te rapporteren. Ze houdt de huidige toestand van de zaak bij: de bestellingen die nu verwerkt worden, de klanten met een openstaande vraag, de voorraad die vandaag in het magazijn ligt.
Waar een data warehouse gebouwd is voor geschiedenis en analyse, is een ODS gebouwd voor het nu. Ze combineert data uit je CRM, je ERP en je andere operationele tools, maakt die schoon en koppelt de records aan elkaar, en levert het resultaat binnen enkele minuten in plaats van pas de volgende ochtend. Het concept is bekend geraakt door Bill Inmon, vaak de vader van het data warehousing genoemd, die de ODS omschreef als de ontbrekende laag tussen de transactiesystemen en het warehouse.
Denk aan een medewerker aan de telefoon die één beeld van de klant nodig heeft, over facturatie, support en verkoop heen. Elk van die gegevens zit in een ander systeem. Een ODS voegt ze samen tot één record dat de medewerker kan lezen terwijl de klant nog aan de lijn hangt.
Waarvoor dient een ODS?
Transactiesystemen zijn afgesteld om telkens één stuk van de zaak te draaien. Je CRM is goed in CRM, je ERP is goed in bestellingen en boekhouding, maar geen van beide geeft je een samenhangend beeld over de twee heen. Ze rechtstreeks bevragen voor een rapport dat systemen combineert, is traag en riskeert de live toepassing te vertragen waar iedereen op rekent.
Een warehouse lost dat probleem op, maar laadt meestal op een vast schema en bewaart jaren geschiedenis, dus de cijfers zijn er soms uren of een dag oud. Prima voor een maandelijks verkooprapport, fout voor iemand die de status van een order op dit moment nodig heeft.
De ODS zit daar tussenin. Ze geeft je geïntegreerde, actuele data zonder de bronsystemen te belasten en zonder te wachten op de lading van het warehouse.
Hoe werkt een ODS?
De data komt binnen via dezelfde ETL- of ELT-jobs die de rest van de stack voeden, maar op een veel strakker ritme, soms doorlopend via change data capture.
Ophalen en koppelen. Records worden uit elke bron getrokken, aan elkaar gematcht op een gedeelde sleutel zoals een klantnummer, en samengevoegd tot één model.
Lichte bewerking. Waarden worden opgeschoond en op elkaar afgestemd, maar de data blijft dicht bij haar operationele vorm en wordt niet omgevormd tot een sterschema.
Overschrijven, niet opstapelen. De meeste ODS-ontwerpen houden alleen de huidige waarde bij en overschrijven die bij elke lading, zodat de store het nu weergeeft en niet de volledige tijdslijn.
Aanbieden. Operationele rapporten, dashboards en toepassingen lezen uit de ODS in plaats van uit de bronsystemen.
Sommige teams zetten een staging area voor de ODS, waar de ruwe extracten landen voor ze worden opgeschoond. Andere voeden de ODS en het warehouse vanuit dezelfde staginglaag.
ODS versus data warehouse
De twee worden verward omdat ze allebei data uit veel bronnen integreren. Het verschil zit in waar ze voor dienen.
Een ODS houdt de actuele toestand bij, bewaart weinig of geen geschiedenis, ververst met lage vertraging en beantwoordt operationele vragen. Een data warehouse houdt jaren geschiedenis bij, is gemodelleerd voor analyse, ververst op een trager ritme en beantwoordt vragen over trends doorheen de tijd. In termen van OLTP en OLAP leunt de ODS richting de live werking, terwijl het warehouse richting analyse leunt.
Ze werken goed samen. Een courant patroon laadt de brondata eerst in de ODS voor de live werking, en draagt ze daarna door naar het warehouse voor analyse op lange termijn. De ODS is dan het vertrouwde actuele beeld, terwijl het warehouse de bewaarplaats voor de geschiedenis blijft.
Waarvoor gebruik je een ODS?
Eén klantbeeld. Facturatie, support en verkoop samenvoegen zodat je mensen en je klantenportaal hetzelfde profiel lezen.
Live operationele rapportering. Openstaande orders, de verzendingen van vandaag of de huidige voorraad over de vestigingen heen tonen, zonder elk bronsysteem rechtstreeks aan te spreken.
Opzoeken over systemen heen. Een magazijnmedewerker of een helpdesk één plek geven om een status na te kijken, waar dat anders drie toepassingen openen zou zijn.
Een schone voeding voor het warehouse. De ODS gebruiken als de geïntegreerde, ontdubbelde bron waaruit het analytische warehouse laadt.
Waar moet je op letten bij het gebruik van een operational data store
Geschiedenis is bewust dun. Als je bij elke lading overschrijft, is de toestand van gisteren weg. Heb je later trends nodig, dan moet die geschiedenis uit het warehouse komen, niet uit de ODS.
Het is geen analyse-engine. Een ODS beantwoordt operationele vragen op een moment goed, maar worstelt met zware berekeningen over jaren data. Ze inzetten als rapporteringswarehouse eindigt in trage queries en gefrustreerde gebruikers.
De koppellogica moet nog altijd kloppen. Een klant over systemen heen matchen is het moeilijke stuk. Zwakke matching levert dubbele of verkeerd samengevoegde records op, en die fouten stromen recht door naar de operationele rapporten waar mensen op vertrouwen.
Wees eerlijk over de vertraging. Realtime is een spectrum. Beslis of je mensen data binnen enkele seconden, minuten of een uur nodig hebben, en stem het laadritme daarop af in plaats van een versheid te beloven die de pijplijn niet waar kan maken.