Adattárház tiszta alapokon Oracle Day, Budapest, 2011. november 8. WIT-SYS Consulting Zrt. Lévai Gábor gabor.levai@wit-sys.hu
Tematika Az adattárházról általánosan Az adattárház definíciója Fő jellemzők Általános felépítés Ellátandó funkciók Lehetséges eszközök Egy lehetséges megvalósítás Megoldandó feladat Felépítés Szükséges adatok Meta-adatbázis Az alkalmazás részei 2
Mi is az az adattárház? Az adattárház témaorientált, integrált, tartós és időfüggő adatgyűjtemény a vezetői döntéstámogatás szolgálatában. Bill Inmon Vállalati szintű tárháza az információ kinyerésre és döntéstámogatásra szolgáló téma orientált, időfüggő, historikus adatoknak. Az adattárház elemi és összesített adatokat is tartalmaz. Oracle 3
Melyek az adattárház fő jellemzői? Az adattárház témaorientált, integrált, tartós és időfüggő adatgyűjtemény a vezetői döntéstámogatás szolgálatában. Témaorientált Üzleti folyamatoknak vagy elemzési területeknek Bill megfelelő Inmon nézőpont, adatok az elemzés kulcsfontosságú fogalmai köré csoportosítva. Integrált Több adatforrásból származó, egy helyen központosuló adatgyűjtés, amelyben megvalósul az adatok neveinek, mértékegységeinek konszolidációja is. Tartós Ami egyszer bekerült az adatbázisba az nem változik meg. Azaz bármikor is tekintünk rá egy adott időpont adataira, mindig ugyanazt kell látnunk. Időfüggő Az adattárházban az időbeli változások vannak fókuszban. 4
Hogyan épül fel egy adattárház? 5
Milyen alapfunkciókat kell ellátni? Forrásrendszeri extraktum készítés Adattisztítás Konszolidáció Historikus adattárház építés Adatpiacok építése Rendszergazdák által üzemeltethető működés Adminisztrált és követhető folyamatok Naplózás 6
Milyen eszközök állnak rendelkezésre? Oracle Warehouse Builder ETL támogatás, tervadattár alapú, folyamatvezérlés is van, többfelhasználós, több szerver kezelése Oracle Data Integrator ETL támogatás, tervadattár alapú, folyamatvezérlés is van, többfelhasználós, több szerver kezelése, széles körű integráció, korszerű architektúra Más gyártók termékei Saját fejlesztésű adattárház motor Minden tőlünk és a rendelkezésre álló erőforrásoktól függ 7
Mi volt a megoldandó feladat? Egy nagy Oracle alapú forrásrendszer Heterogén egyéb forrásrendszerek Szükséges egy konszolidált központi adattár Üzleti területeknek adatpiacok Külső rendszerek felé interfészek Csak alap Oracle eszközökkel dolgozhatunk Gyors fejlesztés szükséges 8
STAGE PREP DW DM Milyen felépítésben gondolkodtunk? Adatforrások Adattárház Adat felhasználók MD Transzformációs tervadattár Extract Adatpiacok Interfészek 9
Milyen funkciókat implementáltunk? Forrásrendszeri meta-adat vezérelt extraktum készítés kódtáblákra és tényadatokra Meta-adat vezérelt transzformációk Adattisztítás Konszolidáció Historikus adattárház építés Adatpiacok építése Rendszergazdák által üzemeltethető működés Adminisztrált és követhető folyamatok Naplózás (Folyamat vezérlés már létezett) 10
Milyen legyen az alkalmazás? Leválogató oldal (nagy forrás adatbázisban) Folyamatvezérlőből hívható Extraktumonként hívható Meta-adat vezérelt Egységes leválogató az összes kódtáblákra Egységes leválogató a tényadatokra Normál leválogatás típusokat kezeli (FS, PS, SC, TR) Megadhatók szűrések és join-ok Naplóz (generált SQL-ek, futások stb.) 11
Milyen legyen az alkalmazás? Adattárház oldal Folyamatvezérlőből hívható Töltendő táblánként hívható Meta-adat vezérelt Egységes töltő az összes táblára (azonos audit oszlopok!) Normál forrás típusokat kezeli (FS, PS, SC, TR) Normál töltési típusokat kezeli (I, TI, IU, U, MR) Megadhatók szűrések és transzformációk Tölti az audit oszlopokat Ellenőrzi a referenciákat Naplóz (SQL-ek, rekordszámok, referencia hibák stb.) 12
Milyen feltételek vannak? A transzformációk SQL utasítással leírhatók A töltött tábláknak egységes audit oszlopai vannak ID, LOAD_ID, UPDATE_ID, SOURCE_KEY, EFFECTIVE_START_DATE, EFFECTIVE_END_DATE, SOURCE_SYSTEM, SOURCE_OBJECT Egységes kódszótár, hierarchiák Forrásrendszer, forrás objektum szótár 13
Milyen adatmodellre van szükségünk? Leválogató oldal (nagy forrás adatbázisban) Leválogatandó kódok leírója Extraktum táblák leírója Forrás táblák leírója Naplók Naplók Extraktum oszlop forrás oszlop összerendelések 14
Milyen adatmodellre van szükségünk? Leválogatandó kódok leírója Forrás objektum konstans (adattárházi azonosító) Kódcsoport konstans (adattárházi) Forrás objektum név (pl. táblanév vagy forrás kódtábla kódcsoport) Opus objektum típusa (REF_DATA, TABLE) Objektum sorrend a kódcsoporton belül (több forrású kódcsoportnál) Kód megnevezés mező neve a forrásban Kód mező1 neve a forrásban Kód mező2 neve a forrásban Kód mező3 neve a forrásban Egyedi lekérdezés leírása (ha nem táblából vagy kódtáblából jön) Szűrőfeltétel leírása Csoportosítás leírása (group by) 15
Milyen adatmodellre van szükségünk? Extraktum táblák leírója Azonosító (ID) Tranzit tábla neve (leválogatás eredmény táblája) Folyamat neve (leválogató folyamat neve) Extraktum táblák leírója Forrás táblák leírója Extraktum oszlop forrás oszlop összerendelések 16
Milyen adatmodellre van szükségünk? Forrás táblák leírója Azonosító (ID) Forrás tábla neve Extraktum tábla azonosítója Kapcsolandó tábla azonosítója Szűkítő feltétel Táblák join-olási sorrendje Kapcsolási típus i=inner, o=outer Join oszlop 1, 2, 3 a kapcsolandó táblában Join oszlop 1, 2, 3 ebben a táblában Hint-ek Extraktum táblák leírója Extraktum oszlop forrás oszlop összerendelések Forrás táblák leírója 17
Milyen adatmodellre van szükségünk? Extraktum oszlop forrás oszlop összerendelések Azonosító (ID) Extraktum tábla azonosítója Forrás tábla azonosítója Extraktum tábla oszlopának neve Forrás tábla oszlopának neve Mit naplózzunk? Leválogatás kezdete, vége Időszak kezdete, vége Leválogatás típusa (teljes, változás) Extraktum tábla neve Futtatott SQL Rekordszámok, végrehajtási terv, stb. Extraktum táblák leírója Extraktum oszlop forrás oszlop összerendelések Forrás táblák leírója 18
Milyen adatmodellre van szükségünk? Adattárház oldal Map-ek leírója Naplók Naplók Map oszlopai 19
Milyen adatmodellre van szükségünk? Map-ek leírója Adattárházi egyedi azonosító (ID) Map konstans neve Forrás séma, forrás tábla Cél séma, cél tábla Forrás tábla szűrés Map típusa (I, TI, IA, IU, U, MR) Forrás adat típusa (FS, SC, PS, TR) ID szekvencia a céltáblában Unique_id szekvencia a céltáblában Cél tábla filter a törölt rekordok meghatározásához (PS) Map-ek leírója Map oszlopai 20
Milyen adatmodellre van szükségünk? Map oszlopai Adattárházi egyedi azonosító (ID) Map egyedi azonosító (REF) Cél oszlop neve Forrás (oszlopnév, függvény, konstans, 'LOOKUP') Lookup séma, lookup tábla ha a forrás 'LOOKUP') Lookup táblából a visszaadott oszlop neve Lookup táblában a forrás objektum konstans neve Forrás tábla kulcs oszlop a lookup-hoz 1, 2, 3 Cél tábla kulcs oszlop a lookup-hoz 1, 2, 3 Lookup érték lehet-e üres (hibakezelés miatt fontos) Map-ek leírója Map oszlopai 21
Milyen adatmodellre van szükségünk? Mit naplózzunk? Map azonosítója Betöltés azonosítója Futás dátuma Betöltött időszak kezdete, vége Művelet típusa Futtatott SQL Cél tábla Rekordszámok Referenciahibák és kötelező, de üres hibák típusa, száma oszloponként, ill. kódonként Végrehajtási terv, stb. Jó, ha a forrásrendszeri naplókat is elhozzuk és betöltjük magunkhoz. 22
STAGE PREP DW DM Hogyan működik? Folyamat vezérlő Folyamat vezérlő Adattárház Leválogató Adattárház motor MD Transzformációs tervadattár Extract Adatpiacok Interfészek 23
Befejezésül: Mi ez? Ez bizony Jetiszőr 24
Köszönjük a figyelmet! WIT-SYS Consulting Zrt.