facebook LinkedIN LinkedIN - follow
PříLOHA #2 3/2003

ETL a kvalita dat

Jindřich Vavruška





Datové sklady jsou budovány tak, aby obsahovaly tematicky uspořádaná data určená pro analytické zpracování. Vstupní data pro datové sklady jsou získávána z primárních (provozních) systémů, kde nejsou uspořádána tematicky a poskytují popis jednotlivých transakcí, tedy nic, co by bylo přímo použitelné pro analýzu. Z výše uvedeného vyplývá, že pro uložení dat v datovém skladu je potřeba udělat něco více než data jen zkopírovat, a k tomu právě slouží procesy ETL - Extraction, Transformation, Loading.

O tom, jak klíčové je ETL pro úspěch celého projektu, svědčí statistiky. Například Gartner Group uvádí , že celých 45% času při budování Data Warehouse je věnováno právě ETL.

Extrakce
Z primárních systémů je potřeba vyextrahovat potřebná data. Transakční systém obsahuje spoustu dat, která nemusí být nutně zajímavá pro analýzu, jako například adresa bankovního terminálu apod. Extrakční procesy vybírají z datového zdroje pouze ta data, kterých je pro další zpracování třeba.
Extrakce také zahrnuje načítání dat z nejrůznějších zdrojů, nejen z databází. Například z textových souborů, XML dokumentů apod.

Transformace
Během ETL procesů se transformují data z primárních systémů na ukazatele (metriky), uložené v tabulkách faktů, a na atributy popisující kategorie, podle nichž se ukazatele analyzují, uložené v tabulkách dimenzí. Prvky dimenzí vytvářejí hierarchie (například den - týden - rok, prodejna - obec/město- region), které zachycují obchodní hlediska používaná při analýze ukazatelů. Vedle obecných dimenzí, jako je čas, se vytváří mj. dimenze zákazníků, dimenze dodavatelů apod., v nichž jsou kromě analyticky významných hierarchií uloženy i další popisné atributy jako například adresa sídla nebo trvalého pobytu, věk, počet zaměstnanců apod.

Čištění dat
Data z primárních transakčních systémů mohou mít (a také mají) velmi různorodou kvalitu. Při procesu čištění se snažíme kvalitu dat zvýšit tak, aby výsledky zjištěné při jejich analýze nebyly zatíženy příliš velkými chybami. Příčinou špatné kvality dat je primárně člověk. Člověk zkresluje informace, které předává ústně, člověk chybuje v písemném záznamu informací, člověk je líný vyplnit všechna pole formuláře.

Předmětem čištění mohou být prakticky všechny atributy datových objektů, které nemají povahu ukazatele. V datech o zákaznících firmy je obvykle potřeba prověřit a vyčistit identifikační údaje a adresy. Další chyby se nacházejí v atributech transakcí, jako jsou kódy zboží a podobně.

Datové sklady obecně nemají inteligenci a pružnost lidského myšlení, takže se špatnou kvalitou dat způsobenou člověkem se musí vyrovnat pomocí sofistikovaných algoritmů a knihoven dat z reálného světa, která nahrazují životní zkušenosti běžného člověka.

Komplexní řešení ETL
Dodávka ETL řešení má svá pravidla. Její součástí musí být komponenty, které zajistí správné fungování, kontrolovatelnost a udržovatelnost implementovaného řešení.
Součástí dodávky jsou:

. Metodika řešení - konvence pro pojmenovávání objektů, struktura a obsah dokumentace, apod.

. Funkcionalita - postavená na pečlivé analýze datových zdrojů a cílového datového modelu všech transformací. Zahrnuje plánování běhu datových pump včetně žurnálování, datový audit, ošetření chybových situací, systém monitoringu, reportování a notifikace, nastavení přístupových práv uživatelů a v neposlední řadě plán obnovy datového skladu.

. Systém archivace - výběr objektů pro zálohování, nastavení pravidel a intervalů zálohování, příprava hardwaru a médií pro zálohování.

. Dokumentace - dokumentace architektury, technologií, přístupových práv; dokumentace pro správce datového skladu.

. Zaškolení správce

Jaká jsou nejčastější úskalí v ETL vrstvě?

