Data Vault 2.0 – dnešní pohled

Tento příspěvek není učebnice Data Vault modelování. Je to zamyšlení nad tím, k čemu je Data Vault metodologie dobrá a proč je dobré se o ni zase zajímat právě dnes.

Data Vault 2.0

Na samém konci minulého století se objevily dva silné názory na strukturu datového skladu. Bill Inmon definoval základní principy datových skladů (Subject-oriented, Time-variant, Non-volatile, Integrated) a propagoval relační strukturu dat, Ralph Kimball postuloval principy dimenzionálního modelování jako univerzální pattern pro datové sklady. A mezi datovými skladníky se rozhořel spor Inmon versus Kimbal, který ještě nyní občas někde doutná.

V roce 2000 Dan Linstedt vyvinul pro modelování datových skladů, zejména jádra datového skladu, svoji metodologii Data Vault, která byla dlouhou dobu mimo hlavní proud. Možná proto, že původně byla hodně spojena s technologií Microsoft, nad kterou v té době mnozí datoví skladníci ohrnovali nos. Možná byla definována příliš striktně. Možná měla jenom špatný marketing. To je dnes již jedno.

Naopak dnes je jasné, že dimenzionální modelování a Star schéma není všelék. Má ale spoustu úžasných vlastností.

  • Dimenzionální modelování má poměrně málo technických pravidel, která je nutné dodržovat. A ta pochopí snadno i byznys uživatelé. Jednoduše řečeno, rozděluje informace na fakta a dimenze. Fakta (zejména číselné hodnoty) ukládá do speciálních faktových tabulek v granularitě dané napojenými dimenzemi.
  • Star schéma velmi přesně odpovídá analýze byznys procesu a je velmi dobře srozumitelné byznys uživatelům.
  • Uložení dat v dimenzionálním modelu zajišťuje excelentní výkon pro předem definované dotazy – dotazy typu analýza metrik daného procesu podle předem definovaných dimenzí.
  • Dimenzionální modelování a zejména Star schéma má velikou technologickou podporu. Vyspělé relační databáze mají speciální optimalizaci pro Star-like dotazy. Všechny kostky v OLAP, MOLAP, ROLAP, HOLAP a podobných technologiích jsou instancemi nějakých konkrétních Star schémat.

Ale je nutné nezapomínat také na slabé stránky tohoto přístupu.

  • Transformace relačních dat do dimenzionálního modelu je výpočetně náročná.
  • Dotazy, které neodpovídají struktuře dimenzionálního modelu, a to je většina dotazů datových analytiků nebo datových vědců, mají bídnou výkonnost.
  • Některé změny modelu, jako například přidání dimenze do Star schématu, jsou z důvodů granularity dat v dimenzionální tabulce neproveditelné. Musí se vytvořit a daty naplnit nové Star schéma.

Výsledkem je situace, kde dimenzionální modelování má nezastupitelné místo v části Data martů a pro předem připravené analýzy. Ale jako univerzální pattern se neosvědčilo.

Principy Data Vault modelování jsou také velmi jednoduché. Základem je pojem HUB tabulka. To je seznam jedinečných klíčů nějaké byznys entity. Nic víc. Druhý princip je uložení všech atributů byznys entit do SATELITNÍCH tabulek. Přičemž zde panuje veliká volnost. Různé satelitní tabulky mohou být různě historizovány, stejný atribut může být ve více satelitních tabulkách a podobně. A třetí princip řeší vazby mezi byznys entitami. Všechny jsou řešeny stejným způsobem jako LINK tabulka. Ať už se jedná o vazbu typu 1 : 1, 1 : n, n : m nebo o vícenásobnou relaci.

