Data Quality CZ - portál věnující se tématu kvalitních dat

Použití nástrojů DataFlux pro řízení datové kvality

[1.2.2012] D. Pejčoch

Abstrakt

Před časem jsem v časopise Computerworld publikoval recenzi nástroje SAS DataFlux. Recenze tehdy musela být radikálně zkrácena a nedostala se tak do ní celá řada zajímavých informací, vč. obrázků. Rozhodl jsem se proto kompletní článek v původní podobě publikovat zde. Uvedné závěry vyplývají zejména z praktického testování nástroje dfPower Studio (verze 8) na reálných datech a problémech řešených v oblasti neživotního pojištění. Při čtení tohoto článku je třeba vzít v potaz, že byl původně publikován v říjnu roku 2008.

Úvod do problematiky datové kvality

Datová kvalita je problematika, která firmy i státní sektor trápí stále více, adekvátně k rostoucímu objemu zpracovávaných dat a rostoucí heterogenitě prostředí informačních systémů, kdy každá ze specializoavných aplikací často produkuje autonomně data téhož rázu (např. aplikace call centra pojišťovny, co by jeden z komunikačních kanálů, produkuje data o klientech a jejich obchodních případech, stejně tak jako specializovaný provozní systém pro životní pojištění a systém pro neživotní pojištění, do nichž jsou obchodní případy vloženy přímo získateli pojištění).

Je zcela zřejmé, že za takové situace je velmi žádoucí datovou bázi zdrojových aplikací centralizovat (minimálně na úrovni předmětné oblasti) a zajistit tak jednotný zdroj jak pro vykazování a analýzy (obecně Business Intelligence), tak pro zpětné využití dat v běžném provozu (např. tisky složenek nebo objednávky asistenčních karet v pojišťovně). Podle předmětné oblasti zájmu se toto hledání jediné pravdy označuje jako Customer Data Integration, Product Information Management, apod. Souhrnně se pak o této úrovni řízení dat hovoří jako o Master Data Management.

Přesto, že svou koncepcí centrální báze dat (Data Integration HUB) uložené a spravované s pomocí Data Flux Integration Server (DIS) řešení DataFlux plně Master Data Management podporuje, omezím se v této studii na jeho podporu pro nižší úroveň řízení dat, na řízení datové kvality a funkcionality DIS se dotknu pouze okrajově.

Pokud hovoříme obecně o datové kvalitě, máme na mysli takové plnění nároků na data jako je jejich syntaktická správnost (atribut obsahuje data, která do něj věcně patří, např. značka vozidla obsahuje skutečně hodnotu, jíž lze pokládat za značku vozidla), semantická správnost (atribut obsahuje správnou hodnotu), kompletnost (problematika chybějících hodnot), konzistentnost s ostatními datovými zdroji , včasnost dat a řadu vlastností spojenou s přístupem k datům jako je např. dostupnost dat a bezpečnost přístupu k nim.

Úvod do řízení datové kvality s pomocí nástroje DataFlux

Nástroj DataFlux (ke dni vzniku tohot článku ve verzi 8.0) představuje vlajkovou loď řešení pro datovou kvalitu v portfoliu společnosti SAS. Společnost SAS jej získala akvizicí jeho tvůrce v r. 2000. Nástroj se skládá z klientského dfPower Studio, přestavujícího pomocníka datových stewardů a byznys analytiků, sloužícího především pro tvorbu byznys pravidel, a DataFlux Ingegration Server poskytujícího platformu pro vytvoření tzv. Data Integration HUB, tedy báze integrující datovou kvalitu napříč celou organizací. DataFlux tedy neposkytuje pouze řešení pro datovou kvalitu, ale i pro Master Data Management. Základ celého řešení tvoří tzv. QKB (Quality Knowledge Base) zahrnující gramatiky, fonetické knihovny (např. pravidla pro záměnu zdvojených samohlásek), knihovny regulárních výrazů, standardizační schemata a slovníky. Jednotlivé části QKB se pochopitelně liší podle příslušné lokality, kde je používána. Všechny její části jsou kastomizovatelné, takže je lze upravit nebo doplnit o vlastní pravidla empiricky zjištěná na datech při konkrétních projektech. Snazší kastomizaci napomáhá vestavěný nástroj df Customize, resp. přímo specializované editory Vocabulary Editor, Grammar Editor, Regex Editor, Phonetics Editor, Chop Table Editor a Scheme Builder, spustitelné přímo z hlavního rozhraní aplikace dfPower Studio.

Pro konektivitu na datové zdroje využívá DataFlux připojení pomocí ODBC. S instalací DataFlux dfPower Studio se současně nainstaluje celá řada ODBC driverů, mezi nimiž rozhodně nechybí drivery pro konektivitu na základní RDBMS jako je Oracle, MS SQL Server, Sybase či Informix. Poněkud specifické je připojení na SAS data sets, které lze provést (a je to dokonce žádoucí) přímo, bez nutnosti definice ODBC zdroje. Samozřejmostí je možnost přímého načítání textových souborů, jak s oddělovačem, tak i s pevnou šířkou sloupce. Zajímavou funkcionalitou je načítání metadat tabulky nadefinované jako ODBC zdroj. Tato funkcionalita je výhodná jak pro verifikaci dat proti metadatům, tak i pro aktuálně populární čištění metadat co by dosud neprávem opomíjené oblasti datové kvality.