1. Obchodní logika implementovaná do předdefinovaných modelů velkých systémů
U velkých univerzálních systémů se často stává, že se při předimplementační analýze zapomene na nějakou tu důležitou informaci. Poté, co je drahý systém implementován a uveden do provozu, zjistí uživatelé, že pro některou agendu není implementován důležitý atribut. Co udělají? Některý z atributů, který pro ně (pro jejich oddělení, divizi) není důležitý, nahradí ve své mysli potřebným atributem. Stane se tak to, že pro většinu transakcí určitého typu v systému znamená hodnota atributu X to, co je popsáno v systémové dokumentaci - například "kód kontrolujícího pracovníka". Avšak pro některé jiné typy transakcí má tento atribut zcela jiný význam: například "pomocný kód pro vnitřní rozúčtování nákladů".

Takovou skutečnost musíte odhalit při analýze datových zdrojů (což vzhledem k tomu, že popis v dokumentaci neodpovídá skutečnému stavu, není zcela triviální), správně implementovat v ETL procesech a také ji srozumitelně a dostatečně podrobně popsat v dodané dokumentaci.

Obdobným příkladem tohoto úskalí je používání rodných čísel a různé způsoby náhrady neexistujících nebo nezjistitelných rodných čísel. V systémech, v nichž je atribut "rodné číslo" neprozřetelně použit jako identifikační klíč, pak navíc ještě v důsledku toho dochází k obtížně řešitelným problémům s identifikací zákazníka.

2. Nejasné číselníky ve velkých firmách
V každém provozním systému je celá řada číselníků. Bez těchto číselníků nemůže transakční systém vůbec fungovat. U velkých firem, které se skládají z velkého počtu obchodních jednotek (jako jsou například maloobchodní řetězce), se může stát, že v některé obchodní jednotce postrádají v centrálním číselníku položku pro zboží, které právě teď přivezl dodavatel a je potřeba zaevidovat jeho přijetí do skladu. Aby bylo možné evidenci provést, musí se do číselníku chybějící položka okamžitě doplnit.

Při stahování dat ze vzdálených obchodních jednotek do datového skladu potom dochází k tomu, že jednomu druhu skladové položky (zboží) odpovídá větší počet kódů v převzatých datech. To samozřejmě může vytvářet nepřesnosti při analýze skladových zásob, statistice prodeje a dalších analýzách činnosti firmy. Správně navržené ETL musí umožnit detekci tohoto druhu chyb a opravu, a to i zpětně.

3. Nedodržená referenční a doménová integrita
Mnoho transakčních systémů nevyužívá možnosti databázových systémů pro zajištění referenční integrity. Místo toho bývá někdy referenční integrita zajištěna funkcí aplikační logiky.

V důsledku toho dochází k tomu, že v primárních datech jsou porušeny relační vazby mezi jednotlivými tabulkami. Pro plnění datového skladu to má závažné důsledky - vždyť z relačních vazeb se vytvářejí dimenze a jejich hierarchie.

Správně navržený ETL proces proto musí být schopen načíst i data ze zdrojů s neúplnou nebo porušenou referenční integritou, zachytit zjištěné chyby a na tyto chyby upozornit správce datového skladu, případně vygenerovat podrobný report umožňující tyto chyby dodatečně opravit buď v primárním transakčním systému nebo přímo v datovém skladu.

4. Duplicita dat
Ve firmách se složitějším způsobem zpracování informací se setkáváme i s tím, že některé typy transakcí se zpracovávají postupně nebo paralelně v různých subsystémech, přičemž některé výsledky, které takto vzniknou, vypovídají o stejném ukazateli. Jako příklad lze uvést úrokovou marži z úvěrových obchodů finančních institucí. Tuto informaci pravděpodobně naleznete v systému pro správu úvěrů, možná také v systému zpracovávajícím transakce s klienty a velmi pravděpodobně jej lze získat také výpočtem z účetního systému. Návrhář ETL procesů musí rozhodnout společně s vlastníkem datového skladu o tom, která hodnota se použije, případně jak se ověří její správnost či důvěryhodnost. Také je nutné zajistit vyloučení duplicitních dat ze zpracování ostatních údajů ze stejného zdroje.

5. Náhodné chyby způsobené člověkem
Kromě chyb způsobených systematickým používáním (nebo zneužíváním) některých atributů v rozporu s definicí v systémové příručce dochází samozřejmě i k chybám náhodným, neúmyslným.

Často se setkáváme s tím, že v systému obsahujícím atributy jméno, příjmení, titul, je plné jméno osoby vepsáno v jediném poli nebo je přehozeno jméno a příjmení. K podobným přehmatům dochází i v adresách. Koneckonců i v případech, kdy je každý kousek dat na správném místě, se stejně nakonec nevyhneme překlepům.

