Metadaty generované ETL

Snem každého ETL vývojáře je podívat se na vstupní datový extrakt, zanalyzovat jeho data, potvrdit primární klíče, nastavit datová pravidla, a pak si vzít Generátor, kliknout na velké zelené tlačítko a veškeré potřebné ETL mappingy a procesy by spatřily světlo digitálního světa. Celé ETL by se vygenerovalo automaticky z metadat.

Klasický postup vývoje ETL v datových skladech má tři hlavní běžce, kteří si mezi sebou předávají štafetu. Nejdříve existuje business zadavatel a jeho zadání, které následně musí zpracovat analytik a přichystat podklady pro vývojáře. Ten pak odvede zbývající špinavou, ale vesměs rutinní práci. Štafeta by se v ideálním světě předávala jednosměrně, ale realita většinou připomíná spíše jojo, které se pohybuje tam a zpět. Tomuto odvěkému schématu ale pomalu začíná zvonit hrana, protože vznikají nástroje – generátory, které dokáží vzít práci analytika a provést s ní to, co donedávna uměl jen zdatný vývojář, tj. vytvořit příslušné ETL. Jen automaticky, rychle, bez chyb a za zlomek ceny a tedy ke všeobecné radosti všech.

Tyto nástroje berou břemeno z ramen vývojáře a vkládají jej do rukou analytika, po kterém chtějí jednu zásadní věc – kvalitní zdokumentování/tvorbu metadat toho, co se s daty má udělat.

Generátory ETL totiž nejsou lidé, aby mohli v okamžiku nejasnosti zaskočit k vedlejšímu stolu a zeptat se analytika, co přesně myslel formulací „někde se mi množí záznamy, takže asi DISTINCT”. Vyžadují, aby vstupní podkladová metadata byla korektní a správná. A analytik je ze všech tří výše zmíněných rolí ten jediný správný, kdo je dokáže poskytnout.

Je obecně známo, že dokumentaci nechce psát nikdo, ale pokud se ukáže, že pro jednou může sloužit i k něčemu většímu, než je jen nudné ležení na harddiscích, a to sice ke skutečnému generování ETL, nezbude analytikům prostor k výmluvám a začnou sázet dokumentaci, která jednak poslouží jako podklad pro generátory a za druhé zaručí, že to, co nakonec v datawarehouse běží, je to, co se nachází i v dokumentaci. Dopadové analýzy se pak přenesou z roviny „pravděpodobně se nic nestane” do oblasti „jsem si jist, že tento atribut jde sem”.

Generování ETL procesů automaty na základě výstupu analytika (tj. metadat) přináší množství výhod, jako například:

Levnější vývoj – krátkozraký člověk může namítnout, že náklady na analýzu stoupnou, neboť bude muset být přesnější a je na ni kladen vyšší požadavek na její kvalitu. Stejně tak pořízení ETL generátoru představuje počáteční náklad navíc. Nicméně v delším horizontu dojde k výrazné úspoře peněz, neboť role vývojáře již nebude potřeba, respektive se nebude muset zabývat fádním vývojem tuctových jobů a cele se bude moct věnovat specialitkám.

Neprůstřelná dokumentace – co analytik navrhne, to se i realizuje. To v budoucnu značně usnadní impact analýzu a tvorbu data lineage. Nemluvě o tom, že bude snazší po někom pokračovat v práci, když bude jasné, co vlastně stvořil.

Odstranění chyb – mýlit se, je lidské. ETL generátory se nad tímto pořekadlem mohou mírně pousmát a vytvořit bezpočet funkčních mappingů z jedné odladěné šablony.

Rychlejší vývoj – je totiž výrazně rychlejší kliknout na tlačítko, než psát třetí e-mail vývojáři, aby si pospíšil.

Dodržování enterprise standardů – generátory vycházejí ze šablon a je tak zajištěno, že nové ETL budou odpovídat požadavkům a konvencím společnosti spíše než momentální náladě vývojáře.

Nejjednodušším druhem metadat jsou popisy datových struktur, a přesto, že jej dokáže vytvořit i sebehloupější modelovací nástroj, je až s podivem, co všechno se z těchto informací dá generovat:

Čištění a kontrola dat – spadá sem jak kontrola správných datových typů, tak i možnost snadno generovat kontrolu hodnot podle regulérních výrazů nebo třeba platnost rodných čísel, validnost telefonního čísla a podobně.
Historizace SCD2 – je zajímavé, že tak složitá věc, jako je správně fungující procedura pro SCD2 historizaci, si ke svému běhu vystačí jen se znalostí struktury cílové tabulky doplněné o příznaky sloupců pro zápis platnosti dat.
Nahrávání extraktů do stage – tyto procesy opět vypadají dělané jako přes kopírák, proto jsou pro ně generátory ideální volbou.
Maskování dat, export tabulek na filesystém, přenos dat do dalších databází, zálohování a mnohé další.

Cílovou metu a svatý Grál zároveň pak představuje automatické generování transformačních mappingů čistě na základě metadat vytvořených analytikem. Je nutné, aby ten ale prvně znal syntaxi zápisu pravidel pro daný specifický ETL generátor, ale jakmile překousne tento hořký začátek, tak mu odměnou bude nejen vygenerovaný ETL proces, ale i bezchybná dokumentace a třeba i skripty potřebné ke tvorbě ETL závislostí.

A proto v okamžiku, kdy celé universum jobů, struktur a procesů běžících na datawarehousu bude korektně spočívat společně v metadata repositoři, bude jen na fantazii analytiků a šikovnosti ETL generátorů, co s tím vším dokážou udělat.

Vlastimil Menšík, senior konzultant GLOBTECH spol. s r.o.