Odtwarzanie przerwanego procesu ekstrakcji danych

Transkrypt

Odtwarzanie przerwanego procesu ekstrakcji danych
Laboratorium Hurtowni Danych
Marcin Gorawski
Paweł Marks
Gliwice 2004
Spis tre ci
1. Wst p .............................................................................. 4
1.1. Przebieg wiczenia ............................................................................................. 4
2. Rola procesu ekstrakcji danych do hurtowni danych. 5
2.1. Hurtownie danych .............................................................................................. 5
2.2. Proces ekstrakcji danych..................................................................................... 5
2.2.1. Cel ekstrakcji danych.............................................................................. 5
2.2.2. Odtwarzanie przerwanego procesu ekstrakcji .......................................... 7
2.3. Przegl d metod odtwarzania ............................................................................... 8
2.3.1. Metoda podziału danych wej ciowych (batching) ................................... 8
2.3.2. Metoda kopii migawkowych i punktów powrotu..................................... 9
2.3.3. Metoda podziału procesu ekstrakcji (staging)........................................ 10
2.3.4. Powtarzanie procesu ekstrakcji (Redo) .................................................. 10
2.3.5. Metoda oparta o algorytm Design-Resume............................................ 11
2.3.6. Klasyfikacja metod odtwarzania ........................................................... 14
3. rodowisko ekstrakcji danych ETL-DR .................... 15
3.1. Opis grafu ekstrakcji......................................................................................... 16
3.2. Hierarchia klas i własno ci ............................................................................... 16
3.3. Własno ci obiektowe........................................................................................ 18
3.3.1. Własno
input ..................................................................................... 18
3.3.2. Własno
dr.......................................................................................... 18
3.3.3. Własno
output ................................................................................... 18
3.3.4. Własno
env ........................................................................................ 19
3.4. Własno ci klas w złów..................................................................................... 19
3.4.1. Klasy bazowe........................................................................................ 19
3.4.1.1. Klasa AbstractNode .................................................................. 19
3.4.1.2. Klasa Extractor......................................................................... 20
3.4.1.3. Klasa Transformation ............................................................... 20
3.4.1.4. Klasa Inserter ........................................................................... 20
3.4.2. Klasy ekstraktorów ............................................................................... 21
3.4.2.1. Klasa FileExtractor .................................................................. 21
Spis tre ci
3
3.4.2.2. Klasa DBExtractor ................................................................... 21
3.4.3. Klasy insertorów................................................................................... 22
3.4.3.1. Klasa FileInserter ..................................................................... 22
3.4.3.2. Klasa DBInserter...................................................................... 22
3.4.3.3. Klasa OracleDBInserter ........................................................... 23
3.4.4. Klasy transformacji............................................................................... 24
3.4.4.1. Klasa AggregationTransformation............................................ 24
3.4.4.2. Klasa GroupTransformation ..................................................... 24
3.4.4.3. Klasa GeneratorTransformation ............................................... 25
3.4.4.4. Klasa JoinTransformation ........................................................ 25
3.4.4.5. Klasa MergeTransformation ..................................................... 26
3.4.4.6. Klasa UnionTransformation ..................................................... 26
3.4.4.7. Klasa ProjectionTransformation............................................... 27
3.4.4.8. Klasa FilterTransformation ...................................................... 27
3.4.4.9. Klasa FunctionTransformation ................................................. 28
3.4.4.10. Klasa specjalna VMQueue ...................................................... 29
3.5. Atrybuty wyj ciowe w złów transformuj cych................................................. 29
3.6. Uruchomienie procesu ETL.............................................................................. 30
3.6.1. Plik stanu aplikacji................................................................................ 32
Literatura ......................................................................... 33
1. Wst p
Proces ekstrakcji danych do hurtowni danych trwa zwykle do
długo, mog to by
godziny a nawet dni. W czasie ekstrakcji hurtownia danych jest wył czona z normalnego
u ytkowania, d y si
wi c do zminimalizowania czasu potrzebnego na wypełnienie
hurtowni danymi.
Wyst pienie
awarii
przerywaj cej
ekstrakcj
pozostawia
hurtowni
z
niekompletnymi danymi, które nie nadaj si do wykorzystania w systemach bazuj cych
na hurtowni danych (DSS, EIS). W takiej sytuacji mo na albo uruchomi
całe
przetwarzanie od pocz tku, co nie jest rozwi zaniem zbyt efektywnym, albo zastosowa
odtwarzanie przerwanego procesu ekstrakcji i uzupełni brakuj ce dane.
1.1. Przebieg wiczenia
-
zapoznanie z ró nymi algorytmami odtwarzania przerwanego procesu
ekstrakcji,
-
szczegółowe omówienie algorytmu odtwarzania Design-Resume,
-
zapoznanie si
ze
rodowiskiem ETL-DR i oferowanymi przez nie
mo liwo ciami,
-
zrealizowanie przykładowego procesu ekstrakcji, poł czone z symulowaniem
awarii i odtwarzaniem tak przerwanego procesu,
-
zrealizowanie procesu ekstrakcji zadanego przez prowadz cego (przygotowanie
odpowiedniego skryptu konfiguracyjnego rodowiska),
-
wykonanie pomiarów efektywno ci odtwarzania przygotowanego procesu
ekstrakcji wg wskazówek prowadz cego.
2. Rola procesu ekstrakcji danych do hurtowni danych
2.1. Hurtownie danych
Hurtownia danych to analityczna baza danych wykorzystywana jako podstawa
systemu wspomagania podejmowania decyzji. Hurtownie tworzy si dla du ych ilo ci
danych, które mog
pochodzi
b d
to z systemów transakcyjnych, b d
ze
ródeł
archiwalnych. W oparciu o hurtownie, które zapewniaj dost p do zapisanych w nich
danych, tworzone s systemy analityczne.
Systemy analityczne mo na podzieli
na dwie kategorie. Pierwsza z nich to
Systemy Wspomagania Podejmowania Decyzji (ang. Decision Support Systems, DSS).
Operuj one na szczegółowych informacjach biznesowych i s narz dziem przeznaczonym
dla menad erów niskiego i redniego szczebla. Druga grupa to Systemy Informowania
Przedsi biorstwa (ang. Executive Information Systems, EIS). Narz dzia tej grupy
pozwalaj na analiz danych i ich wielowymiarow prezentacj na wy szym poziomie
konsolidacji, co czyni je najbardziej przydatnymi dla menad erów wy szego szczebla.
Współczesne systemy hurtowni danych dostarczaj narz dzi z obu kategorii.
2.2. Proces ekstrakcji danych
2.2.1. Cel ekstrakcji danych
Aby zaprojektowana hurtownia danych mogła realizowa postawione przed ni
zadania konieczne jest wypełnienie jej odpowiednimi danymi. Dane te mog pochodzi z
wielu ró nych i niezale nych ródeł. Mog to by :
-
dane transakcyjne,
-
dane archiwalne,
-
dane zewn trzne.
Nie wszystkie dane pochodz ce ze ródeł wymagaj przeniesienia do hurtowni.
Potrzebne s tylko te informacje, które nios wiedz na temat modelowanych zjawisk
Rola procesu ekstrakcji danych do hurtowni danych
6
biznesowych. Szacuje si , e z systemów transakcyjnych do hurtowni przenoszone jest
rednio około 20% danych [5]. Pozostałe 80% to informacje nieistotne dla systemów
analitycznych, wykorzystywane jedynie podczas działania systemów transakcyjnych.
Poniewa
ródeł jest wiele, a dane maj zosta przeniesione do jednej hurtowni
danych, pojawia si problem integracji danych pochodz cych z ró nych ródeł. Dane te z
reguły nie s ze sob
zgodne, np.: wyst puj ró nice w formacie zapisu daty, nios
informacj o transakcjach zapisane w ró nych walutach. Konieczne jest wi c dokonanie
odpowiednich konwersji maj cych na celu uzyskanie spójnych danych i jednolitego ich
zapisu. Nie wszystkie dane zostan poprawnie przetworzone. W ka dej bazie danych mog
wyst pi dane bł dne, które nie b d mogły zosta przetransformowane. Takie bł dy mog
by spowodowane przez tzw. czynnik ludzki, np.: bł dne wprowadzenie danych przez
człowieka. Konieczne jest zatem odrzucenie danych bł dnych – problem czyszczenia
danych. Po ujednoliceniu i oczyszczeniu danych, cz sto dokonywane s
dodatkowe
przekształcenia. Na tym etapie mog zosta ustalone warto ci domy lne atrybutów, mog
zosta przygotowane wymagane agregaty, które pozwol zwi kszy wydajno
hurtowni
danych. W przypadku hurtowni typu ROLAP etap ten nie jest obligatoryjny, jest on
natomiast wymagany w systemach typu MOLAP, które przewa nie zawieraj w kostce
danych informacje zagregowane wg wybranych wymiarów. Po dokonaniu odpowiednich
przekształce dane s gotowe do załadowania do hurtowni.
Współczesne metody ekstrakcji nie dokonuj bezpo redniego przenoszenia danych
ze ródeł do bazy hurtowni danych, lecz korzystaj z tzw. obszaru po redniego [6]. W
obszarze tym dokonywane jest spajanie, czyszczenie i konwertowanie danych. Dopiero w
kolejnym kroku nast puje ładowanie danych z obszaru po redniego.
D ane po rednie:
- P liki tekstow e
D ane transakcyjne
D ane archiw alne
D ane zew n trzne
- B azy danych
A plikacje:
- E kstrakcja w ła ciw a
- In tegracja
- C zyszczenie
- K onw ersja
- Ł adow anie do
h urtow ni
H urtow nia danych
O bszar po redni
Rys. 2.1 Zarys procesu ekstrakcji danych
Rola procesu ekstrakcji danych do hurtowni danych
7
Stosowanie obszaru po redniego nie jest obowi zkowe, ale ułatwia realizacj
bardziej zło onych procesów, ma du y wpływ na mo liwo
zrównoleglenia całego
przetwarzania. Dane mog trafia do obszaru po redniego z wielu ró nych systemów
komputerowych, sam obszar równie mo e by rozproszony na ró nych komputerach. W
obszarze po rednim dane mog by przechowywane w dowolny sposób, ułatwiaj cy i
usprawniaj cy wykonywanie zaplanowanych przekształce
ekstrakcji kluczowym czynnikiem jest czas, liczy si
integralno ci lecz szybko
danych. Podczas procesu
wi c nie zachowanie wi zów
dost pu do danych. St d najefektywniejszym cz sto okazuje
si przechowywanie danych w zwykłych zbiorach sekwencyjnych.
Proces ekstrakcji mo e by uruchamiany codziennie, raz na tydzie , raz na miesi c,
zale y to od potrzeb i charakteru systemu analitycznego. Wa nym jest fakt, e w czasie
ładowania danych do hurtowni, staje si ona niedost pna dla u ytkowników. Wynika st d
ograniczenie czasu realizacji procesu ekstrakcji do tych odcinków czasu, kiedy hurtownia
danych nie jest u ywana. Mo e to mie miejsce w nocy lub w czasie weekendu. Wa ne
jest aby rozpocz ty proces uko czy w zało onym czasie. Niestety nie zawsze si to udaje,
czego przyczyn mo e by :
-
du a liczba przetwarzanych informacji, co wymaga dłu szego czasu ni
pierwotnie zało ono,
-
wyst pienie awarii.
W pierwszym przypadku zmian wymaga plan, wg którego uruchamiana jest
ekstrakcja. Wyst pienie awarii z reguły wi e si
z konieczno ci
zastosowania
odtwarzania przerwanego procesu ekstrakcji.
2.2.2. Odtwarzanie przerwanego procesu ekstrakcji
Wyst pienie awarii podczas ładowania danych do bazy hurtowni danych –
niezale nie od przyczyny jej wyst pienia – objawia si zawsze tak samo: w miejscu
docelowym ekstrakcji znajduj tylko prefiks zbioru danych, który miał by załadowany.
Poniewa
hurtownie danych operuj
na bazach znacznych rozmiarów, w czasie
pojedynczego ładowania do hurtowni trafia ogromna ilo
informacji, np.: 16GB danych
dziennie [1]. Załadowanie zbioru danych o rozmiarze od kilkudziesi ciu do nawet 100GB
mo e trwa nawet 24 godziny. W przypadku wyst pienia awarii podczas ładowania cz sto
okazuje si ,
e pozostały czas w wyznaczonym na ładowanie oknie czasowym jest
niewystarczaj cy, aby uruchomi cały proces od pocz tku i uko czy go. Administrator
hurtowni ma wtedy dwa wyj cia:
Rola procesu ekstrakcji danych do hurtowni danych
-
pozostawi
baz
8
hurtowni danych nie uaktualnion
lub niekompletn ,
zakładaj c, e podczas nast pnego ładowania konieczne b dzie załadowanie
znacznie wi kszej ilo ci danych,
-
zastosowa jeden z mo liwych algorytmów odtwarzania przerwanego procesu
ekstrakcji.
Awarie przerywaj ce proces ekstrakcji nie s czym rzadkim. Raport opublikowany
przez Sagent Technologies zawiera informacj , e rednio co trzydziesty proces ładowania
przerywany jest wyst pieniem bł du. Mo na wyró ni dwa typy bł dów powoduj cych
przerwanie procesu ekstrakcji: bł dy logiczne i bł dy systemowe. Bł dy logiczne to bł dy
zawarte w tre ci samych danych. Je li proces ekstrakcji został przerwany wyst pieniem
takiego bł du, to po jego wznowieniu nast pi przerwanie procesu w tym samym miejscu (o
ile dane ródłowe pozostan bez zmian). Do bł dów systemowych mo na zaliczy awari
dysku, brak zasilania, bł d w RDBMS. Po wyst pieniu bł du tego typu jest mało
prawdopodobne, e bł d ten wyst pi ponownie i po raz kolejny przerwie proces ładowania
danych. Przedstawione w kolejnym punkcie metody odtwarzania przerwanego procesu
ekstrakcji pozwalaj na prawidłowe doko czenie przerwanego procesu po wyst pieniu
bł dów systemowych.
2.3. Przegl d metod odtwarzania
2.3.1. Metoda podziału danych wej ciowych (batching)
Batching to metoda polegaj ca na podziale danych wej ciowych na niezale ne
bloki (ang. batch), których przetwarzanie odbywa si sekwencyjnie blok po bloku. W
przypadku awarii przetwarzanie wznawiane jest od bloku danych, podczas przetwarzania
którego miała miejsce awaria. Bloki, których przetwarzanie zostało ju zako czone, nie
wymagaj ponownego przetwarzania.
Powa n
wad
tej metody jest to,
e nawet znaj c semantyk
stosowanych
transformacji, bardzo trudno jest dokona podziału danych na bloki, które mog by
przetwarzane niezale nie. Ogranicza to mo liwo
prostych procesów ekstrakcji. Charakterystyczn
wykresie przedstawiaj cym zale no
stosowania tej metody do bardzo
cech
tej metody s
„schodki” na
czasu odtwarzania w funkcji stopnia uko czenia
ekstrakcji. Zalet tej metody jest to, e nie wymaga adnych zmian w kodzie transformacji,
które wspomagałyby odtwarzanie [1,2].
50
90
45
80
czas przetwarzania [s]
czas odtwarzania [s]
Rola procesu ekstrakcji danych do hurtowni danych
40
35
30
25
20
15
10
5
0
9
70
60
50
40
30
20
10
0
0
20
40
60
80
100
1
3
% uko czenia ekstrakcji
5
7
9
11
liczba bloków
Rys. 2.2 Wpływ momentu awarii na czas odtwarzania metod podziału danych wej ciowych (a) oraz
wpływ liczby bloków na całkowity czas przetwarzania bezawaryjnego (b) [1]
2.3.2. Metoda kopii migawkowych i punktów powrotu
Ide tej metody jest wykonywanie w czasie normalnego przetwarzania okresowych
kopii migawkowych (ang. snapshots), punktów powrotu (ang. savepoints) [1] lub punktów
kontrolnych (ang. savepoints, checkpoints) [8]. W przypadku awarii transformacje
wznawiaj przetwarzanie od ostatniego punktu powrotu lub punktu kontrolnego (oba
terminy maj to samo znaczenie), w którym został zapami tany stan aplikacji.
350
50
czas przetwarzania [s]
czas odtwarzania [s]
45
40
35
30
25
20
15
10
5
0
mało selektywne przetwarzanie
300
250
200
150
100
silnie selektywne przetwarzanie
50
0
0
20
40
60
80
100
0
% uko czenia ekstrakcji
1
2
3
liczba punktów powrotu
Rys. 2.3 Wpływ momentu awarii na czas odtwarzania metod kopii migawkowych (a) oraz wpływ
liczby punktów powrotu na całkowity czas przetwarzania bezawaryjnego (b) [1]
Implementacja odtwarzania opartego o kopie migawkowe, punkty powrotu lub
punkty kontrolne wymaga dobrej znajomo ci semantyki transformacji zwłaszcza w
przypadku realizacji tej metody na poziomie u ytkownika przez programistów tworz cych
aplikacj .
W
przypadku
przedstawionym
w
[1]
gdzie
implementacja
została
przeprowadzona wła nie na tym poziomie wykazano, e tworzenie punktów powrotu,
wnosi du e dodatkowe obci enie (ponad 200%) na prawidłowo przebiegaj ce
przetwarzanie, co jest spowodowane zapisywaniem znacznych ilo ci informacji na dysk.
Rola procesu ekstrakcji danych do hurtowni danych
10
Ponadto dla uzyskania maksymalnej wydajno ci konieczne jest dokonanie wyboru
optymalnej liczby tworzonych punktów powrotu. Ich ilo
przetwarzania bezawaryjnego oraz wydajno
ma wpływ na czas
odtwarzania [1].
2.3.3. Metoda podziału procesu ekstrakcji (staging)
Metoda ta polega na podziale całego procesu ekstrakcji na powi zane logicznie ze
sob
grupy podprocesów. Dane wyj ciowe jednej grupy s
zapisywane na dysku, a
jednocze nie s przekazywane na wej cie nast pnej grupy. W przypadku awarii konieczne
jest uruchomienie tylko tych grup podprocesów, które jeszcze nie zako czyły
przetwarzania. Podczas odtwarzania wykorzystywane s dane zapisane przez poprzedni
grup podprocesów, która zd yła zako czy działanie przed upadkiem. Metoda ta daje
dobre wyniki odtwarzania jednak wnosi du e obci enie zwi zane z zapisywaniem danych
przej ciowych. Powoduje te – co jest szczególnie niekorzystne – utrat współbie no ci
przetwarzania [1,2].
2.3.4. Powtarzanie procesu ekstrakcji (Redo)
W razie wyst pienia awarii proces ekstrakcji jest wznawiany od samego pocz tku,
natomiast proces ładuj cy dane do hurtowni danych filtruje przetworzone ju krotki tak, e
do hurtowni nie trafiaj dane ju tam zapisane przed upadkiem. Metoda ta cechuje si
prostot i nie nakłada adnego obci enia na normalnie przebiegaj cy proces ekstrakcji.
Nie wykorzystuje ona jednak krotek ju
zapisanych w hurtowni i wszystkie dane
wej ciowe s przetwarzane jeszcze raz. Technika ta jest cz sto stosowana, mi dzy innymi
w produktach firmy Informatica.
50
czas odtwarzania [s]
45
40
35
30
25
20
15
10
5
0
0
20
40
60
80
100
% uko czenia ekstrakcji
Rys. 2.4 Wypływ momentu awarii na czas odtwarzania Redo
Rola procesu ekstrakcji danych do hurtowni danych
11
2.3.5. Metoda oparta o algorytm Design-Resume
Metoda odtwarzania oparta o algorytm Design-Resume [1] jest najbardziej
skomplikowan spo ród przedstawionych metod, jest modyfikacj odtwarzania Redo i
składa si z dwóch procedur: Design oraz Resume. W odró nieniu od techniki Redo, w tej
metodzie dane s filtrowane ju w czasie przetwarzania tak aby nie przetwarza ponownie
krotek, które i tak zostałyby odrzucone przez w zeł ładuj cy. Filtrowanie danych mo e si
odbywa na dwa sposoby. W struktur grafu ekstrakcji wł czane s dodatkowe w zły
filtruj ce, które usuwaj ze strumienia danych te krotki, które nie spełniaj zadanych
kryteriów filtrowania. Drugi sposób – znacznie bardziej wydajny – to filtrowanie
wbudowane w w zły pobieraj ce dane, tzw. ekstraktory. Filtrowanie wbudowane w w zeł
ekstraktora jest wydajniejsze, gdy krotki, które nie spełniaj odpowiednich kryteriów,
mog zosta
pomini te nawet bez pobierania ich z miejsca ródłowego, co wpływa
korzystnie na czas realizacji odtwarzania. Dobór filtrów i metod filtrowania jest zadaniem
procedury Design. Dost pne s dwa typy filtrów: filtry typu prefix oraz filtry typu subset.
Filtr typu prefix odfiltrowuje ze strumienia danych wszystkie krotki do momentu, gdy nie
natrafi na krotk , która b dzie odpowiadała wybranym atrybutom ostatniej załadowanej
przed upadkiem krotki. Wyznaczenie atrybutów odbywa si równie w procedurze Design
na podstawie własno ci w złów grafu. Po zidentyfikowaniu krotki odpowiadaj cej
ostatniej załadowanej krotce, filtr staje si nieaktywny, tzn. pozostałe dane przekazywane
na jego wej cie, przepisuje bez zmian na swoje wyj cie. Filtr typu subset działa w oparciu
o zbiór atrybutów identyfikuj cych krotki, które ju
docelowego. Odfiltrowane zostan
zostały załadowane do miejsca
te krotki, które b d
odpowiadały atrybutom
przekazanym jako parametr filtru. Poniewa parametry filtrów ustalane s na podstawie
danych ju załadowanych do hurtowni, to w przypadku filtrów subset rozmiar zbioru
okre laj cego parametry filtrowania mo e by bardzo du y.
Rys. 2.5 W zeł ródłowy X oraz w zeł docelowy Y bez filtra (a) oraz z przypisanym filtrem F (b)
Rola procesu ekstrakcji danych do hurtowni danych
12
Rys. 2.6 W zeł ekstraktora z wbudowanym filtrem F
Wej ciom w złów grafu przypisane s
nast puj ce własno ci wykorzystywane
przez procedur Design [7]:
-
map-to-one – opisuje stan, w którym ka da krotka sekwencji wej ciowej w zła
przyczynia si
do powstania co najwy ej jednak krotki w sekwencji
wyj ciowej. Własno
t spełniaj operacje: selekcja, projekcja, unia, agregacja
oraz niektóre zł czenia,
-
suffix-safe – wskazuje, czy prefiks sekwencji wej ciowej mo e by bezpiecznie
odfiltrowany. Własno
ta jest spełniona, gdy dowolny prefiks sekwencji
wyj ciowej mo e by
utworzony z odpowiedniego prefiksu sekwencji
wej ciowej. Inaczej, kolejno
taka sama jak kolejno
spełniaj ce t własno
produkowania krotek sekwencji wyj ciowej jest
krotek w sekwencji wej ciowej. Transformacje
to: selekcja, projekcja oraz agregacja wykonana na
posortowanej sekwencji wej ciowej,
-
set-to-seq – jest spełniona, gdy kolejno
ma wpływu na kolejno
krotek w sekwencji wej ciowej nie
krotek w sekwencji wynikowej. Własno
t spełniaj
transformacje sortuj ce krotki sekwencji wej ciowej,
-
no-hidden-contributors – jest spełniona, gdy ka da krotka z sekwencji
wyj ciowej jest utworzona z cało ci lub cz ci krotki (lub krotek dla przypadku
wielu wej ) sekwencji wej ciowej. Własno
spełniaj operacje: projekcja,
agregacja, unia oraz niektóre typów zł cze .
Oprócz własno ci przypisanych wej ciom w złów grafu, istniej równie własno ci
opisuj ce same w zły [7]:
-
in-det-out – jest prawdziwa, gdy transformacja generuje zawsze t
sam
sekwencj wyj ciow przy podaniu na wej cie tej samej sekwencji wyj ciowej
(sekwencje s takie same, gdy kolejno
krotek równie jest taka sama w obu
sekwencjach). Spełniaj ja wszystkie transformacje deterministyczne,
Rola procesu ekstrakcji danych do hurtowni danych
-
13
no-spurious-output – jest prawdziwa, gdy na ka d
krotk
z sekwencji
wyj ciowej składa si przynajmniej jednak krotka (lub krotki). Jedynie unia nie
spełnia tej własno ci,
-
same-set – jest spełniona, gdy transformacja daje ten sam zbiór krotek
wyj ciowych przy podaniu na wej cie (lub wej cia) tego samego zbioru
(zbiorów) krotek wej ciowych. Spełnia j wi kszo
transformacji.
W oparciu o przedstawione własno ci procedura Design dokonuje przypisania
odpowiednich filtrów lub procedur reekstrakcji (w przypadku filtrowania wbudowanego w
w zeł ekstraktora).
Drugim etapem odtwarzania jest uruchomienie procedury Resume. Jej zadaniem
jest – w oparciu o przypisania dokonane przez procedur
Design – zainicjowanie
dodatkowych w złów filtruj cych oraz procedur reekstrakcji. Filtrom typu prefix
przekazywane s atrybuty ostatniej zapisanej do hurtowni krotki, natomiast filtrom typu
subset przekazywany jest zbiór wybranych atrybutów krotek załadowanych do hurtowni.
Po zainicjowaniu filtrów rozpoczyna si normalne przetwarzanie.
Najwa niejsz cech tej metody jest fakt, e nie wnosi ona adnego dodatkowego
obci enia na prawidłowo przebiegaj cy proces ekstrakcji. Swe działanie opiera na
własno ciach
przypisanych
w złom
transformuj cym
i
ich
wej ciom
projektowania grafu ekstrakcji. Zbiór krotek, które nale y odfiltrowa
podczas
w czasie
przetwarzania, ustalany jest na podstawie krotek, które zostały załadowane do hurtowni
przed upadkiem.
50
czas odtwarzania [s]
45
40
35
30
25
20
15
10
5
0
0
20
40
60
80
100
% uko czenia ekstrakcji
Rys. 2.7 Wpływ momentu awarii na czas odtwarzania metod opart o algorytm Design-Resume
Wad tej metody jest to, e w szczególnych przypadkach odtwarzanie mo e trwa
dłu ej ni ponowne uruchomienie procesu ekstrakcji od pocz tku. Przyczyn takiego stanu
rzeczy jest słabo
filtrów typu subset wykazana w testach przedstawionych w [2]. W
Rola procesu ekstrakcji danych do hurtowni danych
14
zale no ci od zaistniałej sytuacji nale y wi c bada , czy odtwarzanie oparte o algorytm
Design-Resume pozwoli skróci czas odtwarzania.
2.3.6. Klasyfikacja metod odtwarzania
Przedstawione metody odtwarzania cechuj
si
ró n
zło ono ci
procesu
ekstrakcji oraz obci eniem wnoszonym na prawidłowo przebiegaj cy proces ekstrakcji.
Spo ród przedstawionych metod najmniejsze dodatkowe obci enie wnosi algorytm
Design-Resume. Jest to jednak okupione wysok jego zło ono ci . Jednak tam, gdzie liczy
si wydajno
przetwarzania i istnieje wysokie ryzyko wyst pienia awarii w czasie procesu
ekstrakcji, algorytm ten jest bardzo dobrym rozwi zaniem. Lepszym okazuj si jedynie
rozwi zania stosowane w specyficznych aplikacjach takie jak sortowanie dyskowe lub
masowe ładowanie stosowane w produktach DB2 i Teradaty [2].
Rys. 2.8 Porównanie metod odtwarzania [2]
3. rodowisko ekstrakcji danych ETL-DR
rodowisko ETL-DR to biblioteka j zyka Java zawieraj ca zestaw klas, z których
mo na zbudowa
kompletn
aplikacj
ekstrakcji danych.
rodowisko to, oprócz
uruchamiania normalnego procesu ekstrakcji pozwala równie
na wykonywanie
odtwarzania procesu ETL, który nie został poprawnie zako czony z powodu wyst pienia
awarii. rodowisko oferuje trzy algorytmy odtwarzania:
a) algorytm Design-Resume (DR)
b) algorytm Staging
c) algorytm hybrydowy (poł czenie DR oraz Staging’u)
Proces ETL opisywany jest przy pomocy tzw. grafu ekstrakcji. W w złach grafu
wykonywane jest przetwarzanie danych, natomiast kraw dzie opisuj kierunki przepływu
danych. Ze wzgl du na pełnione funkcje w zły mo na podzieli na trzy grupy:
- ekstraktory,
- transformacje,
- insertory.
Ekstraktory pobieraj
dane ze wskazanego przez projektanta
ródła danych i
przekazuj je na wej cie poł czonych z nimi w złów. Transformacje pobieraj dane z
w złów poprzedzaj cych, wykonuj pewne operacje na zbiorach krotek, po czym generuj
zbiory wynikowe
dla kolejnych w złów.
Insertory pobieraj
dane z w złów
poprzedzaj cych i zapisuj je w miejscu ustalonym przez projektanta grafu.
eID
101
102
101
104
…
value
1762
345
732
143
…
date
2003-12-17
2004-01-12
2003-10-08
2003-12-15
…
eID
101
101
104
106
…
E
value
1762
732
143
253
…
TF
date
2003-12-17
2003-10-08
2003-12-15
2003-11-28
…
TG
eID
101
108
104
106
…
total_value
47456
34639
37564
45782
…
I
Rys. 3.1 Przykład prostego grafu ekstrakcji wraz z przykładowymi danymi
rodowisko ekstrakcji danych ETL-DR
16
3.1. Opis grafu ekstrakcji
Struktura grafu ekstrakcji na potrzeby rodowiska ETL-DR zapisywana jest w
tekstowym pliku konfiguracyjnym. Przykład takiego pliku znajduje si poni ej.
env.appStateFile = e:\config.state
env.workingDirectory = e:\temp
// Extractor
newNode=FileExtractor
sourceFileName = e:\etl1.txt
columnSeparator = 2c
nodeID = 1
output.packetSize = 10
namesInFirstRow = true
// Grupowanie
newNode=GroupTransformation
nodeID = 2
input.attributes = {nrp, nrz, nri, nazwisko}
input.keyAttributes = {nrp}
input.sourceID = 1
groupingAttributes = {nrp, nrz}
aggrAttributes = {sum:nri, avg:nri}
// Insertor
newNode=FileInserter
destFileName = e:\etlout2.txt
nodeID = 3
input.attributes = {nrp, nrz, sum(nri), avg(nri)}
input.keyAttributes = {nrp, nrz}
input.sourceID = 2
overwriteFile = yes
Rys. 3.2 Przykładowy plik konfiguracyjny
Kolejne wiersze w pliku konfiguracyjnym to ustalenie warto ci odpowiednich
własno ci. Mamy pewien zestaw obiektów, które trzeba wła ciwie skonfigurowa ,
przykładowo env.appStateFile = e:\config.state ustala cie k do pliku stanu
aplikacji ekstrakcji. Wi cej dost pnych własno ci zostanie opisanych w dalszej cz ci
instrukcji.
Bardzo wa n jest pseudo-własno
newNode. Powoduje ona utworzenie nowego
w zła grafu. Typ w zła okre lony jest przez przypisywan warto , np.: newNode =
GroupTransformation tworzy nowy w zeł grupuj cy. Wszystkie kolejne definicje
warto ci własno ci odnosz si do ostatnio utworzonego w zła. Wyj tkiem s definicje
parametrów rodowiskowych rozpoczynaj ce si od przedrostka „env.”.
3.2. Hierarchia klas i własno ci
Hierarchia klas w złów
poni ej.
rodowiska ETL-DR przedstawiona jest na rysunku
rodowisko ekstrakcji danych ETL-DR
17
AbstractNode
Extractor
Transformation
Inserter
FileExtractor
AggegationTransformation
FileInserter
DBExtractor
GroupTransformation
DBInserter
FilterTransformation
OracleDBInserter
FunctionTransformation
GeneratorTransformation
JoinTransformation
MergeTransformation
ProjectionTransformation
UBTreeTransformation
UnionTransformation
VMQueue
Rys. 3.3 Hierarchia klas w złów grafu ekstrakcji
Wszystkie klasy w złów maj wspólnego przodka jakim jest klasa AbstractNode.
W niej zdefiniowane s podstawowe mechanizmy zapewniaj ce współprac z innymi
elementami rodowiska. W ka dej z klas zdefiniowany jest pewien zbiór własno ci, które
s
równie
dziedziczone do klas wyprowadzonych z klas bazowych, tzn. własno ci
zdefiniowane w klasie Extractor wyst puj
równie
w klasach FileExtractor i
DBExtractor.
Własno ci mog
by
ró nego typu, w szczególno ci rozró niamy własno ci:
tekstowe, numeryczne, logiczne, tablicowe i obiektowe. Własno ci obiektowe posiadaj
kolejne własno ci, np. input.dr.mapToOne oznacza, e we własno ci obiektowej input
odwołujemy si do własno ci obiektowej dr, w której odwołujemy si do własno ci
mapToOne. Własno ciom tekstowym mo emy przypisa
numeryczne opisuj pewn warto
dowolny tekst. Własno ci
liczbow (liczba całkowita, zmiennoprzecinkowa).
Własno ci logiczne przyjmuj warto ci logiczne true lub false (lub wymiennie yes, no).
Własno ci
tablicowe
pozwalaj
na
przekazanie
tablicy
rozdzielonych przecinkiem, np. input.attributes = {nrp, nrz}.
ła cuchów
tekstowych
rodowisko ekstrakcji danych ETL-DR
18
3.3. Własno ci obiektowe
3.3.1. Własno
input
input posiadaj wszystkie w zły dziedzicz ce z klas Transformation lub
Własno
Inserter. Jej zadaniem jest okre lenie w zła ródłowego (jednego lub wi cej) z którego
b d pobierane dane. Własno ci tej nie posiadaj ekstraktory, gdy one pobieraj dane ze
ródeł le cych poza grafem.
Tabela 3.1 Struktura własno ci obiektowej input
Nazwa
Typ
sourceID
numeryczny
-1
Identyfikator
naturalna)
attributes
tablicowy
{}
Atrybuty krotek pobieranych
keyAttributes
tablicowy
{}
Atrybuty kluczowe krotek pobieranych
dr
obiektowy
3.3.2. Własno
Własno
Warto
domy lna
Przeznaczenie
w zła
ródłowego
(liczba
Własno ci dla algorytmu odtwarzania DR
dr
dr definiuje parametry wej cia wykorzystywane przed algorytm
odtwarzania Design-Resume. Znaczenie tych parametrów zostało opisane w sekcji 2.3.5.
Tabela 3.2 Struktura własno ci obiektowej dr
Nazwa
Typ
mapToOne
logiczny
Własno
map-to-one
suffixSafe
logiczny
Własno
suffix-safe
setToSeq
logiczny
Własno
set-to-seq
noHiddenContributors
logiczny
Własno
no-hidden-contributors
3.3.3. Własno
Własno
Warto
domy lna
Przeznaczenie
output
output posiadaj wszystkie w zły dziedzicz ce z klas Extractor lub
Transformation. Jej zadaniem jest okre lenie parametrów wyj cia w zła w celu
zapewnienia maksymalnej wydajno ci przetwarzania. Krotki przekazywane s
do
kolejnych w złów nie pojedynczo lecz w pakietach o okre lonej wielko ci. Dzi ki temu
synchronizacja w tków podczas przekazywania danych nast puje znacznie rzadziej.
Pakiety z kolei gromadzone s w buforze wyj ciowym, tzw. kolejce. Długo
ograniczona z góry, aby niepotrzebnie nie zajmowa miejsca w pami ci.
kolejki jest
rodowisko ekstrakcji danych ETL-DR
19
Tabela 3.3 Struktura własno ci obiektowej output
Nazwa
Typ
Warto
packetSize
numeryczny
1000
queueSizeLimit numeryczny
Przeznaczenie
Rozmiar pakietu krotek
50
Maksymalna liczba pakietów w kolejce
env
3.3.4. Własno
Własno
domy lna
env w odró nieniu od własno ci przedstawionych wcze niej nie jest
zwi zana z adnym z w złów. Okre la ona parametry rodowiska ekstrakcji, których nie
mo na przypisa w złom.
Tabela 3.4 Struktura własno ci obiektowej env
Nazwa
Typ
Warto
domy lna
Przeznaczenie
appStateFile
tekstowy
.\etl.state
cie ka do pliku stanu aplikacji
workingDirectory
tekstowy
.
outputPacketSize
numeryczny
Katalog na pliki tymczasowe
Zmiana domy lnego rozmiaru pakietu
outputQueueSizeLimit numeryczny
Zmiana domy lnego limitu długo ci kolejki
pakietów
Plik stanu aplikacji niesie ze sob informacj o stanie procesu ETL. Na podstawie
jego zawarto ci mo na oceni czy proces zako czył si prawidłowo, a je eli nie, to które
w zły grafu musz zosta uruchomione podczas odtwarzania. Plik ten, je eli nie istnieje
(np. przed pierwszym uruchomieniem ekstrakcji), tworzony jest automatycznie.
3.4. Własno ci klas w złów
3.4.1. Klasy bazowe
3.4.1.1.
Klasa AbstractNode
Jest to klasa bazowa dla wszystkich w złów pojawiaj cych si w grafie ekstrakcji.
W niej zdefiniowane s identyfikatory w złów umo liwiaj ce prawidłowe zdefiniowanie
poł cze
mi dzy w złami oraz katalog roboczy dla danego w zła. Mimo i katalog
roboczy definiuje si
dla całej aplikacji (env.workingDirectory), to mo liwe jest te
zdefiniowanie katalogu roboczego dla ka dego w zła z osobna.
Tabela 3.5 Własno ci klasy AbstractNode
Nazwa
Typ
nodeID
numeryczny
workingDirectory
tekstowy
Warto
domy lna
-1
Przeznaczenie
Identyfikator w zła
Katalog na pliki tymczasowe
rodowisko ekstrakcji danych ETL-DR
3.4.1.2.
20
Klasa Extractor
Jest to klasa bazowa dla wszystkich ekstraktorów. Mo liwe jest okre lenie nazw
atrybutów pojawiaj cych si na wyj ciu w zła oraz okre lenie parametrów wyj cia.
Tabela 3.6 Własno ci klasy Extractor
Nazwa
Typ
columnNames
tablicowy
output
obiektowy
3.4.1.3.
Warto
domy lna
{}
Przeznaczenie
Nazwy atrybutów wyj ciowych
Parametry wyj cia
Klasa Transformation
Jest to klasa bazowa dla wszystkich transformacji. W klasie tej nale y zdefiniowa
parametry wej cia (lub wej ). Opcjonalnie mo na jak w ekstraktorach zmodyfikowa
parametry wyj cia. Własno
stagingAbility wł cza tryb staging. Dane wynikowe w zła
b d w trakcie przetwarzania zapisywane do pliku, aby w razie konieczno ci odtwarzania
skorzysta z gotowego zbioru bez pobierania ich z ekstraktorów.
Tabela 3.7 Własno ci klasy Transformation
Nazwa
Typ
input
obiektowy
inputs.1 – inputs.9
Warto
domy lna
Przeznaczenie
Parametry wej cia transformacji
W przypadku transformacji wielowej ciowych
(zł czenie, unia) pozwala okre li parametry
wybranego wej cia. inputs.1 jest równowa ne z
obiektowy
input.
output
obiektowy
stagingAbility
logiczny
3.4.1.4.
Parametry wyj cia
false
Uaktywnia tryb staging.
Klasa Inserter
Jest to klasa bazowa dla wszystkich insertorów. Mo liwe jest okre lenie nazw
atrybutów wynikowych, które nie musz
by
takie same jak nazwy atrybutów
wej ciowych.
Tabela 3.8 Własno ci klasy Inserter
Nazwa
Typ
input
obiektowy
destAttributes
tablicowy
Warto
domy lna
Przeznaczenie
Parametry wej cia insertora
input.attributes
Nazwy atrybutów wynikowych
rodowisko ekstrakcji danych ETL-DR
21
3.4.2. Klasy ekstraktorów
3.4.2.1.
Klasa FileExtractor
FileExtractor czyta dane ze wskazanego pliku wej ciowego. Jeden wiersz pliku
odpowiada jednej krotce, kolejne atrybuty rozdzielone s ustalonym separatorem. Pierwszy
wiesz pliku mo e zawiera nazwy atrybutów. W takim przypadku nie trzeba podawa ich
nazw we własno ci columnNames.
Tabela 3.9 Własno ci klasy FileExtractor
Nazwa
Typ
sourceFileName
tekstowy
columnSeparator
tekstowy
2c
Separator
kolumn
(atrybutów)
podany
szesnastkowo (2c odpowiada spacji). Mo e
okre la jeden lub wi cej znaków.
rowsToOmit
numeryczny
0
Liczba wierszy do pomini cia
rowsLimit
numeryczny
-1
Maksymalna liczba wierszy do odczytu
bufferSize
numeryczny
10000
namesInFirstRow
logiczny
false
3.4.2.2.
Warto
domy lna
Przeznaczenie
cie ka do pliku ródłowego
Rozmiar bufora odczytu
Okre la czy pierwszy wiersz zawiera nazwy
atrybutów
Klasa DBExtractor
DBExtractor pobiera dane ze wskazanej bazy danych. Poł czenie realizowane jest
przez interfejs JDBC.
Tabela 3.10 Własno ci klasy DBExtractor
Nazwa
Typ
Warto
domy lna
Przeznaczenie
driverConnectionString
tekstowy
jdbc:odbc:
driverInitString
tekstowy
dataBaseNamePrefix
tekstowy
Prefiks nazwy BD
dataBaseName
tekstowy
Nazwa BD
dataBaseNameSuffix
tekstowy
Sufiks nazwy BD
userName
tekstowy
Nazwa u ytkownika
userPassword
tekstowy
Hasło u ytkownika
rowsLimit
numeryczny
sqlQuery
tekstowy
sortedStream
logiczny
Okre lenie interfejsu poł czenia z BD
JdbcOdbcDriver Nazwa klasy drivera BD
-1
Maksymalna liczba rekordów do odczytu
Tekst zapytania SQL
false
Okre lenie, czy pobierany zbiór zawsze
zwracany jest w takiej samej kolejno ci
rodowisko ekstrakcji danych ETL-DR
22
Do realizacji poł czenia wykorzystywany jest sterownik o nazwie okre lonej przez
driverInitString. Poł czenie z baz danych ustawiane jest w oparciu o ci g zbudowany
kolejno z własno ci: driverConnectionStream, dataBaseNamePrefix, dataBaseName,
dataBaseNameSuffix. Do pobrania danych wykorzystywane jest przekazane zapytanie w
j zyku SQL. Je eli zapytanie to zawsze zwraca krotki w takiej kolejno ci (np. u yto frazy
ORDER BY) to warto ustawi własno
sortedStream. Mo e to zwi kszy wydajno
odtwarzania, gdy b dzie mo liwe zastosowanie filtrowania typu prefix.
3.4.3. Klasy insertorów
3.4.3.1.
Klasa FileInserter
FileInserter dokonuje zapisu krotek do pliku docelowego. Format pliku jest taki
sam jak w przypadku ekstraktora plikowego. Jednemu wierszowi odpowiada jedna krotka.
Wył czenie nadpisywania pliku spowoduje, e je li plik o wskazanej nazwie ju istnieje, to
ekstrakcja zostanie przerwana.
Tabela 3.11 Własno ci klasy FileInserter
Nazwa
Typ
destFileName
tekstowy
columnSeparator
tekstowy
2c
overwriteFile
logiczny
true
rowsLimit
numeryczny
-1
bufferSize
numeryczny
10000
writeHeader
logiczny
false
3.4.3.2.
Warto
domy lna
Przeznaczenie
cie ka do pliku docelowego
Separator
kolumn
(atrybutów)
podany
szesnastkowo (2c odpowiada spacji). Mo e
okre la jeden lub wi cej znaków.
Umo liwia nadpisanie istniej cego pliku
Maksymalna liczba wierszy do zapisu
Rozmiar bufora zapisu
Wł cza zapis nazw atrybutów w nagłówku pliku
Klasa DBInserter
DBInserter ładuje dane do tabeli we wskazanej bazie danych. Poł czenie
realizowane przez interfejs JDBC. Je eli tabela docelowa jest tworzona w trakcie estrakcji,
to konieczne jest zdefiniowanie typów kolumn zgodnie z konwencj u ywan w bazie.
Typy te b d u yte podczas tworzenia tabeli w zapytaniu CREATE TABLE. W zeł ten
oferuje równie
zaawansowane ładowanie wykorzystuj ce indeks UBTree[4]. Do
odpowiedniego skonfigurowania komponentu aby uruchomi takie ładowanie słu
ostatnie własno ci z poni szej tabeli: ubTree, extUBTreeKey, createUBIndexes.
trzy
rodowisko ekstrakcji danych ETL-DR
23
Tabela 3.12 Własno ci klasy DBInserter
Nazwa
Typ
Warto
domy lna
driverConnectionString
tekstowy
jdbc:odbc:
driverInitString
tekstowy
dataBaseNamePrefix
tekstowy
Prefiks nazwy BD
dataBaseName
tekstowy
Nazwa BD
dataBaseNameSuffix
tekstowy
Sufiks nazwy BD
userName
tekstowy
Nazwa u ytkownika
userPassword
tekstowy
Hasło u ytkownika
tableName
tekstowy
Nazwa tabeli docelowej
columnTypes
tablicowy
Lista typów kolumn w tabeli docelowej
zgodna z konwencj docelowej bazy
danych
rowsLimit
numeryczny
-1
createTable
logiczny
true
Wymusza tworzenie tabeli docelowej
ubTree
tablicowy
{}
Lista reguł tworzenia indeksu UBTree
extUBTreeKey
tekstowy
createUBIndexes
logiczny
3.4.3.3.
Przeznaczenie
Okre lenie interfejsu poł czenia z BD
JdbcOdbcDriver Nazwa klasy drivera BD
Maksymalna liczba rekordów do zapisu
Nazwa zewn trznego indeksu UBTree
true
Wł cza
tworzenie
indeksów
na
kolumnach z których utworzono indeks
UBTree
Klasa OracleDBInserter
Klasa jest rozszerzeniem klasy DBInserter dedykowanym do bazy danych Oracle.
Podczas ładowania danych wykorzystywany jest SQL*Loader. Poł czenie przez interfejs
JDBC słu y tu tylko do tworzenia tabeli oraz zatwierdzania transakcji. Ma to ogromny
wpływ na wydajno
procesu ładowania.
Tabela 3.13 Własno ci klasy OracleDBInserter
Nazwa
Typ
sqlLoaderPath
tekstowy
loaderPackSize
numeryczny
500000
concurrencyLevel
numeryczny
5
Własno
OracleDBInserter.
Warto
domy lna
cie ka do katalogu
SQLLDR.EXE
concurrencyLevel
Ogranicza
Przeznaczenie
ona
zawieraj cego
Rozmiar paczki danych SQL*Loader’a
Maksymalna liczba równolegle
procesów SQL*Loader’a
jest
liczb
plik
wspólna
dla
równolegle
wszystkich
działaj cych
działaj cych
instancji klasy
sesji
loadera.
Niepotrzebne jej zwi kszanie prowadzi czasem do obni enia wydajno ci ładowania.
rodowisko ekstrakcji danych ETL-DR
24
3.4.4. Klasy transformacji
3.4.4.1.
Klasa AggregationTransformation
Zadaniem tej klasy jest obliczenie sumy wskazanego atrybutu. Na wyj ciu
transformacji pojawia si tylko jedna krotka b d ca wynikiem oblicze .
Tabela 3.14 Własno ci klasy AggregationTransformation
Nazwa
Typ
aggrAttribute
tekstowy
aggregateName
tekstowy
3.4.4.2.
Warto
domy lna
Przeznaczenie
Nazwa atrybutu do agregacji
aggr(aggrAttribute)
Nazwa atrybutu wynikowego
Klasa GroupTransformation
Klasa wykonuje operacj grupowania wraz ze stosownym obliczaniem agregatów.
Realizowana operacja mo e by opisana jako:
SELECT groupingAttributes, aggrAttribues AS aggregatesNames
FROM input
GROUP BY groupingAttributes
Agregaty do obliczenia definiujemy nast puj co: typ_agregatu:atrybut. Mo liwe
typy do: SUM, AVG, MIN, MAX, COUNT. Grupowanie zewn trzne polega na
wykorzystaniu pami ci dyskowej w przypadku gdy dane nie mieszcz si w pami ci.
Wł czenie trybu zewn trznego polega na ustawieniu własno ci externalMode.
Tabela 3.15 Własno ci klasy GroupTransformation
Nazwa
Typ
Warto
domy lna
groupingAttributes
tablicowy
{}
Atrybuty grupuj ce
aggrAttributes
tablicowy
{}
Agregaty do obliczenia, np. {sum:kwota}
aggregatesNames
tablicowy
{}
Nazwy agregatów
estimatedGroupCount numeryczny
10000
Przeznaczenie
Przewidywana liczba grup
useTreeMap
logiczny
false
U ycie drzewa zamiast tablicy mieszaj cej
jako struktury danych
sortedInput
logiczny
false
Oznacza,
e strumie
wej ciowy jest
uporz dkowany
wzgl dem
atrybutów
grupuj cych
externalMode
logiczny
false
Wł czenie grupowania zewn trznego
extMemoryLimit
numeryczny
250000
Maksymalna liczba krotek w
podczas grupowania zewn trznego
externalFilesLimit
numeryczny
20
Zalecana
maksymalna
zewn trznych
liczba
pami ci
plików
rodowisko ekstrakcji danych ETL-DR
3.4.4.3.
25
Klasa GeneratorTransformation
Klasa generatora pozwala nada
krotkom unikalne identyfikatory. Dzi ki temu
mo na łatwo stworzy odpowiedni struktur tabel i poł cze mi dzy nimi.
Tabela 3.16 Własno ci klasy GeneratorTransformation
Nazwa
Typ
genPrefix
tekstowy
initialValue
numeryczny
1
Warto
genStep
numeryczny
1
Krok generatora
attributeName
tekstowy
onlyID
logiczny
true
Okre la czy na wyj ciu maj si pojawi
kompletne krotki z identyfikatorem czy same
identyfikatory
uniqueAttributes
tablicowy
{}
Zapewnia
atrybutów
uniqueOutput
logiczny
true
Powtarzaj ce si ID nie b d pojawia si wyj ciu
3.4.4.4.
Warto
domy lna
Przeznaczenie
Prefiks generowanych identyfikatorów
pocz tkowa generatora
Nazwa atrybutu
identyfikatory
wyj ciowego
unikalno
ID
zawieraj cego
dla
wskazanych
Klasa JoinTransformation
Klasa ta dokonuje zł czenia dwóch strumieni danych wzgl dem wskazanych
atrybutów ł cz cych, dla których musi zachodzi warunek równo ci.
Tabela 3.17 Własno ci klasy JoinTransformation
Nazwa
Typ
Warto
domy lna
joinAttributes
tablicowy
{}
estimatedBufferSize
numeryczny
3000
Przewidywana wielko
repeatableBuffering
logiczny
true
Zezwala na powtarzanie si
strumieniu buforowanym
useTreeArray
logiczny
false
U ywa struktury drzewiastej zamiast
tablicy mieszaj cej podczas zł czenia
swapBuffering
logiczny
false
Zmiana buforowanego wej cia
externalMode
logiczny
false
Wł czenie ł czenia zewn trznego
extMemoryLimit
numeryczny
250000
Maksymalna liczba krotek w pami ci
podczas ł czenia zewn trznego
33
Procent redukcji indeksu pomocniczego
przy
przekroczeniu
dopuszczalnego
rozmiaru
extCacheReductionRatio numeryczny
extCacheSize
numeryczny
100000
Przeznaczenie
Atrybuty ł cz ce, np. {nrp:nrp,
kwota:wartosc}
bufora zł czenia
warto ci w
Limit rozmiaru indeksu pomocniczego
rodowisko ekstrakcji danych ETL-DR
26
Zł czenie przebiega dwuetapowo. Pierwsza faza to buforowanie strumienia z
wej cia nr 2, a nast pnie próba ł czenia danych ze strumienia nr 1 z danymi ju
pobranymi. To, które wej cie jest buforowane, a które przetwarzane „w locie”, mo na
zmieni
przy pomocy własno ci swapBuffering. Domy lne ustawienia zapewniaj
prawidłowe działanie w zła je li warto ci atrybutów ł cz cych w strumieniu buforowanym
powtarzaj
si
(repeatableBuffering). T
opcj
mo na wył czy
co zaowocuje
oszcz dno ci pami ci operacyjnej.
Własno
joinAttributes pełni podwójn
funkcj . Po pierwsze definiuje pary
atrybutów ł cz cych rozdzielone znakiem dwukropka, odpowiednio z pierwszego i
drugiego wej cia transformacji, np. {nrp:numerPrac}. W strumieniu wyj ciowym
pojawiaj si atrybuty ł cz ce tylko ze strumienia wej ciowego numer 1. Je li chcemy,
mo emy oznaczy
znakiem @ atrybut, który ma zosta
u yty na wyj ciu, np.
{@nrp:numerPrac} lub {nrp:@numerPrac}. Pierwszy zapis jest przyjmowany domy lnie,
je li nie podano znaku @.
3.4.4.5.
Klasa MergeTransformation
MergeTransformation dokonuje sklejenia dwóch (lub wi cej) strumieni danych. Z
ka dego ze strumieni pobierana jest jedna krotka, po czym tworzona jest jedna krotka
wynikowa. Transformacja ta nie posiada
adnych dodatkowych konfigurowalnych
własno ci.
Przykładem realizowanej operacji jest sklejenie atrybutów np. {nrp} + {nazwisko}
= {nrp, nazwisko}
3.4.4.6.
Klasa UnionTransformation
Unia jest transformacj wielowej ciow . Mo e by zrealizowana dwojako: w trybie
mieszanym lub sekwencyjnym. W trybie mieszanym krotki z poszczególnych wej
pobierane s w miar ich pojawiania si . W trybie sekwencyjnym najpierw pobierane s
wszystkie krotki z wej cia nr 1, nast pnie z wej cia nr 2, itd. Odwrócenie kolejno ci (od
ostatniego wej cia) jest mo liwe poprzez własno
reverseOrder. Z samej definicji unii
wynika, e wszystkie wej cia musz mie zdefiniowane takie same atrybuty wej ciowe.
Tabela 3.18 Własno ci klasy UnionTransformation
Nazwa
Typ
Warto
domy lna
Przeznaczenie
mixedMode
logiczny
true
Wł czenie trybu mieszanego
reverseOrder
logiczny
false
Zmiana kolejno ci wej gdy tryb
mieszany nie jest wł czony
rodowisko ekstrakcji danych ETL-DR
3.4.4.7.
27
Klasa ProjectionTransformation
Zadaniem komponentów tej klasy jest dokonanie projekcji. Jedyna własno
tej
transformacji okre la nazwy atrybutów wyj ciowych.
Tabela 3.19 Własno ci klasy UnionTransformation
Nazwa
Typ
attributes
tablicowy
3.4.4.8.
Warto
domy lna
{}
Przeznaczenie
Atrybuty wyj ciowe
Klasa FilterTransformation
Klasa filtra pozwala zrealizowa
filtrowanie o dowolnym warunku. Warunek
filtrowania definiowany jest w zewn trznej klasie Javy tworzonej przez projektanta grafu.
Doł czana zewn trzna klasa musi by wywiedziona z klasy abstrakcyjnej FilterTemplate
znajduj cej si w pakiecie etl.externals. Przykładowy filtr, który „przepuszcza” wszystkie
krotki zaprezentowany jest poni ej:
import etl.util.*;
public class EmptyFilter extends etl.externals.FilterTemplate {
/** Creates new EmptyFilter */
public EmptyFilter() {
}
public byte doFilter(Tuple t) {
try {
return FilterTemplate.GOOD;
}
catch(Exception e) {
return FilterTemplate.ERROR;
}
}
/** Optional filter initialization
* @param initString
* @return TRUE if OK
*/
public boolean initialize(String initStr) {
return true;
}
}
Tabela 3.20 Własno ci klasy FilterTransformation
Nazwa
Typ
Warto
domy lna
Przeznaczenie
filterClassPath
tekstowy
filterClassName
tekstowy
Nazwa klasy (z nazw pakietu)
filterInitString
tekstowy
Parametr inicjalizacyjny przekazywany
w metodzie initialize()
cie ka do pliku klasy
rodowisko ekstrakcji danych ETL-DR
3.4.4.9.
28
Klasa FunctionTransformation
Klasa funkcyjna pozwala zrealizowa dowolne przekształcenie strumienia krotek
(w tym generowanie wielu krotek z jednej krotki wej ciowej). Przekształcenie definiowane
jest w zewn trznej klasie Javy tworzonej przez projektanta grafu. Doł czana zewn trzna
klasa musi by wywiedziona z klasy abstrakcyjnej FunctionTemplate znajduj cej si w
pakiecie etl.externals. Przykładowa funkcja nie robi ca nic zaprezentowana jest poni ej:
import etl.util.*;
public class EmptyFunction extends FunctionTemplate {
/** Creates new EmptyFunction */
public EmptyFunction() {
}
/** Transforms a tuple
* @param t Input tuple
* @return Result tuple
*/
public Tuple doFunction(Tuple t) {
return t;
}
/** Sets outputAttributes
* @param attrs Input attributes
* @return output attributes
*/
public String[] getAttributes(String attrs[]) {
return attrs;
}
/** Check the call status
* @return Call status
*/
public byte getCallStatus() {
return FunctionTemplate.CALL_ALWAYS_ONCE;
}
/** Returns post-processing tuples
* @return Tuple
*/
public Tuple getPostData() {
return null;
}
/** Optional function initialization
* @param initString
* @return TRUE if OK
*/
public boolean initialize(String initStr) {
return true;
}
}
rodowisko ekstrakcji danych ETL-DR
29
Tabela 3.21 Własno ci klasy FunctionTransformation
Nazwa
Typ
Warto
domy lna
Przeznaczenie
functionClassPath
tekstowy
functionClassName
tekstowy
Nazwa klasy (z nazw pakietu)
functionInitString
tekstowy
Parametr inicjalizacyjny przekazywany
w metodzie initialize()
cie ka do pliku klasy
3.4.4.10. Klasa specjalna VMQueue
Kolejka VMQueue jest specjalnym buforem wykorzystuj cym przestrze dyskow .
Je eli dane do kolejki napływaj szybciej ni mo liwe jest ich odbierane, wtedy eby nie
zajmowa niepotrzebnie pami ci operacyjnej wykonywany jest zapis na dysk. Gdy odbiór
danych jest mo liwy, wtedy dane ju zapisane s ponownie odczytywane i zapisywane w
buforze wyj ciowym transformacji. Jej stosowanie jest czasem konieczne aby zapobiega
wzajemnej blokadzie, do której mo e doj
przy pewnych specyficznych poł czeniach
pomi dzy w złami.
Tabela 3.22 Własno ci klasy VMQueue
Nazwa
Typ
percentageRestartLevel numeryczny
Warto
domy lna
75
Przeznaczenie
Procent wolnego miejsca w kolejce
pakietów, przy którym wznawiane
jest wysyłanie danych do nast pnych
w złów.
3.5. Atrybuty wyj ciowe w złów transformuj cych
Na etapie tworzenia pliku konfiguracyjnego procesu ETL konieczne jest ustalenie
atrybutów wej ciowych dla ka dego wej cia transformacji lub insertora. To jakie krotki
generuj ekstraktory jest łatwe do ustalenia. W przypadku transformacji sytuacja nie jest
ju
taka oczywista. To jakie s
atrybuty krotek wynikowych zale y od rodzaju
przekształcenia wykonywanego przez dan transformacj . Znajomo
tego co pojawia si
na wyj ciu transformacji jest niezb dna, gdy przed uruchomieniem procesu ekstrakcji
sprawdzane jest, czy dla ka dego wej cia generowane s
krotki o atrybutach
zdefiniowanych przez projektanta grafu. Innymi słowy atrybuty wynikowe ka dego w zła
grafu musz
odpowiada
zdefiniowanym atrybutom wej cia w zła nast pnego. W
przypadku niezgodno ci atrybutów nie b dzie mo liwo ci uruchomienia procesu ETL, a
u ytkownik zostanie o takim zdarzeniu poinformowany poprzez wygenerowanie wyj tku.
rodowisko ekstrakcji danych ETL-DR
30
W tabelce poni ej zostały zgromadzone reguły tworzenia krotek wynikowych przez
poszczególne transformacje rodowiska ETL-DR.
Tabela 3.23 Atrybuty wyj ciowe transformacji
Nazwa transformacji
AggregationTransformation
Atrybuty wyj ciowe
Jedna warto , nazwa atrybutu podana przez projektanta.
GroupTransformation
Atrybuty grupuj ce + obliczone agregaty. Nazwy domy lne lub
zdefiniowane przez projektanta.
GeneratorTransformation
Je li onlyID = true, wtedy jeden atrybut o zdefiniowanej nazwie, w
przeciwnym razie oprócz identyfikatora równie wszystkie atrybuty
wej ciowe.
JoinTransformation
Suma atrybutów z wej pierwszego oraz drugiego z pomini ciem
atrybutów ł cz cych, które nie zostały wybrane jako główne (nie
oznaczone znakiem @).
MergeTransformation
Suma atrybutów z poszczególnych wej
UnionTransformation
Atrybuty wej ciowe dowolnego wej cia (musz by takie same dla
wszystkich wej ).
ProjectionTransformation
FilterTransformation
FunctionTransformation
transformacji.
Atrybuty okre lone przez projektanta.
Atrybuty wej ciowe.
Atrybuty okre lone w klasie zewn trznej.
3.6. Uruchomienie procesu ETL
Cało ci procesu ETL zarówno w przypadku normalnego przetwarzania jak i
odtwarzania zarz dza klasa etl.management.SimpleManager. Uruchomienie ekstrakcji
sprowadza si do kilku prostych wywoła .
(1)
SimpleManager manager = new SimpleManager(confFile);
(2)
manager.prepareApplication(false);
(3)
if (manager.isReady())
(4)
manager.runApp(0);
Wiersz (1) to utworzenie instancji menad era na bazie przygotowanego pliku
konfiguracyjnego. Nast pnym krokiem jest zainicjowanie aplikacji ekstrakcji, co ma
miejsce w wierszu (2). Na tym etapie badana jest zawarto
tworzone s
pliku stanu po czym w pami ci
instancje wymaganych komponentów. Je eli z pliku stanu wynika,
e
konieczne jest uruchomienie odtwarzania, to w tym kroku poczynione zostan wszystkie
operacje z tym zwi zane, takie jak: wstawianie dodatkowych filtrów do grafu ekstrakcji,
inicjalizacja filtrów danymi z insertorów. Przekazuj c warto
prepareApplication
blokujemy
odtwarzanie.
true jako parametr metody
Wykonywane
b dzie
tylko
pełne
przetwarzanie. Nast pnym krokiem jest sprawdzenie, czy aplikacja została prawidłowo
rodowisko ekstrakcji danych ETL-DR
31
zainicjowana. W wierszu (3) sprawdzana jest gotowo
metoda isReady() zwraca warto
aplikacji do uruchomienia. Je eli
true, to mo na uruchomi
ekstrakcj /odtwarzanie
poprzez wywołanie metody runApp() – wiersz (4). Jej parametrem jest limit czasu
działania aplikacji w sekundach. Podanie warto ci zerowej oznacza brak ograniczenia
czasu.
W oparciu o powy sze zasady przygotowane zostały gotowe pliki uruchamiaj ce
wybrany wariant przetwarzania:
-
etl.fullETL <confFile> [<timeLimit>] - uruchamia pełne przetwarzanie, opcjonalne
ograniczenie czasu podajemy w sekundach,
-
etl.resumableETL <confFile> - uruchamia pełne przetwarzanie lub odtwarzanie
w zale no ci od zawarto ci pliku stanu,
-
etl.resumeETL <confFile> - je li jest to mo liwe, uruchamia odtwarzanie,
w przeciwnym razie nie robi nic.
Uruchomiony proces ETL generuje na bie co raport o stanie o przetwarzania.
Fragment przykładowego raportu przedstawiony jest poni ej:
msg: ETL Config: e:\etlconfig\test6.conf
msg: +++ Staging technique will be used
msg: +++ Stage starters: 4 5
msg: +++ Removed nodes: 1 3
msg: DR:
msg: DR: List of assigned filters:
msg: DR:
ClearPrefix 0-2
msg: DR:
ClearSubset 4-6
msg: DR:
msg: Ready for resumption
msg: *** APPLICATION STARTED
(0): [0] started
(0): [0] 1st tuple
(9): [10] started
(9): [10] 1st tuple
(5): [20] started
(4): [20] started
(15): [20] started
(12): [20] started
(0): [20] 1st packet
(9): [60] 1st packet
(4): [60] 1st tuple
(15): [70] 1st tuple
(12): [70] 1st tuple
(21): [70] started
(0): [70] finished (produced: 2500)
(9): [90] finished (produced: 1200)
. . .
(19): [301] finished (produced: 768)
(20): [301] started
(20): [331] finished
msg: *** APPLICATION STOPPED: 401 [ms]
msg: +++ EXTRACTION SUCCESSFUL
rodowisko ekstrakcji danych ETL-DR
32
Powy szy raport zawiera informacje o tym, e (wytłuszczenia):
a) u yta została technika staging, z grafu usuni te zostały w zły 1 i 3
b) algorytm DR przypisał 2 filtry na poł czeniach w złów 0-2 i 4-6
c) aplikacja jest gotowa do uruchomienia odtwarzania
d) przetwarzanie zako czyło si sukcesem
Ponadto w czasie przetwarzanie pojawiaj si komunikaty w formacie:
(id_w zła): [czas_od_startu] <wiadomo >
Te komunikaty informuj
nas o tym, który w zeł w jakiej chwili rozpocz ł
przetwarzanie, wygenerował pierwsze krotki wynikowe, zako czył przetwarzanie.
3.6.1. Plik stanu aplikacji
Ustalenie czy poprzedni proces ekstrakcji zako czył si sukcesem mo liwe jest na
podstawie informacji zawartych w pliku stanu aplikacji. Jest to plik tekstowy, w którego
pierwszym wierszu zawarty jest nagłówek, natomiast w kolejnych zapisane s
identyfikatory
w złów
ładuj cych
(insertorów),
które
poprawnie
zako czyły
przetwarzanie. Je eli który z insertorów nie zako czył przetwarzania z powodu awarii, to
jego identyfikatora nie b dzie w pliku stanu. Dzi ki temu w prosty sposób mo emy oceni
stan procesu ekstrakcji:
a) je eli w pliku stanu znajduj si identyfikatory wszystkich insertorów z grafu,
to proces ETL zako czył si prawidłowo,
b) je eli w pliku brakuje identyfikatorów, to dla tych brakuj cych ID nale y
uruchomi odtwarzanie,
c) je eli plik stanu nie istnieje, to znaczy, e jeszcze nie uruchamiano procesu
ETL, wobec tego nie ma czego odtwarza . Nale y uruchomi
przetwarzanie.
Przykład pliku stanu znajduje si poni ej:
AppStateManager.stateFile
13
22
5
32
pełne
Literatura
1. Labio W.,, Wiener J. Garcia-Molina H., Gorelik V., Efficient Resumption of
Interrupted Warehouse Loads, Stanford University, Sagent Technologies, 1999
2. Wocław A., Implementacja procesu ekstrakcji danych z mechanizmem odtwarzania
opartym o algorytm Design-Resume w
rodowisku Forte for Java, praca
dyplomowa, 2002
3. Gorawski M., Marks P., Dynamic estimation of the efficiency of Design-Resume
resumption, Archiwum Informatyki Teoretycznej i Stosowanej PAN, 2003
4. Markl V., Brügge B., Bayer R., Freytag J.-C., Processing Relational Queries using
a Multidimensional Access Technique, Institut für Informatik der Technischen
Universität München, 1999
5. The Datawarehousing Information Center – www.dwinfocenter.org, cykl artykułów
6. Gorawski M., Koziatek. A., Projekt ekstrakcji danych, Informatyka 8/2000
7. Gorawski M., Wocław A., Implementacja algorytmu odtwarzania Design-Resume
w technologii JavaBeans, ZN Pol.
l. Studia Informatica Vol. 24, No 1(52),
Gliwice 2003
8. Plank J., An Overview of Checkpointing in Uniprocessor and Distributed Systems,
Focusing on Implementation and Performance, University of Tennessee,
Department of Computer Science, 1997

Podobne dokumenty