Pro úpravu datových zdrojů pomocí Query Builderu (Query By Example) nebo přímo pomocí napsaného dotazu v SQL se syntaxí zrozumitelnou (kompatibilitní s ANSI SQL) pro nadefinovaný ODBC zdroj, slouží DBViewer. Užitečnou doplňkovou funkcionalitou aplikace DBViewer, je zobrazení výsledků dotazu obsahujícího grupování formou grafu.

Obr. č. 1 znázorňuje hlavní uživatelské grafické rozhraní nástroje dfPower Studio, z něhož se spouštějí všechny další dílčí nástroje. V horní liště jsou v řadě spouštěcí ikony nástroje dfPower Architect sloužícího pro vytváření work flow, nástroje DBViewer, Business Rule Manager sloužícího mimo jiné i pro vytváření úloh pro monitorování datové kvality, následuje ikona nástroje Monitor Viewer pro prohlížení výsledků běhů úloh pro monitorování. Další trojice ikon spouští jednotlivé komponenty nástroje dfPower Profile (Profile Configurator, Profile Viewer, Explorer) pro analýzu dat. Následuje dvojice ikon spouštějící nástroj pro porovnávání Match a Merge. Další skupina ikon spouští již výše zmiňované nástroje pro customizaci QKB (dfPower Customize, Vocabulary Editor, ...). Poslední ikona spouští nástroj Scheme Builder sloužící pro vytváření standardizačních schémat.

Obr. č. 1 dále zobrazuje stromovou strukturu dostupných zdrojů v rámci pracovní stanice, na níž je aplikace nainstalována, definované integrační servery, nástroj pro základní nastavení aplikace a rozhraní nástroje pro plánování spouštění úloh (např. těch pro monitorování datové kvality). Do skupiny disponibilních zdrojů patří především nadefinovaná ODBC připojení, dále definované makroproměnné, použitelné v jednotlivých vestavěných aplikacích. Patří sem rovněž stromová struktura reportů a vytvořených jobů, použitelné akcelerátory a referenční zdroje (zde konkrétně databáze US Postal Services pro verifikaci adres). Zmiňované akcelerátory slouží pro usnadnění implementace nástroje a představují předpřipravená work flow a služby řešící obvyklé standardní situace v řízení datové kvality. Uživatel si může vytvořit i své vlastní akcelerátory jednoduše tím, že work flow vytvořené pomocí aplikcae dfPower Architect uloží jako akcelerátor.

Důležitou součástí zdrojů jsou nadefinované repository sloužící jako fyzické úložiště pro reporty z kroku profilace dat, kastomizované metriky, uživatelem definovaná standardizační pravidla a výsledky monitorování datové kvality. Za pojmem repository se skrývá libovolný RDBMS přístupný jako ODBC zdroj, nebo SQLite rps soubor.

Obr. č. 1: Hlavní uživatelské rozhraní aplikace DataFlux dfPower Studio
Aktuální a plánovaná úroveň vlastností dat

Své mnohaleté zkušenosti z oblasti řešení problematiky datové kvality společnost DataFlux Corporation uplatnila při tvorbě vlastní metodologie řízení datové kvality. Metodologii lze zformulovat do cyklu skládajícího se ze tří opěrných pilířů (Analyze, Improve, Control), rozčleněných do pěti dílčích činností (Profiling, Quality, Integration, Enrichment a Monitoring), pro něž se DataFlux ve svém řešení snaží vytvořit podporu. Podstatným je cyklický charakter metodiky, reflektující skutečnost, že datová kvalita není nikdy definitině vyřešeným problémem. S jednotlivými pilíři koresponduje i členění menu vestavěné aplikace dfPower Architect, která slouží pro tvorbu vlastního work flow procesu datové kvality.

Toto work flow lze rozdělit do více stránek, které lze spouštět i jednotlivě. Zpočátku může uživateli připadat jako trochu nepraktické, že nelze spouštět samostatně jednotlivé nody, z nichž je work flow sestaveno. Po chvíli používání aplikace ale zjistí, že tento domnělý nedostatek plně vyvažuje funkcionalita umožňující zobrazení vzorku výstupu každého nodu v dolní liště Details pod záložkou Preview (viz. obr. č. 2). Je ovšem nutné pamatovat na to, aby v nastavení aplikace byl zvolen vhodný počet takto zobrazovaných řádků, neboť jinak může dojít k nežádoucímu zatuhnutí aplikace. Při spuštění celého projektu je samozřejmě možné nastavit pořadí spouštění jednotlivých stránek. Jednotlivé nody i jejich skupiny, lze volně kopírovat / přesouvat jak mezi jednotlivými stránkami jobu, tak i mezi více otevřenými okny dfPower Architect.

Obr. č. 2: Grafické rozhraní dfPower Architect
Aktuální a plánovaná úroveň vlastností dat

Podpora jednotlivých kroků procesu řízení datové kvality

