ETL – luźne spostrzeżenia

https://xpil.eu/2wxIn

W trakcie swojej tzw. "kariery zawodowej" używałem kilku różnych narzędzi ETL. Czasami budowało się wszystko od fundamentów, czasem brało się gotowca "z półki" - niezależnie jednak od wybranej technologii zawsze kończyło się tym, że trzeba było dokładać jakieś własne "dokrętki" żeby uzyskać taką funkcjonalność, jaka była w danym momencie potrzebna. Czyżby więc nie istniało idealne oprogramowanie ETL?

Weźmy takiego na przykład Data Managera (firmy Cognos). Fantastyczne narzędzie, kombajn do każdego zadania. Moim ulubionym "ficzerem" DM jest możliwość wysłania zapytania SQL do grupy plików CSV, podając wyłącznie ścieżkę do folderu z tymi plikami plus (opcjonalnie) szablon nazwy pliku. Coś, co w innych znanych mi narzędziach jest dużo bardziej zawiłe do uzyskania. Niestety, DM ma dość ograniczone możliwości w zakresie pisania własnych skryptów, więc żeby zaszyć w nim jakąś bardziej złożoną (i nietypową) logikę, trzeba się uciekać do narzędzi zewnętrznych (typu, chociażby, VB Script albo UC4).

Albo SSIS - tutaj z kolei bardzo podoba mi się elastyczność i pełna skryptowalność, ale niestety jest ciut gorzej z wydajnością. Robiłem kiedyś test - identyczny transfer danych, mapowanie kolumn 1:1 bez żadnych przekształceń, coś ze 30 kolumn i coś z pół miliona rekordów - wyszło mi, że DM jest ponad dwukrotnie szybszy od SSIS, bez żadnej sensownej przyczyny. Może ostatnio coś poprawili, ale wersja 2005 była zdecydowanie wolniejsza od konkurencji.

Przez ostatnie pół roku bawię się z kolei ODI - tutaj odrzuca mnie całkowicie interfejs użytkownika (nawiasem mówiąc, DM też nie jest fenomenalny pod tym względem - ale ODI bije wszelkie rekordy), który wygląda jak z późnego amigocenu, za to podoba mi się spójność i logika narzędzia (całkiem nawiasem mówiąc odmienna od czegokolwiek, czym się bawiłem dotychczas). Niestety, w ODI dość upierdliwe jest definiowanie zależności między pojedynczymi interfejsami, jeżeli interfejsy te są zgrupowane w pakiety. I znów, trzeba kombinować dookoła i pisać własne procedury żeby dostać to, co w SSIS i w DM jest dostępne z buta.

W firmie mojego poprzedniego pracodawcy z kolei cały ETL (no, prawie cały) był oparty na czystym SQL-u, jako że 95% ETL-a pompowało dane między bazami w obrębie tego samego serwera. Tamto rozwiązanie było wyjątkowo wydajne (setki rekordów na sekundę, 24/7/365), oparte na kilku prostych tabelach kontrolnych (dzięki czemu dało się w miarę prosto definiować zależności między procesami oraz unikać nadmiarowych ilości danych w pojedynczym wsadzie), ale za to było bardzo wąsko wyspecjalizowane.

Nie próbowałem się nigdy bawić narzędziami typu SAS DI, SAP BO DI, Informatica czy Websphere, więc mam niepełny obraz - może gdzieś tam, za górami, za lasami, jest jakiś Uniwersalny Soft do ETL - jednak jak na razie nie dane mi go było poznać.

Może, kiedyś...

https://xpil.eu/2wxIn

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.