Transformační, procesy jejichž úkolem je sjednotit data o zákazníkovi, musí být schopny přehmaty a překlepy správně detekovat a opravovat. Pomocníkem v tom mohou být specializované nástroje pro čištění dat, jako je např. Trillium.

6. Problém měnících se dimenzí
Při plnění datového skladu se vytvářejí tabulky faktů (ukazatelů) a tabulky dimenzí. Dimenze se vytvářejí z dat v číselnících a z atributů subjektů (zákazník, odběratel). Jelikož data v číselnících a data o subjektech nejsou v čase neměnná, je nutné vyřešit způsob, jakým bude zachována kontinuita příslušného subjektu nebo druhu položky i v případě změn atributů. Tento problém lze ilustrovat na příkladu bankovní klientky, která v důsledku sňatku změní jméno a bydliště a v důsledku toho také kontaktní pobočku. Jedná se stále o tutéž klientku, což je nutné zohlednit při úvěrovém scoringu (jedním z parametrů bývá délka trvání účtu), případně nabídce dalších produktů, ale zároveň je nutné pro účely hodnocení výsledků poboček rozdělit hodnoty ukazatelů týkající se klientky ve starém a v novém bydlišti.

Problém je řešitelný zavedením pomocných identifikátorů a inkrementálního plnění. Při inkrementálním plnění se nejprve v pomocné tabulce vytvoří záznam dimenze, jehož identifikační prvky se porovnávají se záznamy v existujících dimenzích. Pokud se nalezne identický záznam, jehož sekundární atributy se však liší, je třeba vytvořit záznam nový a propojit jej společným identifikátorem se starým záznamem, aby byla zachována kontinuita v čase.

Ne všechny změny atributů jsou však přípustné. Pro případ, že by v atributech subjektu došlo k nepřípustným změnám, je nutné zajistit, aby došlo k zaznamenání chyby do žurnálu a k upozornění osoby odpovědné za kvalitu dat.

Ošetření chyb
Z výše zmíněných příčin většinou dochází při načítání dat k řadě chyb. Správně navržený ETL systém zaznamenává všechny chyby do chybového žurnálu. Některé z těchto chyb mohou být opravitelné automaticky, avšak kritické chyby a chyby vyžadující manuální opravy musí být hlášeny správci datového skladu a vybraným odpovědným uživatelům, například elektronickou poštou.

Nejlepším způsobem, jak chybu opravit, je opravit ji v systému, kde se vyskytla. Ne vždy to bohužel je možné. V takovém případě je nutné zahrnout opravu známé chyby do ETL procesu.

ETL v reálném čase
Při běžném použití datového skladu probíhají ETL procesy zpravidla jednou za den ve vyhrazeném čase, většinou v noci. Tento způsob nasazení je zcela vyhovující pro většinu operativních analýz. Pro některé další účely, například ve finančních institucích, dokonce zcela postačuje i delší interval zpracování (např. měsíční).

Některé speciální typy analytických úloh však vyžadují, aby vyhodnocení dat proběhlo v co nejkratším čase, poté co došlo k transakci nebo jiné změně v datech. Typickým příkladem je detekce podvodů při používání platebních karet nebo telekomunikačních služeb.

V těchto aplikacích probíhají ETL téměř v reálném čase a svým charakterem se začínají blížit nástrojům pro aplikační integraci (Enterprise Application Integration, EAI). Nástroje EAI vznikly z potřeby synchronizovat v reálném čase transakční aplikace. V bankovnictví je najdeme například ve funkci propojení mezi primárním systémem, elektronickými službami (Internet banking, GSM banking), call centrem a dalšími produktově orientovanými systémy (platební karty, prodej podílových listů, některé přepážkové služby).

Householding
Tématem, které získává v poslední době na důležitosti v České republice, je householding. Householding je v něčem podobný identifikaci klienta. Avšak zatímco při identifikaci klienta je úkol poměrně jednoduchý - identifikovat jednotlivou osobu - při householdingu se snažíme identifikovat domácnost.

Cíle tohoto snažení jsou zřejmé:

. Lepší ohodnocení existujícího zákazníka: Znalost příslušnosti jednotlivců z hlediska struktury domácnosti umožňuje firmě přesněji vyhodnotit hodnotu každého zákazníka. Typickým příkladem mohou být manželé se samostatnými účty. Manželka na mateřské dovolené dostává na svůj účet dvanáct tisíc korun na běžné výdaje a chod domácnosti. Banka neví, že účet s měsíčním obratem sto tisíc korun, z nějž peníze každý měsíc dostává, patří jejímu manželovi. Jakákoliv žádost o zvýšení týdenního limitu na platební kartě bude zamítnuta. Se znalostí finanční situace celé rodiny by banka vyšší limit pravděpodobně ochotně nabídla sama a hledala by cestu, jak obrat na účtu manželky zvýšit.

. Lepší řízení rizik: Znalost rizika klienta je zásadně důležitá pro banky, úvěrové instituce a leasingové firmy. Neznalost toho, že klienti patří do jedné domácnosti zvyšuje pravděpodobnost, že partnerovi rizikového klienta by mohl být, v rozporu se záměrem finanční instituce, poskytnut úvěr.

. Přesnější marketingové zacílení: Při marketingových kampaních směřují nabídky pouze na jednoho člena domácnosti, případně jsou diverzifikovány podle role jednotlivce v domácnosti. Tím se jednak šetří náklady na kampaně, jednak se předchází frustraci klientů z vícenásobných nabídek téhož produktu nebo služby.

. Získání nových zákazníků: Při alespoň přibližné znalosti domácnosti lze zahrnout do nabídky i takové produkty, které pro klienta samotného nemají význam, avšak mohou oslovit jiného člena domácnosti.

Při householdingu je samozřejmě potřeba vycházet z kvalitních dat. Teprve na vyčištěná data lze aplikovat postupy, které s velkou pravděpodobností identifikují členy domácnosti. Naše firma má v oblasti householdingu řadu zkušeností a poznatky od zákazníků v ČR naznačují, že householding se stává tématem dne pro progresivní firmy u nás.

Nástroje pro čištění dat - Trillium
Trillium je nástroj firmy Harte-Hanks pro čištění dat o zákaznících. Trillium se skládá z modulů, ve kterých jsou data analyzována a transformována, a z databází zeměpisných údajů, katalogů jmen, titulů, apod. pomocí nichž se opravují chyby. V procesu čištění se nejprve analyzují všechny vstupní údaje a určí se jejich význam - jméno, příjmení, název ulice, název města, apod. Drobné chyby v datech se opravují za pomoci zeměpisných a jmenných katalogů. V analyzovaných a setříděných datech se dále vyhledávají významné shody a přiděluje se jim skóre podle pravděpodobnosti. Nakonec se identifikují jednotliví klienti. S použitím dodatečných informací, které lze získat z úvěrových žádostí a některých transakcí, je možné s určitou mírou pravděpodobnosti identifikovat domácnosti.

V systému Trillium jsou obsaženy dlouholeté zkušenosti s identifikací. Tvůrci Trillia se začali zabývat čištěním a identifikací poštovních adres koncem šedesátých let minulého století. Od té doby vyvinuli celou řadu technologií, jež jsou dnes integrovány v robustním, škálovatelném a multiplatforním řešení. Systém Trillium v ČR distribuuje firma Data To Information (D2I).

Metadata
Metadata jsou data o datech - názvy tabulek a sloupců, jejich datové typy, sémantika. Metadata v ETL popisují jak zdrojová data, tak data v cílové databázi. Každý databázový systém a každý vývojový nástroj obsahuje svá vlastní metadata. Pro návrháře a správce ETL procesů tím vzniká potřeba metadata z rozličných systémů zpřístupnit, pokud možno jednotně všem zainteresovaným uživatelům.

Tento problém není zcela jednoduše řešitelný, protože každý systém používá proprietární způsob ukládání metadat. Rozhodnete-li se zřídit si centrální repozitář metadat, musíte vyřešit konektivitu mezi různými systémy a převod metadat do jednotného modelu. Ačkoliv ideálním místem pro uložení metadat jsou databázové tabulky, z hlediska interoperability je výhodnější řešení na bázi otevřených standardů (např. XML). Centrální správu metadat řeší některé specializované produkty. Metadata neslouží v ETL pouze k popisu dat, nýbrž umožňují formou popisu definovat i transformace. Tím se redukuje nebo dokonce zcela eliminuje práce programátorů, a tím i chybovost tranformací.