Nyní, po krátkém úvodu, bych se rád věnoval popisu konkrétní funkcionality nástroje dfPower Studio podporující jednotlivé kroky procesu řízení datové kvality tak jak je prezentován ve výše uvedené metodice DataFlux Corporation. Ve svém popisu budu vycházet primárně z funkcionality vestavěného nástroje dfPower Architect. Není-li tedy v textu uvedeno jinak, odpovídá popisovaná funkcionalita nástroji dfPower Architect. Pokud funkcionalitu podporující příslušnou oblast řízení datové kvality poskytuje ještě jiný integrovaný nástroj, uvedu jeho popis zvlášť na závěr příslušné sub-kapitoly.

Podpora pro analýzu dat

Prvním pilířem procesu datové kvality je analýza dat. V rámci tohoto pilíře stojí na prvním místě profilace dat, zahrnující v sobě obecně zjištění základních popisných charakteristik, identifikaci odlehlých pozorování, validaci dat proti metadatům nebo verifikaci platnosti formátů (např. zda telefonní číslo má vždy formát zahrnující předvolbu země).

Ze skupiny nodů (uzlových bodů pro vytváření work flow) nástroje dfPower Architect, podporujících oblast profilace, bych na prvém místě uvedl node Basic Statistics, jenž poskytuje jak základní informace o počtu záznamů, počtu vyplněných hodnot, počtu chybějících hodnot, tak i charakteristiky polohy a variability jako je průměr, variační rozpětí, modus, směrodatná odchylka a percentily.

Velmi užitečným pomocníkem jsou nody Basic Pattern Analysis a Pattern Analysis. Jak již jejich název napovídá, slouží k vyhledávání vzorů v datech, přičemž pod pojmem vzor se zde chápu formát zápisu hodnoty v rámci konkrétního atributu. Použití nodu Pattern Analysis je oproti Basic Pattern Analysis rozšířeno o možnost určit, zda výsledný vzor má odpovídat celému slovu nebo jednotlivým znakům. Příklad aplikace nodu Pattern Analysis znázorňuje Obr. č. 1 a následující tabulka.

Tab. č. 1: Porovnání různých formátů zápisu telefonního čísla a jim odpovídající vzory
Kokrétní hodnota Odpovídající vzor pro jednotlivé znaky Odpovídající vzor pro celá slova
+420-210000216 *999*999999999 *9*9
210000216 999999999 9
+420/210000216 *999*999999999 *9*9
+420 210 000 216 *999 999 999 999 *9 9 9 9

Ve spojení s nodem pro výpočet četností Pattern Analysis umožňuje zjistit strukturu formátů hodnot v daném atributu a pomáhá rozhodnout o tom, který formát má být považován za standard a jakým způsobem na tento standard převést formáty ostatní.

Posledním nodem ze skupiny pro podporu analýzy dat je pomocný node Data Validation, který umožňuje filtraci průchozích záznamů na základě definovaných pravidel s možností využití funkcí, mezi nimiž nechybí obvyklé funkce pro verifikaci, zda je vstupní hodnota číslo, či zda je atribut neprázdný, ale lze mezi nimi nalézt i specializované funkce pro porovnávání řetězců, výpočet editační vzdálenosti dvou řetězců, funkci pro spouštění programů a funkce pro práci se soubory.

Zde je nutné zmínit, že profilaci dat lze alternativně k dfPower Architect provést i pomocí integrované aplikace dfProfile Configurator, spustitelné z hlavního rozhraní dfPower Studio. Prvním krokem je výběr příslušných atributů z nadefinovaného ODBC zdroje, nebo query proti nadefinovanému zdroji, a nebo výběr atributů ze SAS data set. Obecně je doporučeno z výkonnostního hlediska vybírat pro analýzu co nejméně atributů pohromadě. Pro vybrané atributy lze nadefinovat metriky, které budou během analýzy spočteny. Součástí analýzy může být rovněž analýza vzorů popsaná výše, včetně spočtení četností pro jednotlivé vzory. Pomocí nastavení Sample Interval lze vytvořit ze zdrojových dat výběr každého i-tého pozorování, čímž lze zvláště u velmi rozsáhlých datových souborů dosáhnout značné optimalizace výkonu (bohužel na úkor reprezentativnosti výsledných vzorů). Výsledný report je uložen do repository a lze jej prohlížet vestavěnou aplikací dfProfile Viewer. Lze jej rovněž přímo exportovat do aplikace Scheme Builder, kde poslouží jako zdroj pro vytváření standardizačních schémat (viz. dále). Výsledky profilace lze rovněž vizualizovat. Zlepšování datové kvality lze pozorovat srovnáním historických reportů profilace pomocí nástroje Trend Analysis.

Výsledné nastavení v dfProfile Configurator lze exportovat jako job aplikace dfPower Architect, přičemž standardní funkcionalitu sestávající z nodu pro definici datového zdroje, nodu pro analýzu vzorů a nodu pro frekvenční analýzu lze ještě před exportem doplnit o další prvky work flow i ze skupin jiných než těch pro podporu datové analýzy.