Genialita těchto jednoduchých principů vystupuje na povrch v dnešní době, kdy se datové sklady potýkají s nárůstem dat, variabilitou vstupních systémů a formátů dat a s množstvím datových zdrojů. Data Vault modelování je ideální přístup pro agilně spravované datové sklady.

  • Princip HUB tabulek nutí analytiky a datové skladníky přesně definovat, o jaké entity se jedná a jak jsou identifikované. To je základ pro pořádek v datovém skladu, pro schopnost zjistit, co v datovém skladu vlastně máme, a zejména pro schopnost správně přiřadit nové zdroje dat ke stávajícím.
  • Přidání satelitní tabulky umožňuje jednoduše a konzistentně přidat nový zdroj dat nebo nové atributy k existující entitě. Přitom stávající data a datový model se vůbec nemění.
  • Pro ukládání transformovaných (odvozených dat) platí stejné principy. Může být výhodné ukládat v jádře entity ve struktuře odpovídající primárním systémům i doménově orientované transformované entity odpovídající logickému datovému modelu organizace.

Je také nutné nezapomínat na slabou stránku tohoto přístupu.

  • Dotazy na data uložená v tomto modelu jsou komplikované a málo výkonné.

Dimenzionální modelování a Data Vault modelování mají některé stejné rysy. V obou případech se jedná o poměrně jednoduchou sadu technických pravidel na model, do kterého se ukládají data. A v obou případech výsledek závisí na byznys analyticích a jejich schopnosti využít dané principy. U dimenzionálního modelování je klíčová volba analyzovaných procesů, jejich metrik a požadovaných dimenzí pro analýzy. U Data Vault modelování je kritická definice identifikátorů ukládaných entit a definice vazeb mezi entitami.

Tak máme dnes dva dobře definované přístupy pro ukládání dat. Data Vault modelování pro jádro datového skladu kompletně podporující principy: Subject-oriented, Time-variant, Non-volatile, Integrated, a dimenzionální modelování pro Data marty.

Data Vault není jenom modelování, ale ucelená metodologie pro budování datových skladů. Linstedt obdobně jako Inmon a Kimbal rozlišuje datové vrstvy STAGE, CORE (Business Vault) a vrstvu Information delivery, kde jsou Data marty s dimenzionálním modelem, podkladové tabulky pro reporting a případně další struktury podle požadavků uživatelů. Definuje ale navíc další oblasti, které jsou nutné pro fungování datového skladu a které stojí mimo toto základní dělení.

Jsou to samé „vaulty“:

  • Business Rule Vault – oblast s definicí byznys pravidel na data v datovém skladu. Zde jsou udržována pravidla datové kvality na data všech vrstev, jsou zde pravidla pro integraci, dále definice rekonciliačních reportů a také definice datových testů.
  • Error Vault – oblast, kde jsou uchovávány výsledky datové kvality a datových testů včetně chybných dat.
  • Metrics Vault – oblast pro všechna operativní metadata o zpracování a provozu datového skladu.
  • Operational Vault – oblast datového skladu pro řešení problematiky Master Data Management a referenčních dat. Může se jednat o data těchto systémů nebo interface na specializované externí systémy.

Zde je největší přínos v tom, že jsou tyto oblasti pojmenovány, jsou definovány jejich zodpovědnosti a je jasně řečeno, že jsou nedělitelnou součástí datového skladu. Nikoliv něco, co stojí někde bokem a možná se někdy dodělá.

Data Vault modelování umožňuje jednoduchý a levný přístup k rozšiřování datového skladu, podporuje agilní vývoj a je schopno udržet v modelu datového skladu pořádek. Metodika umožňuje navrhnout a spravovat datové sklady plně auditovatelné a trasovatelné. Stejně tak umožňuje navrhnout a spravovat sklady, které provazují přesnou kopii vstupních dat (někdy požadovanou regulatorikou) s agregovanými a vyčištěnými daty. V současnosti je už tato metodika podporována řadou nástrojů pro vývoj datových skladů.

Sečteno a podtrženo, Data Vault modelování je robustní způsob modelování jádra moderního datového skladu, který má něco vydržet.

 

Autor: Ondřej Zýka

Information Management Principal Consultant


Další čtení:

https://danlinstedt.com/solutions-2/data-vault-basics/

https://danlinstedt.com/allposts/datavaultcat/standards/data-vault-loading-specification-v1-2/