Stručný přehled ETL nástrojů
ETL komponenty datového skladu je při troše štěstí možné vytvořit ve formě sbírky SQL skriptů, dávkových skriptů a příslušné dokumentace. Nikoho nepřekvapí, že pro maličká řešení je takový způsob dokonce nejrychlejší. Pracnou údržbu je však lépe nahradit použitím profesionálního nástroje.

Mezi hlavní výhody ETL nástrojů patří zejména:
. repozitář, zpravidla uložený v databázi,
. centralizovaná správa transformací v repozitáři,
. možnost vytváření nebo správy metadat,
. řízené plánování a spouštění transformací.

Warehouse Builder (Oracle)
Oracle Warehouse Builder (OWB) je nástroj určený primárně pro použití s databázemi Oracle. Poskytuje prostředky pro návrh, správu a spouštění dávek a transformací a repozitář metadat. Samozřejmostí je grafické uživatelské rozhraní a u Oraclu obvyklá robustnost a škálovatelnost.

OWB podporuje transformace řízené metadaty. Tím, že programový kód transformací lze generovat z metadat, se snižuje pracnost a chybovost programování transformací. Nástroj podporuje opakovatelnost využití kódu - v repozitáři lze vytvářet knihovny transformací importem vlastních transformačních procedur.

Oracle Warehouse Builder zpřístupňuje metadata širšímu okruhu uživatelů prostřednictvím webové aplikace. K výsledkům datového auditu je přístup prostřednictvím speciální aplikace.

Data Transformation Services (Microsoft)
Tento software je součástí Microsoft SQL Server 2000. DTS umožňují přesouvat data mezi různými databázovými servery, ale celkem logicky fungují nejlépe a nejrychleji, je-li alespoň jedním z nich Microsoft SQL Server.

DTS poskytují příjemné grafické rozhraní. Software umožňuje mapování jednoduchých transformací přímo, složitější transformace lze naprogramovat v jazyce Visual Basic, ale i v JavaScriptu nebo Perlu. Skripty v jiných jazycích než Visual Basic jsou ale v prostředí DTS pomalejší.

Nástroje Informatica
ETL nástroje Informatica zahrnují: PowerMart, PowerCenter a PowerCenterRT. Transformace navrhované v prostředí Informatiky jsou plně řízené metadaty. Tento koncept Informatica nazývá "Active Metadata". Bohatá výbava nástrojů umožňuje konektivitu nejrůznějších datových zdrojů - databázových serverů všech významných výrobců, souborů odpovídajících otevřeným standardům apod. Informatica PowerCenterRT umožňuje aktualizaci v reálném čase technologií Zero Latency.

Ab Initio
Ab Initio, se kterým naše firma pracuje v rámci jednoho ze svých největších projektů, je velice výkonný (a nákladný) prostředek umožňující programovat masivní ETL v prostředí obrovských datových skladů. Hlavním rysem Ab Initia je podpora paralelního zpracování dat, modularita a podpora široké škály průmyslových standardů. Schopnost Ab Initia zvládat obrovské objemy dat a plně využít kapacitu víceprocesorových serverů je velmi cenná pro provoz datových skladů v oborech produkujících obrovské objemy dat - v podmínkách České republiky zejména telekomunikace a velké finanční instituce.

Návratnost investic do nástrojů ETL
Při výpočtu návratnosti investice do profesionálního ETL prostředí je potřeba vzít v úvahu faktory, které mají vliv na náklady na vlastnictví ETL vrstvy datového skladu:

. předpokládaná životnost datového skladu,
. pravděpodobné změny v primárních systémech,
. počet informačních systémů sloužících jako datový zdroj,
. geografická a organizační struktura firemního oddělení IT,
. počet pracovníků zapojených do vývoje nebo správy datového skladu.

Obecně lze říci, že čím složitější infrastruktura a čím vyšší objem dat, tím více se použití profesionálních ETL nástrojů vyplatí. Pro komplexní systémy jsou takové nástroje nezbytností.

Pozn. red.: Autor článku, Jindřich Vavruška, pracuje ve společnosti Adastra jako konzultant se zaměřením na kvalitu dat a ETL procesy.

Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.


Inzerce

Wittmann zálohuje a chrání svá data s Acronis Cyber Protect Cloud

Skupina WITTMANN Group se sídlem ve Vídni působí na celém světě. Prostřednictvím 10 výrobních závodů v 6 zemích a 37 poboček je zastoupena na všech důležitých světových trzích plastikářského průmyslu.