Velmi zajímavou funkcionalitu aplikace dfProfile Configurator představuje možnost použít Redundat Data Analysis a Primary Key / Foreign Key Analysis. První z uvedených funkcí umožňuje zjištění počtu společných hodnot ve dvou různých tabulkách, což je užitečné zejména při ověřování referenční integrity v relační databázi. Výsledkem je zobrazení procentální shody tabulek, tj. z kolika % je pro primární klíč v „Parent“ tabulce nelezen cizí klíč v „Child“ tabulce. Hodnoty, které se nezřetězí, jsou v reportu označeny jako odlehlé. Druhá uvedená funkce představuje v podstatě doplněk k té první. Slouží k určení procentuálního zastoupení hodnot, které tabulky nemají společné. Pro porovnání hodnot umí použít jak přesné hodnoty, tak i jejich Match Code, vygenerovaný na základě definice typu atributu a dané míry senzitivity. Výsledkem je mimo jiné i Vennův diagram znázorňující počty hodnot v průniku tabulek a počty nezřetězených hodnot.

Dalším velmi užitečným nástrojem pro analýzu dat, spustitelným ze základního menu dfPower Studio, je aplikace dfPower Explorer, sloužící pro identifikaci redundantních dat a extrakci metadat ze zdrojových systémů nadefinovaných jako ODBC zdroj nebo jako fyzické úložiště SAS data sets. Po vybrání zdrojových tabulek je nutné nastavit typ analyzovaných metadat. Analyzovat lze metadata primárních a cizích klíčů, indexů, uložených procedur, názvů atributů a vzorků dat atributů. Při aplikaci dfPower Explorer na vrstu L0 datového skladu ÚPMV Kooperativy např. pro atribut čísla pojistné smlouvy nalezl dfPower Explorer jeho první výskyt v tabulce dodatků k pojistné smlouvě (postupoval podle abecedy) a dále určil, že atribut s tímto názvem se vyskytuje ještě v dalších 12 tabulkách s určitým % shody hodnot. Zároveň zobrazil i další atributy, které měly tyto tabulky společné (podle názvu). Při použití volby Column Name Analysis dfPower Explorer ještě navíc identifikuje takové názvy atributu, které vyhovují některé definici z QKB. Např. vybere atribut s názvem fax jako splňující definici Individual (kontaktní údaje jednotlivce).

Podpora pro zlepšování datové kvality

Druhý pilíř metodiky se zaměřuje přímo na problematiku zlepšování kvality dat na základě jejich předchozí analýzy. Tento pilíř se skládá ze tří navazujících kroků řešících datovou kvalitu, datovou integraci a obohacení dat o dodatečné atributy či doplnění chybějících hodnot.

Aplikace dfPower Architect opět pro tuto oblast podporuje formou řady užitečných nodů pro vytvoření work flow, z nichž hned zkraje bych zmínil node Gender Analysis sloužící pro identifikaci pohlaví (M = muž, F = žena, U = neznámé) porovnáním jména s údaji z QKB odpovídajícími vybrané lokalitě. Jeho „Parsed“ varianta se liší pouze tím, že na vstupu předpokládá jméno již rozdělené do jednotlivých tokenů (Prefix, Given Name, Middle Name, Family Name, Name Suffix, Name Appendage). Při použití tohoto nodu pro česká jména zřejmě odpadá problém univerzálních jmen (např. Chris, Pat), u nichž pohlaví nemusí být vždy korektně identifikováno, zmíněný v nápovědě zejména v souvislosti s Angličtinou.

Použitím nodu Identification Analysis lze rovněž porovnávat informace z QKB s vlastními daty. Lze jej například použít pro verifikaci názvu organizace, kdy výstupní atribut poté obsahuje informaci, zda se jedná o organizaci, jednotlivce, či zda nelze význam hodnoty atributu jednoznačně určit. Jako další příklad použití je možnost nastavení volby Contact Info, kdy v českém prostředí výstup obsahuje informaci, zda se jedná o PSČ (hodnota CSZ), číslo účtu (hodnota ACCT) či jméno jednotlivce (IND).

Příslušné menu dfPower Architect dále obsahuje nody pro podporu standardizace (stejně tak jako u Gender Analysis ve verzi aplikovatelné na celý řetězec a "Parsed" varianty aplikovatelné pouze na jednotlivé tokeny). Standardizace obecně spočívá ve sjednocení struktury atributů pro jejich pozdější snazší porovnávání (zejména s ohledem na zjišťování potenciálních duplicit), spočívající např. v nahrazení domáckých jmen (např. Bob, Franta, Pepa) za jejich spisovný ekvivalent (Robert, František, Josef), sjednocení zkratek (např. Rd., Nám., Bří.), sjednocení syntaxe názvů firem (IBM, vs. International Business Machines), sjednocení pořadí jednotlivých tokenů v rámci atributů obsahujících víceslovné řetězce, apod. Node Standardization slouží k aplikaci jednotlivých standardizačních pravidel na zvolené atributy. Využívá při tom jak standardizační pravidla přednastavená v QKB, tak i vlastní pravidla (uložená v QKB), která si uživatel může nadefinovat prostřednictvím integrovaného nástroje Scheme Builder.

