• LinkedIn
  • Facebook
  • Google+
  • MIM.SK

Modelovanie dátových tokov v interaktívnom vizuálnom prostredí

ETL operácie sú známe každému vývojovému pracovníkovi, ktorý v organizácii spracováva dátové toky, čiže potrebuje dostať dáta z bodu A do bodu B čo najrýchlejšou a najefektívnejšou cestou. Prípadne dáta priamo v tomto procese aj konsolidovať do štruktúry vhodnej pre cieľové systémy.

Existuje viac nástrojov podporujúcich ETL operácie priamo vo svojich riešeniach. No v prípade ak ide o dosiahnutie skutočnej univerzálnosti pre rôznorodé zdrojové systémy, prípadne obohatenie procesu o dátovú kvalitu, komplexné transformácie dát a sledovanie najnovších trendov, sú tieto riešenie skôr prekážkou pomaly a neobratne reagujúcou na vývoj technológií.

 

Riešenie založené na Open source komunite je schopné flexibilne a rýchlo reagovať na potreby trhu a v ETL operáciách poskytnúť prepojenie starých a nových systémov, jednoduchou a prehľadnou cestou.


V nižšie uvedenom príklade som sa rozhodol demonštrovať riešenie ETL operácií modelovaných v Talend vývojovom prostredí na procese obohatenia dátového toku o číselníkové hodnoty. Test je ukážkou základného mapovania v Talend štúdiu pre vizuálne modelovanie, načítania dát a ich prenos medzi rôznymi druhmi databáz, konkrétne: PostgeSQL, Oracle, MySQL a IBM DB2:

 

prostredie eclipse

 

talend_logo

Talend Studio funguje v pre developerov známom prostredí Eclipse. Základnou zmenou je grafické poňatie modelovania cez preddefinované komponenty, namiesto priameho písania zdrojového kódu.

 

Pre potreby nášho príkladu som si aktuálnom jobe „ETL_Demo“ na začiatku inicioval korekcie na všetky cieľové databázy, ktoré viem následne použiť vo všetkých príslušných komponentoch. Komponent pre PostgreSQL je pre ukážku iniciovaný priamo parametrami v danom komponente.

 

Na úvod som načítal údaje s nášho fiktívneho CRM systému (PostgreSQL databázy) za pomoci klasického SQL query dopytu. Komponent viem na plochu ľahko vložiť s už vyplnenými parametrami potiahnutím danej databázovej položky z Metadát. V komponentoch je možné jednak použiť preddefinované query na základe načítanej štruktúry tabuliek v Metadátach a rovnako aj custom query, ak je potrebného do query pridať premenné, alebo vnorené selecty na viacero zdrojov:

 

prvy komponent

 

Následne som výstup komponentu pripojil do tzv. tMapy, slúžiacej na rýchlu zmenu štruktúry, typov, filtrovanie, prípadne lookup na dodatočný zdroj údajov. V Mape som sa rozhodol upraviť naše CRM dáta o firemných zákazníkoch tým, že doplním presné názvy miest, podľa PSČ z číselníka Obcí:

 

mapa1

 

Ako môžeme vidieť v nižšie uvedenom obrázku, v mapovacom komponente mám presný prehľad o dátových štruktúrach a môžem robiť takmer akúkoľvek transformáciu. Jednotlivé stĺpce je možné mapovať potiahnutím kurzora k danému výstupu a tiež prípadne aj obohatiť o dodatočné spracovanie vložením java funkcie podľa vlastných potrieb (v mojom prípade som si vytvoril kontrolu na dĺžku parametra IČO):

 

funkcia java

 

Po doplnení a skonsolidovaní údajov mi ešte ostáva údaje dostať do cieľového systému. Pre tento účel som sa rozhodol propagovať obohatené údaje do troch rôznych systémov, pracujúcich nad rôznymi typmi databáz. V novej mape som sa rozhodol údaje rozdeliť do týchto systémov podľa názvu mesta (Komárno, Bratislava a ostatné), tiež s pomocou základnej java podmienky.


Všimnime si, že na rozdelenie dátového toku a jeho filtrovanie je potrebný jediný komponent. Taktiež pridanie, či odstránenie stĺpcov, prípadne zmena dátových typov je len otázkou pár klikov:

 

mapa2

 

Jednotlivé štruktúry dátového toku je samozrejme možné kontrolovať aj v prepojeniach medzi komponentami, nielen priamo v nich:

 

row structure

 

Následne po dokončení všetkých transformácií a napojení na cieľové databázy môžeme priamo zo štúdia daný job spustiť a sledovať postup prenosu riadkov, s rýchlosťou, prípadne sledovaním vyťaženia pamäte, počas priebehu jobu.

 

Normal run:

job normal

 

Memory run:

job memory

 

Vizuálne prostredie Talend štúdia týmto spôsobom prináša do vývoja lepšiu prehľadnosť a možnosť lepšej koordinácie prác developerov.

 

Jednou z hlavných výhod tiež je, že konkrétne operácie môže následne udržiavať aj administrátor. Takto dokáže organizácia oddeliť vývojové náklady na systém od nákladov spojených s jeho údržbou a zmenami, ktoré je možné robiť aj bez priamych zásahov do kódu. Ďalším prínosom je zníženie nákladov na udržiavanie stálej programátorskej základne alebo dodávateľov.

 

Autor: Ivan Stríček        
Kontakt: Táto e-mailová adresa je chránená pred spamovacími robotmi. Na jej zobrazenie potrebujete mať nainštalovaný JavaScript.