Spis lekcji:
Ekstrakcja i ładowanie danych - stage ODBC i ORACLE
Stage ODBC służy do uzykania połączenia z poziomu Datastage z dowolnym źródłem danych, zgodnym ze standardem ODBC.
Elementy ODBC są przede wszystkim używane do ekstrakcji i ładowania danych. W wielu przypadkach stage ODBC może być wykorzystany do agregowania danych i do wyszukiwania danych po kluczach głównych (czyli może zastąpić stage aggregator oraz stage hash file).
Każdy stage ODBC może mieć kilka linków wejściowych i wyjściowych. Linki wejściowe określają dane, które będą zapisane w bazie danych (polecenia INSERT, UPDATE lub DELETE w SQL).
Polecenie SQL odpowiadające za linki wejściowe może być wygenerowane przez kreator wewnętrzny Datastage, może być wpisane 'z ręki' przez użytkownika lub może mieć postać wywołania procedury składowanej.
Linki wyjściowe określają dane które są ekstrahowane z bazy danych (komenda SQL SELECT).
W sytuacji, gdy docelową bazą danych jest ORACLE, warto rozważyć użycie ORACLE (ORAOCI9) stage.
Stage ten jest dedykowany do uzycia z baza danych oracle i jego główną zaletą jest komunikacja bezpośrednio z bazą danych, bez użycia protokołu ODBC. Praktyka dowodzi, że użycie Oracle stage owocuje lepszą wydajnością wykonywanych zapytań i pozwala na użycie większej ilości paramterów.
Datastage udostępnia także opcję wykonania zapytania SQL przed lub po przetwarzaniu danych w Oracle stage (Oracle stage -> properties -> Input -> SQL).
Przykładowo, ładując dużą porcję danych do tabeli oracle, można znacznie przyspieszyć ten proces używając komendy SQL usuwającej indeksy (DROP INDEX ...) w sekcji ‘before SQL’ oracle stage i policzyć statystyki dla tabeli w zakłade 'after SQL' (polecenie SQL - ANALYZE TABLE ... COMPUTE STATISTICS).
Aktualizacja danych za pomocą Oracle stage
Tabela docelowa Oracle moze byc aktualizowana za pomocą różnych metod, zwanych w Datastage Update actions.Bardzo istotnym jest, aby właściwie zaznaczyć kolumny kluczowe w stage Oracle lub ODBC (Kolumna 'Key' na liście kolumn), ponieważ kolumny te będą brane pod uwagę w budowaniu części warunku WHERE w zapytaniu SQL.
Dostępne akcje:
- Clear the table then insert rows - wyczyść tabelę (DELETE), a potem załaduj nowe wiersze (INSERT).
- Truncate the table then insert rows - wyczyść tabelę (TRUNCATE) i załaduj wiersze (INSERT).
- Insert rows without clearing - tylko dodaj nowe wiersze (INSERT statement).
- Delete existing rows only - usuń istniejące wiersze (DELETE).
- Replace existing rows completely - usuń istniejące (DELETE) i dodaj nowe rekordy (INSERT).
- Update existing rows only - zaktualizuj istniejące rekordy (UPDATE).
- Update existing rows or insert new rows - zaktualizuj istniejące rekordy (UPDATE) lub dodaj nowe rekordy (INSERT). Najpierw jest wykonywany UPDATE i gdy się zakończy sukcesem, to INSERT jest pomijany.
- Insert new rows or update existing rows - dodaj nowe rekordy (INSERT) lub zaktualizuj istniejące rekordy (UPDATE). Najpierw jest wykonywany INSERT i gdy się zakończy sukcesem, to UPDATE jest pomijany.
- User-defined SQL - dane są przetwarzane według ręcznie zdefiniowanego przez użytkownika polecenia SQL.
- User-defined SQL file - dane są przetwarzane według ręcznie zdefiniowanego przez użytkownika polecenia SQL, wczytanego z pliku.