V rámci procesu standardizace je rovněž vhodné sjednotit použití velkých a malých písmen v jednotlivých atributech (zejména u názvů firem, nebo v případě značek a typů motorových vozidel). K tomuto účelu slouží node Change Case, který umožňuje podle zvoleného parametru transformovat všechna písmena příslušného řetězce na malá (Lowcase), velká (Uppercas) nebo opravená automaticky na základě zvolené definice odpovídající obsahu daného atributu (např. adresa) podle údajů z QKB (volba Propper).

Další užitečnou pomůckou je node Locale Guessing, jenž přiřazuje lokalitu (Locale) k příslušnému záznamu. Stačí jen mít licencován dostatečný počet lokalizací QKB a z nabízeného seznamu vybrat ty, které má node brát v úvahu. Ve výstupním atributu se poté objeví zkratky jako CSCZE (Čeština, Česká repulika), ENUSA (Angličtina, USA), ITITA (Italština, Itálie), apod. V případě, že nemáte zvolen dostatečný počet lokalizací a současně zvolíte jako default např. českou lokalizaci, buďte připraveni na to, že jako české označí node i ty záznamy, které nebude umět prostřednictvím zvolených Locales zařadit. Je třeba ještě dodat, že aplikace tohoto nodu na rozsáhlý datový soubor je velmi náročná na RAM.

Right Fielding je dalším nodem sloužícím pro porovnání vlastních dat s QKB. Navazuje na funkcionalitu nodu Identification Analysis a umožňuje v závislosti na identifikovaném typu hodnoty atributu vytvářet atributy nové. Při použití již výše uvedené identifikaci, zda příslušný atribut obsahuje název firmy, či jméno jednotlivce, vytvoří tento node tři nové atributy Organization, Individual, Unknown a zařadí do nich identifikované hodnoty. Procento případně chybně zařazených hodnot lze snížit lepší vlastní kastomizací QKB pro danou lokalitu.

Jako nástroj pro načtení vlastního standardizačního schématu do QKB pomocí df Power Architect slouží node Create Scheme. Zdrojová vstupní tabulka musí obsahovat minimálně jeden atribut (typicky obsahuje hodnotu a jí odpovídající standard). Označením volby Scheme Builder lze bezprostředně po doběhnutí jobu načtené schéma editovat.

Dvojice nodů Match Code a Match Code (Parsed) představuje nástroj pro tvorbu jedinečných klíčů pro přibližný join nebo v kombinaci s nodem Concatenate nástroj pro hashování řetězců složených z více atributů jako přípravu pro jejich pozdější fuzzy porovnávání s cílem identifikovat na určité hladině podobnosti duplicity. Výsledkem aplikace nodu na atribut je vygenerování kódu shodné délky pro všechny hodnoty atributu. Délka a způsob kódování se řídí zejména vybranou hladinou senzitivity. Kódování řetězce „Praha“ pro různě vybrané typy a hladiny citlivosti znázorňuje následující tabulka:

Tab. č. 2: Srovnání vygenerovaných Match Code pro řetězec Praha při různé senzitivitě a definici
Definice typu Citlivost Match Code
City 85 NY2&$$$$$$$$$$$
Exact (implicitně 0) NY&2&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Text 85 NY2$$$$$$$$$$$$$$$$$

Po vytvoření porovnávacích kódů popsaném v předchozím odstavci, přijdou velmi vhod nody pro shlukování segmentů (Clustering, Cluster Update, Cluster Diff, Exclusive Real Time Clustering a Concurrent Real Time Clustering) a node Surviving Record Identification sloužící pro označení nejlepšího kandidáta v rámci duplicit, který je posléze ze shluku vybrán jako reprezentant a jediný korektní neduplicitní záznam.

Node Clustering slouží pro identifikaci duplicit na zgrupovaných hodnotách přes vybrané atributy. Podmínky shlukování lze zřetězovat a pomocí nastavení Condition Matched Field Prefix lze vytvořit pro každou část podmínky výstupní atribut, který v sobě ponese informaci, zda daná část podmínky přispěla k zařazení záznamů do shluku, či ne. Jako typický příklad bych uvedl porovnávání, zda se v případě více záznamů pro jediné IČO jedná o odštěpné závody, či ne. V takovém případě by se volily podmínky shlukování např. jako IČO OR NAZEV OR PSČ. S pomocí vytvořeného vstupního atributu obsahujícího booleovské hodnoty 1, 0 (resp. Null) a aktivací volby Do Not Cluster Field lze označit takové záznamy, které bude node při shlukování ignorovat. Součástí výstupu je rovněž numerický atribut identifikující příslušný shluk. Lze rovněž zvolit, zda na výstupu nodu mají být všechny záznamy (tedy i neduplicitní), pouze neduplicitní, a nebo pouze shluky duplicitních záznamů.

K zařazení nových záznamů do stávajících shluků slouží node Cluster Update. Použití tohoto nodu však předpokládá jak zachování původních podmínek shlukování, tak i umístění nových záznamů za původní data a jejich označení prázdnou hodnotou NULL v numerickém identifikátoru shluku. Zdokonalením nodu Cluster Update vznika dvojice nodů umožňující vkládání nových záznamů do stávajících shluků téměř v reálném čase. První z nich, Exclusive Real Time Clustering lze použít i v rámci lokální instalace Data Flux. Node Concurrent Real Time Clustering na rozdíl od předchozího uvedeného řeší problém současného update shluků více uživateli a je určen pro použití na Enterprise Integration Server.

