Co je hub v Data Vaultu?
Hub představuje jeden klíčový obchodní pojem, například zákazníka, produkt nebo účet, jako seznam jeho klíčů: všech, které datový sklad kdy obdržel, každého právě jednou. Ukládá identitu, ne stav, a právě díky této střídmosti v něm zanikají datová sila zdrojových systémů.
Zní vám to povědomě?
- Tentýž zákazník je v datovém skladu třikrát, jednou za každý zdrojový systém, a nikdo neumí říct, který záznam je správný.
- Každý nový zdroj znamená znovu vyjednávat klíče a přepisovat joiny napříč celým modelem.
- Zdrojový systém přečísloval své záznamy a polovina historie už nesedí.
Každý datový sklad musí ještě před vším ostatním odpovědět na jednu otázku: o jakých věcech tato firma mluví a jak je od sebe rozlišuje? V Data Vaultu je odpovědí hub.
Co je hub
Hub představuje jeden klíčový obchodní pojem: zákazníka, produkt, účet, smlouvu. Není to kopie tabulky ze zdrojového systému. Hub zákazníků obsahuje každý klíč zákazníka, který datový sklad kdy obdržel, z jakéhokoli zdroje, a každý právě jednou.
Hub ukládá identitu, ne stav. O zákazníkovi nic neříká: jméno, adresa a popisné atributy jsou uloženy v satelitech a objednávky a smlouvy zákazníka jsou připojeny přes linky. Hub pouze zaznamenává, že tento klíč existuje, kdy ho datový sklad poprvé obdržel a odkud přišel.
Pokud znáte klasické datové modelování, hub už znáte
Data Vault nenahrazuje to, co jste se o datovém modelování naučili. Využívá to. Vyjděte z konceptuálního modelu, který byste tak jako tak nakreslili: z obchodních pojmů a jejich vzájemných vztahů. Každý pojem, tedy každá entita ve vašem ER diagramu, se stane hubem.
Vezměme klasickou tabulku Customer ve třetí normální formě:
| Klasický model | Co to je | V Data Vaultu |
|---|---|---|
Entita Customer |
Pojem | Hub |
customer_number (přirozený primární klíč) |
Identita | Business klíč v hubu |
name, address, segment |
Popisné atributy | Satelit |
store_id (cizí klíč) |
Vztah k jinému pojmu | Link |
Nic se neztratí a nic nového se nevymýšlí. Entita se rozdělí podle hranic, které už znáte: co ji identifikuje, co ji popisuje a s čím souvisí. Hub je prvním z těchto tří prvků, a proto je hledání hubů stejná práce, jakou byste odvedli u každého dobrého konceptuálního modelu: shodnout se na obchodních pojmech a na tom, jak se každý z nich identifikuje.
Anatomie hubu
Hub má čtyři sloupce, nic víc:
- Hash klíč. Primární klíč: deterministický náhradní klíč, vypočtený jako hash (MD5 nebo SHA-256) z business klíče, případně doplněný o kód kolize tam, kde by dva zdroje mohly stejný klíč používat pro různé věci. V Datavault Builderu se tento kód kolize nazývá Business Key Prefix. Každá tabulka, která na hub odkazuje, vypočte stejnou hodnotu bez vyhledávání.
- Business klíč. Klíč, který entitu identifikuje v obchodním světě: číslo zákazníka, VIN, IBAN. Jeden sloupec, nebo několik u složeného klíče, například kód společnosti plus číslo zákazníka.
- Load Date. Kdy byl business klíč poprvé zaregistrován v Data Vaultu.
- Record Source. Který provozní systém klíč dodal jako první.
Business Key Prefix: stejné číslo, jiná objednávka
Švýcarská i německá dceřiná společnost provozují každá vlastní ERP systém a v obou existuje objednávka
1018. Jsou to dvě různé objednávky od různých zákazníků. Kdyby se hashovalo pouze číslo
objednávky, skončily by obě na stejném řádku hubu a vše, co o nich oba systémy vědí, by se
smíchalo.
Business Key Prefix je od sebe oddělí. Každý zdroj přidá před hashováním ke klíči svůj
prefix, CH|1018 a DE|1018, takže hub objednávek obsahuje dva řádky, jak má. Používejte
ho jen tam, kde stejný klíč skutečně může znamenat různé věci. Pokud dva systémy sdílejí klíč
se stejným významem, například celoskupinové číslo zákazníka, mají se tyto klíče bez prefixu mapovat na
stejný řádek hubu.
Proč u business klíče neodstraňujeme mezery ani ho nepřevádíme na velká písmena
Běžně se doporučuje u business klíče před hashováním odstranit okrajové mezery a převést ho na
velká písmena. My to
nedoporučujeme. Z c-10442 a C-10442 se tak stane tentýž zákazník a zmizí i mezera na
konci, a to i tehdy, když je rozdíl překlepem ve zdroji. Vault pak bez povšimnutí sloučí dva
záznamy a jejich vztahy do jednoho. Hub má uchovávat to, co zdroj dodal. Rozhodnutí, že dva
klíče znamenají totéž, je obchodní pravidlo a patří na viditelné místo, například do same-as
linku.
Jednou zapsat, nikdy neaktualizovat
Huby se pouze doplňují. Každé načtení porovná příchozí klíče s klíči, které už v hubu jsou, a vloží ty nové. Jakmile je business klíč jednou v hubu, zůstane tam navždy: žádné aktualizace, žádná mazání.
Toto pravidlo má dva důsledky. Načtení hubu nezávisí na ničem jiném v modelu, takže se všechny huby mohou načítat paralelně. A neúspěšné načtení lze jednoduše spustit znovu, protože vložit tytéž nové klíče dvakrát není možné.
Kde zanikají datová sila zdrojových systémů
Hub je integračním bodem modelu. Pokud CRM i ERP identifikují zákazníka stejným business klíčem z reálného světa, oba se mapují na stejný řádek hubu a vše, co o tomto zákazníkovi oba systémy vědí, se setká právě tam.
Proto je skutečným návrhovým rozhodnutím volba business klíče. Nejlepší volbou je klíč, který firma používá napříč systémy. Ne vždy je k dispozici v použitelné podobě: zdroj může nést jen své vlastní technické ID, nebo klíč, který se recykluje, je jinak formátovaný nebo u starších záznamů chybí. Jak s tím naložit, je tématem dalšího článku této série: technické versus business klíče. Pokud dva systémy používají pro stejného zákazníka různé klíče, same-as link zaznamená, že k sobě patří.
Co do hubu nikdy nepatří
- Popisný kontext. Jména, adresy, stavy a částky patří do satelitů. Hub, který sbírá atributy, je převlečený satelit a přestává být stabilní.
- Cizí klíče.
Store_IDv hubu zákazníků je vztah a vztahy patří do linků. - Atributy vydávané za pojmy. Stav, kategorie nebo kód měny něco popisují, nejsou to samostatné obchodní pojmy. U transakcí je to jinak: v Datavault Builderu dostane řádek objednávky nebo platba vlastní grain hub, jak vysvětluje článek o linku.
- Jeden hub pro každý zdroj. Tři huby zákazníků, po jednom pro CRM, ERP a e-shop, znovu vytvoří datová sila, která měl datový sklad odstranit.
- Náhradní klíče zdrojových systémů, pokud se jim lze vyhnout. Hodnota
IDENTITYneboAUTO_INCREMENTz jedné databáze nemá v dalším systému žádný význam, takže ji vynechte, pokud existuje business klíč. Někdy je to však nejlepší klíč, jaký je k dispozici, například pro verze tabulky, kterou už zdroj historizoval, nebo pro nejnižší granularitu transakce, na kterou nic jiného neodkazuje. Tam může být správnou volbou. Kdy tomu tak je, rozebírá článek o technických versus business klíčích.
Co se mění s Datavault Builderem
V Datavault Builderu definujete obchodní pojem jednou a každý zdroj k němu přiřadíte tím, že určíte jeho business klíč. Tabulka, práce s klíči a načítací kód se z toho vygenerují a běží nativně na vaší databázi, ať už je to Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle nebo PostgreSQL.
- Klíč je rozhodnutím v modelu, ne vzorem v kódu. Vy rozhodujete, co identifikuje zákazníka. Psaní výpočtu hashe a logiky vkládání do tohoto rozhodnutí nepatří.
- Nové zdroje se mapují na stejný hub. Přidat e-shop znamená namapovat jeho číslo zákazníka na existující hub zákazníků, ne stavět nový.
- Vzor je pokaždé stejný. Ručně psané načítání hubu se s každým novým zdrojem kopíruje, upravuje a mírně mění. Vygenerované se od vzoru neodchyluje.
Co rozhodnout
Sepište pět až deset obchodních pojmů, o kterých vaše reporty skutečně mluví, a ke každému zapište klíč, kterým ho firma identifikuje. Tam, kde vám dvě oddělení dají různé odpovědi nebo kde zdroj nemá vůbec žádný použitelný klíč, jste našli nejcennější integrační práci celého projektu.
Podívejte se, jak to funguje na jednom z vašich zdrojů
Rezervujte si bezplatné demo a přineste konektor, který vás stojí nejvíce peněz nebo času.
Tři kroky k hubu
-
Definovat pojem
Pojmenujte klíčový obchodní pojem, například zákazníka, produkt nebo objednávku, a namodelujte pro něj jeden hub, bez ohledu na počet zdrojů.
-
Získat data
Připojte zdrojové systémy, které tento pojem znají, a načtěte jejich tabulky do stagingu.
-
Namapovat business klíč
Namapujte klíč každého zdroje na hub a tam, kde tentýž klíč znamená různé věci, použijte Business Key Prefix. Načítací procesy se vygenerují.
Jak Datavault Builder odstraňuje třecí plochy při ingestu dat
-
Ingest dat je integrovaný
Dávkové, delta i CDC nahrávání z databází, souborů, REST API, NoSQL a Python zdrojů, přičemž proudy jako Kafka přicházejí v micro-batches. Stejná platforma, která generuje datový sklad, bez dalších faktur za licence.
-
Vaše schéma, nikoli schéma dodavatele
Zdrojové tabulky jsou namapovány na model Data Vault 2.0, který jste sami navrhli. Nový sloupec nebo přejmenovaná tabulka mění pouhé mapování, nikoli řetězec post-load skriptů.
-
Přenášejí se pouze delty
Huby, linky a satelity nahrávají jen to, co se skutečně změnilo. Plná přenačtení zůstávají ve stagingu, místo aby se každou noc přepočítávala v celém skladu.
-
Historie se uchovává automaticky návrhem
Každá změna je zachycena tak, jak dorazí, takže historický reporting funguje i tam, kde zdrojový systém přepisuje vlastní záznamy.
-
Kód, který nikdy nemusíte psát ručně
Nahrávání, historizace a lineage se generují z modelu v reálném čase a běží nativně na Snowflake, Databricks, BigQuery, SQL Serveru, Fabricu, Oracle nebo PostgreSQL.
-
Jedna platforma, až o devět nástrojů méně
Modelování, ETL, CI/CD, dokumentace a lineage na jednom místě. Právě to umožňuje přejít od zadání požadavku do produkce za 14,7 minuty.
Seznamte se s naším expertem
Dvacet minut s naším obchodním ředitelem a upřímná odpověď, zda se to hodí pro váš technologický stack.
Matt Collett
Sales Director
Skvělé, vyberte si vyhovující termín:
Další problémy, které tato série řeší
-
Technické klíče vs. business klíče v Data Vaultu
Zdrojové systémy uchovávají business klíč v kmenovém záznamu, ale každý vztah běží přes technické klíče. Čtyři způsoby, jak s tím naložit, co který stojí, a vzor, který používáme my: PSA hub pro technické klíče, namapovaný na hub business klíčů.
-
Co je business klíč v Data Vaultu?
Business klíč je identifikátor, který vaši zaměstnanci a zákazníci skutečně používají: číslo zákazníka, číslo faktury, ID smlouvy. Je stabilní, sdílí ho více systémů a staví na něm každý hub v Data Vaultu.
-
Co je satelit v Data Vaultu?
Satelit obsahuje vše, co popisuje hub: jména, stavy, částky a každou jejich změnu, která se připojí jako nový řádek a nikdy se nepřepisuje. Je to Slowly Changing Dimension typu 2 bez příkazu UPDATE, se zabudovanou úplnou auditní stopou.
-
Co je link v Data Vaultu?
Link zaznamenává vztah mezi business klíči: tato objednávka patří tomuto zákazníkovi. Datavault Builder pokrývá klasický link Data Vaultu a přidává transakční link ukotvený na grain hubu, který určuje granularitu transakce a umožňuje vztahy mezi transakcemi.
Otázky a odpovědi
- Dan Linstedt. Metodu vyvinul v 90. letech a zveřejnil ji kolem roku 2000. Data Vault 2.0, který k modelu přidává hash klíče, metodiku a architekturu, následoval v roce 2013.
- Standardní referencí je kniha Building a Scalable Data Warehouse with Data Vault 2.0 od Dana Linstedta a Michaela Olschimkeho (Morgan Kaufmann, 2015).
- Ne. Bill Inmon vidí v Data Vaultu další vývoj svého pojetí podnikového datového skladu ve třetí normální formě, nikoli konkurenční přístup.
- Ne. Dimenzionální výstup bývá součástí implementace Data Vaultu: vault uchovává integrovanou historii a nad ním se pro reporting stavějí hvězdicová schémata. Tentýž vault může dodávat i ploché tabulky nebo Unified Star Schema.
- Díky automatizaci lze pohled ve třetí normální formě nad Data Vaultem vygenerovat zcela deterministicky. Vault ukládá data jen jednou a vrstva 3NF se odvozuje z modelu. Jak to funguje.
- Pokusit se o něj bez automatizace. Data Vault stojí na malé sadě přísných, opakujících se vzorů. Právě proto je ruční psaní zdlouhavé a náchylné k chybám, kdežto generování je přímočaré. Proto byste měli používat Datavault Builder.
- Ano. Rozdělení klíčů, vztahů a historie do hubů, linků a satelitů znamená více tabulek než u normalizovaného nebo dimenzionálního modelu. Proto by fyzickou vrstvu měl odstínit přístup řízený modelem, jako je Datavault Builder: pracujete s modelem obchodních pojmů a tabulky se generují.
- Objednejte si demo a podívejte se, jak vzniká Data Vault nad vašimi vlastními zdroji, nebo si objednejte školicí prostředí a vyzkoušejte si to sami.
- Tady. Datavault Builder je řešení pro automatizaci Data Vaultu: podívejte se na ceny nebo si objednejte demo.
- Datavault Builder se licencuje ročně, formou předplatného práva na užívání softwaru. Trvalé licence jsou k dispozici na vyžádání. Edice a jejich obsah najdete na stránce s cenami.