K porovnání zařazení záznamů do různých shluků lze použít node Cluster Diff. Porovnávané shluky do nodu vstupují jako dvojice tabulek joinovaná přes shodný primární klíč. Zřejmou podmínkou použití je rovněž výskyt informace o přiřazení do shluků v každé ze vstupních tabulek. Typ rozdílu mezi clustery je na výstupu vložen do zvoleného atributu. Typy rozdílu jsou obecně COMBINE (shluk z levé tabulky je podmnožinou shluku z pravé), DIVIDE (shluk z pravé tabulky je podmnožinou shluku z levé) nebo NETWORK (v každé tabulce je záznam v navzájem disjunktních shlucích). Jako typický scénář aplikace nodu pro porovnávání shluků si lze představit jeho aplikace na shluky vytvořené na základě porovnávacího kódu (Match Code) s různými stupni senzitivity.

V tomto odstavci bych se ještě rád vrátil k nodu Surviving Records Identification, který určuje tzv. přežívající záznamy představující jedinou pravdu v rámci každého shluku. Jeho aplikace vyžaduje setřídění dat podle numerického identifikátoru shluku (lze nastavit již v rámci shlukování). To, který záznam bude označen jako nejlepší reprezentant, určují uživatelem v rámci nodu nadefinovaná pravidla (Record Rules). Pravidla jsou procházena hierarchicky podle toho, jak jsou za sebe řazena, tj. záznamy, které projdou prvním, postupují do druhého. Pokud nejsou nadefinována žádná pravidla, a nebo pravidlům nebude vyhovovat žádný záznam, je za přeživší vybrán první záznam v pořadí. Výsledný přežívající záznam lze na výstupu nodu buď označit při ponechání všech záznamů, a nebo nepřeživší záznamy smazat. Pomocí tzv. Fields Rules lze na výstupu nodu odvozovat nové atributy.

Poslední skupinu nodů, jenž slouží pro podporu datové kvality, tvoří nody pro obohacování stávajících záznamů. V této skupině jsou nody pro verifikaci a obohacení adres proti databázi US Postal Services a Canada Post, resp. node Address Verification (QAS) proti databázi adres dodávané společností QuickAddress Software. Node Address Verification (World) je v zásadě obdobou posledního zmiňovaného nodu s tím, že verifikaci lze provádět proti adresám ve více jak 200 lokalitách. Zbývající nody v této skupině jsou určeny spíše pro uživatele pocházející ze Severoamerického kontinentu. Umožňují takové funkce jako je doplnění geokódů, statistik o počtech obyvatel, doplnění lokality podle telefonního čísla nebo dodatečných informací k ZIP kódu. Všechny nody této skupiny jsou v menu dfPower Architect uvedeny ještě ve verzi "Distributed", která umožňuje jejich spouštění proti vzdálenému serveru.

Pro skupinu nodů popisaných v této sub-kapitole opět platí pravidlo, že jejich funkcionalitu lze nahradit pomocí dalších nástrojů integrovaných do dfPower Studio a spustitelných z jeho základního rozhraní. Jak již zde bylo zmíněno, aplikace dfProfile umožňuje dále výsledky profilace dat exportovat do aplikace Scheme Builder. Při exportu je uživatel dotázán, jakou metodu pro identifikaci shluku podobných hodnot preferuje, zda Phrase Analysis na základě definice shody (Address, City, e-mail, text, ...) s nastavenou senzitivitou, a nebo Element Analysis s vybranou příslušnou Chop Table. Výsledkem exportu je horizontálně rozdělené okno, v jehož levé části je report četností s identifikovanou skupinou (shlukem) a v pravé části je (zatím prázdné) okno pro výsledná standardizační pravidla. Volbou Build Standard je aplikována technologie Smart Clusetering Data Analysis, jenž se pokusí na základě reportu vytvořit standardizační pravidla. Nutno upozornit, že tato metoda není rozhodně bezchybná, ale na druhou stranu může posloužit jako základ pro následné ruční doladění. Scheme Builder poskytuje i řadu dalších nástrojů pro usnadnění vytváření pravidel, užitečných zejména při výskytu velkého množství jedinečných hodnot. Standard lze například aplikovat pro výběr více hodnot. Lze tak např. označit více variant značky vozidla "Volkswagen" a všem jim jedním krokem přiřadit standard "VW". Do aplikace lze rovněž importovat již existující standardizační schémata vytvořená vně aplikace formou txt souboru. Při vytváření velmi rozsáhlých schémat přijde vhod funkcionalita umožňující označení dosud nepromítnutých hodnot z reportu do standardizačního schématu, a nebo naopak skrytí již promítnutých hodnot. Samozřejmostí je možnost vygenerování SQL kódu pro změnu hodnot příslušného atributu ve zdrojovém systému v souladu s vytvořenými schématy. Zajímavá je možnost použití volby Permutation Drill Through, jenž zobrazí k příslušné hodnotě z reportu profilace dat všechny její výskyty ve zdrojových datech.

Dalším integrovaným nástrojem představujícím alternativu pro work flow v dfPower Architect je nástroj dfPower Match, sloužící jako podpora pro integrační proces a identifikaci duplicitních hodnot (nebo "blízkých" duplicit). Jeho funkcionalita v podstatě odpovídá kombinaci nodů Match Code, Clustering s tím, že podle zvoleného typu výstupu (Match Report, Eliminate Duplicates, Append Match Codes nebo Generate Cluster Data) je tato dvojice doplněna ještě o nody provádějící update zdrojové tabulky, identifikaci přeživšího záznamu (viz. node Surviving Record Identification) a typ výstupního nodu Match Report, jehož výstupem je soubor (nebo SAS data set) obsahující podle nastavení pouze duplicitní nebo jedinečné záznamy. Výsledné nastavení lze samozřejmě exportovat jako job aplikace dfPower Architect.

Podpora pro monitorování datové kvality

Poslední, třetí pilíř, poukazuje na nutnost kontroly datové kvality a zaměřuje se na permanentní monitoring. Před vlastním vytvořením jobu v dfPower Architect s využitím nodu Monitoring je nutné definovat příslušnou úlohu sloužící pro monitoring prostřednictvím Business Rule Manager. Tato integrovaná aplikace umožňuje k vytvoření úlohy použít nadefinovaná pravidla (resp. jejich množiny) a uživatelem vytvořené metriky. Pravidla a metriky jsou definovány pomocí obecných atributů (Fields) na něž jsou skutečné atributy namapovány až v okamžiku, kdy je nadefinovaná úloha exportována buď jako job (obsahující node Monitoring), a nebo jako služba na vzdáleném serveru. Při vytváření pravidel je k dispozici Všechny komponenty úloh jsou uloženy ve zvolené repository. Při vytvoření úlohy lze nadefinovat události reagující na její spuštění. Např. zaslání zprávy prostřednitvím emailu, zápis auditního záznamu do tabulky nebo do textového souboru, spuštění jobu či exe programu, a nebo volání vybrané služby. Typický scénář vytváření jobu prostřednictvím Business Rule Manager se tedy skládá ze sekvence kroků:

  1. výběr repository
  2. vytvoření příslušných obecných atributů (Fields) a jejich množin
  3. vytvoření uživatelských metrik
  4. vytvoření pravidel (a jejich množin) s pomocí obecných atributů a uživatelských metrik
  5. definice úlohy aplikací pravidel
  6. xport úlohy jako job nebo služba
  7. načasování spouštění jobu pomocí Batch Schedules v hlavním rozhraní dfPower Studio

Následující obrázek znázorňuje grafické rozhraní Business Rule Manager s vytvořenou úlohou verifikace_partner, skládající se z pravidla verifikace_psc_cisel pro verifikaci PSČ proti číselníku staženého z webových stránek České pošty. Kromě atributu psc, použitého v pravidlu verifikace_psc_cisel, jsou ještě nadefinovány atributy misto a ulice. Nadefinované atributy jsou sloučeny do množiny atributů adresni_polozky.

Obr. č. 3: Grafické rozhraní Business Rule Manager
Grafické rozhraní Business Rule Manager

Další podpůrná funkcionalita

Kromě funkcionality odpovídající jednotlivým pilířům metodiky čištění dat, poskytuje dfPower Architect ještě řadu podpůrných utilit. Do této skupiny patří například COM Plugin umožňující spouštění kódu napsaného v C++, VB nebo Delphi. Experimentálně je do této skupiny zařazen Java Plugin, který umožňuje využití vlastních tříd napsaných v jazyce Java. Součástí dokumentace v kmenovém adresáři instalace je i popis příslušného Java API.

Dále sem patří užitečné utility pro řazení a joinování zdrojových dat. Node Data Joining poskytuje standardní možnost Inner, Left, Right a Full join. Pokud je třeba sloučit dvě tabulky o stejném počtu záznamů, které nemají žádný primární klíč pomocí prostého merge, je možné použít k tomu uzpůsobený node Non-Key Data Joining. Node Data Union nabízí možnost vertikálního spojování tabulek odpovídajícího SQL syntaxi UNION ALL. Odvozování nových atributů spojováním stávajících umožňuje node Concatenate.

Výpočet odvozených hodnot s využitím všemožných Expression Engine Language (EEL ) lze provést s pomocí node X+Y Extension.Tento node ve své podstatě umožňuje vytvořit libovolný vlastní node. Pomocí jazyka EEL lze nejen definovat nové atributy jako funkce stávajících atributů, ale rovněž vykonávat kód v cyklu. EEL tak představuje velmi silný nástroj. Jako příklad syntaxe jazyka EEL uvádím vytvoření cyklického zvyšování proměnné o 1 dokud nedosáhne výše deseti:

Obr. č. 4: Příklad kódu napsaného v EEL
Příklad kódu napsaného v EEL
Zdroj: Příklad převzatý ze [4]

Další podpůrnou utilitou obsaženou v dfPower Architect je node Field Layout pro výběr a přejmenování atributů vstupujících do dalšího zpracování. Node Sequencer slouží k doplnění primárního numerického klíče s volitelným základem a krokem. Užitečnou utilitou je node Branch umožňující rozdělení toku dat v rámci work flow do více větví. Snad je trochu jen škoda, že tato utilita v sobě neumožňuje nějaký typ filtrování, např. výběr dat na základě zadnané podmínky. Typicky si lze představit využití pro rozdělení do větví pro záznamy verifikované pomocí lookupu (s pomocí nodu SQL Lookup) a záznamy, které je potřeba verifikovat pomocí přibližného joinu. Nicméně tento nedostatek lze obejít kombinací s nody X+Y Expression a Data Validation.

K nodu SQL Lookup bych snad ještě uvedl, že je nutné jej používat velmi obezřetně, typicky pro verifikaci záznamu proti číselníku obsahujícímu řádově desítky či maximálně stovky záznamů. Lookup z tabulky čítající řádově miliony záznamů do tabulky čítající řádově desetitisíce záznamů může být velmi časově náročný. Lookup je možné provést do jakéhokoliv nadefinovaného ODBC zdroje s výjimkou Excelu a textových souborů (zde mi job vždy skončil chybou). Opět škoda, že nelze provést lookup přímo do SAS data set. Ve vlastnostech nodu Lookup lze nastavit, aby do výstupu směřovaly pouze záznamy, pro něž lookup proběhl úspěšně. Rovněž je možné nastavit, aby v případě duplicitních záznamů v referenční tabulce lookup skončil zpracování příslušného záznamu při prvním nalezení shody.

Velmi užitečným je node Embedded Job, který umožňuje v rámci stávajícího jobu spouštět job jiný. Podmínkou je, že „vnořený“ job musí vždy začínat nodem External Data Provider s nadefinovanými vstupními atributy, které mu na základě nastaveného mappingu předává node Embedded Job.

Node SQL Execute umožňuje spuštění sekvence SQL příkazů proti nadefinovanému ODBC zdroji, opět s výjimkou textových souborů. Umožňuje tak zautomatizování některých příkazů, které by datový steward jinak spouštěl ručně pomocí DB Viewer.

Začleněním utility Safe String Encode / Decode sloužící pro zakódavání a rozkódování vybraných atributů Data Flux přímo nereflektuje na aktuální otázky ochrany osobních údajů a bezpečnosti přenášených dat, jak by se podle názvu nodu dalo očekávat, ale spíše řeší problematiku konzistence přenášených dat přes FTP a usnadnění SQL joinů odstraněním diakritiky, mezer a non-ASCII znaků. Node Parametrized SQL Query nabízí možnost svázat aktuální tabulku s ODBC zdroji (škoda, že ne i se SASím data setem) přes vybrané proměnné zdrojové tabulky v SQL dotazu uvedené jako parametr (?). Umožňuje rovněž spouštět uložené procedury pomocí syntaxe {CALL MojeProcedura(?,?,?)}.

Jako výstup z workflow lze použít jak nody odpovídajícím ODBC zdrojům, SAS data set, HTML výstup, textový výstup (opět s možností použití oddělovače nebo pevné šířky), koláčový graf četností, Match Report, a nebo dfPower Merge File Output.V případě výstupů namapovaných jako ODBC zdroj lze volbou příslušného nodu určit, zda se mají záznamy do příslušné tabulky pouze vložit (s nastavitelnou možností přepsání původních) nebo zda má proveden update záznamu v příslušné tabulce identifikovaného pomocí primárního klíče, a nebo zda má být takový záznam smazán.

Zhodnocení práce s DataFlux

Nástroj DataFlux, přes některé mé drobné připomínky, hodnotím jako velmi silnou zbraň v boji proti nekvalitním datům. Nejedná se pouze o doménově orientovaný nástroj řešící datovou kvalitu jen v rámci konkrétní předmětné oblasti (např. pouze problematika čištění adres). Díky snadné customizovatelnosti QKB je možné jej nasadit prakticky v libovolném prostředí. Ten, jemuž by pro řešení konkrétního projektu nestačila stávající funkcionalita, si ji navíc může rozšířit prostřednictvím EEL (node X+Y Extension), případně pomocí vlastního kódu napsaného v Javě (spustitelného pomocí nodu Java Plugin) nebo v jazyce C++, VB nebo Delphi (spustitelného pomocí nodu COM Plugin).

Stojí za zmínku, že nástroj DataFlux je vysoce hodnocen společností Gartner a v jejich „Magickém kvadrantu“ za rok 2007 je umístěn v pravém horním kvadrantu jako lídr.

Jako poněkud tajemný se jeví vztah DataFlux ke zbývajícím nástrojům v portfoliu SAS. Oproti předchozí verzi sice ta aktuální umožňuje pracovat do značné míry přímo se SAS data sets (nikoliv jen formou nadefinovaného ODBC zdroje) a současně je s verzí SAS 9.1 formou plugg-in integrován i do ETL nástroje SAS Data Integration Studio, takže snaha o lepší integraci nástroje do architektury SAS BI jednoznačně existuje, nicméně si DataFlux stále udržuje statut řešení nezávislého na datové platformě a lze jej tedy nasadit i tam, kde zákazník má vybudováno BI na jiné platformě než je SAS.

Reference

Komentáře ke článku

Stránka byla naposledy aktualizována dne 4.5.2015
Powered by HOLOPAGE
©2011 - 2015 D. Pejčoch