Kettle - narzędzie ETL
czyli jak udało mi się pogrzebać Czajnik ;-)
Rzecz będzie wbrew pozorom o informatyce ;-)
Chcąc nie chcąc znalazłem się w AOL w grupie zajmującej się procesami ETL. Nie zebym był jakoś super szczęśliwy (przypominam, ża zatrudniany byłem jako inzynier ze wskazaniem programowania Web w Javie), ale niechtam - jeszcze jakiś czas...
Po ukończeniu Projektu Autos, przerwie świątecznej (dłuuugiej) stałem się członkiem grupy, która dostała za zadanie wytypowanie jednego narzędzia do modelowania ETL. Teoretycznie nasza sugestia będzie uwględniona przez Sefa Wsytkich Sefów (tego z Ameryki) i może być znacząca przy podjęciu decyzji o wyborze narzędzia ETL stosowanego w jednym z departamentów AOL przez kilka najbliższych lat.
W szranki staneły
Przeprowadziliśmy trzy grupy testów:
Moje wnioski (pokrywające się z wnioskami końcowymi przygotowanymi przez całą grupę):
Kettle - idea fajna, realizacja w kilku obszarach również.
Ale generalnie produkt stanowczo za wcześnie wyciągnięty na światło dzienne. Mam wrażenie, że przeszedł tylko bardzo pobieżne beta testy. Mnóstwo niedociągnięć i rzeczy do zrobienia. Przyznac trzeba, że w ostatniej wersji 3.0 (październik 2007) widać sporą poprawę. Ale spora poprawa z niskiego poziomu to ciągle za mało...
Ilość błędów, na które się natknąłem doprowadziła mnie do takiego stanu, że przy kolejnym problemie z najprostrzym JOIN dość szybko uwierzyłem, że to kolejny bug! Na szczęście "po przespaniu" się z tym okazało się, że dane muszą być sortowane przed wywołaniem JOIN aby ten porawnie zadziałał.
Największą wściekłość ( ;0 ) wywyoływały u mnie komunikaty typu BŁĄD (i już). W takim wypadku w zasadzie zapomnij o szukaniu pomocy w nędznej dokumentacji załączonej do pakietu. No cóż, instrukcja typu:
Komponent "FTP Upload" służy do wgrywania plików na zdalny serwer FTP.
Okienko "host Name" służy do podawania nazwy hosta itp..Już. Koniec instrukcji
...nie jest czymś dedykowanym dla inżyniera a raczej dla użytkownika (tak jak uzytkownik Windowsa do wysyłania emaili). Z drugiej strony liczba obejśc jakie czasami trzeba było wykonać stanowczo przekracza kwalifikacje tegoż Uzytkownika Windows...
Szynkość wykonywania zdefiniowanych procesów też pozostawia wiele do życzenia. Uwaga - mówimy tutaj o rozmiarach danych conajmniej 1 milion rekordów.
Pracując na tym narzędziu ma się wrażenie, że twórcy projektu chciali dobrze, robią co moga, ale narazie wychodzi im jak zwykle...
Za kilka lat przy takim tempie jak teraz Kettle nabierze stabilności i szybkości. Póki co jednak stanowczo odradzam ten produkt jeśłi zamierzamy robic coś więcej niż przerzucanie kilku tysięcy rekordów z 'dobrze wyczyszczonego' pliku .txt do bazy danych.
Ingestman - nie jest rasowym narzędziem ETL i za bardzo polega na konkretnej implementacji bazy danych jaka jest MySQL. A co będzie kiedy nagle okaże się, ze firma rezygnuje z MYSQL? To oznacza przerabianie większości procesów, przy założeniu ze w nowej DB implementacji będzie odpowiednik LOAD DATA INFILE.
Poza tym jak dla mnie aplikacja bez przyszłości - znan tylko tutaj, dosłownie przez kilku developerów. I niech tak zostanie.
Talend - podobnie jak Kettle - Idea fajna, realizacja dużo lepsza niż w wypadku Kettle.
Dużo większa szybkość i zakres oferowanych funkcji. Dla developerów Javy dodatkowy bonus - GUI uzywa frameworka Eclipse - inaczej mówiąc wygląda własnie jak Eclipse. Porównując z Kettle - we wszystkich funkcjach jest od Czajnika lepszy ;-)
Z tych trzech zatem zdecydowaliśmy się rekomendować to narzędzie.
Dziś jeszcze dokonałem deadly kiss on Kettle wysyłając do całej grupy bogato ilustrowanego emaila z cyklu: w dzisiejszej edycji "Kettle Bugs" mam do zaprezentowania...
No i teraz czekamy na decyzje z Ameryki - co będzie dalej?
Aha, zapomniałem dodać - Talend oferuje bogaty prgram szkoleń, na które zespół byłby zapewne wysłany. Najabliże Dublinowi miejsce - Paryż ;-)
Pozdrowienia.
Chcąc nie chcąc znalazłem się w AOL w grupie zajmującej się procesami ETL. Nie zebym był jakoś super szczęśliwy (przypominam, ża zatrudniany byłem jako inzynier ze wskazaniem programowania Web w Javie), ale niechtam - jeszcze jakiś czas...
Po ukończeniu Projektu Autos, przerwie świątecznej (dłuuugiej) stałem się członkiem grupy, która dostała za zadanie wytypowanie jednego narzędzia do modelowania ETL. Teoretycznie nasza sugestia będzie uwględniona przez Sefa Wsytkich Sefów (tego z Ameryki) i może być znacząca przy podjęciu decyzji o wyborze narzędzia ETL stosowanego w jednym z departamentów AOL przez kilka najbliższych lat.
W szranki staneły
- Kettle - narzędzie open source, głupie już z samej nazwy,
- Talend Open Source (http://www.talend.com/)
- Ingestman - narzędzie rozwijane wewnątrz firmy. Ponieważ było ono "szyte na miarę" już na wstepie było dla mnie spalone. Tak naprawdę to taki interpreter skryptu. Obróbka danych zawsze zaczyna się załadowaniem danych do MySQL poprzez nieśmiertelne LOAD DATA INFILE.... Spisuje się dobrze do wybranych zadań (proste procesy) ale jak dla mnie to żadne z tego rasowe narzedzie ETL. Ot tak naprawdę program w Javie który łączy się z bazą wykonuje zestaw poelceń SQL z nakładką WWW do monitorowania.
Przeprowadziliśmy trzy grupy testów:
- Podstawowe operacjie obróbki danych: join, de-dup (unique rows), sortowanie, wysłanie danych do kilku plikół w różnych formatach. Pliki wejściowe w formacie CSV który nie powinien sprawiać żadnego problemu z odczytaniem.
- Duży i bardzo skomplikowany plik wejściowy. XML z wieloma zagnieżdżeniami, relacjami 0 lub więcej zagnieżdżonych elelementów itp.
- Wielki, paskudnie zagmatwany plik wejściowy TSV. Jedno z pól wejściowych zawierało dane wprowadzane prosto przez userów. Czyli było tam wszystko: TABY, nowe linie, fragmenty HTML, wypunktowania z enterem, apostrofy, cudzysłowa itp... ;-)
Moje wnioski (pokrywające się z wnioskami końcowymi przygotowanymi przez całą grupę):
Kettle - idea fajna, realizacja w kilku obszarach również.
Ale generalnie produkt stanowczo za wcześnie wyciągnięty na światło dzienne. Mam wrażenie, że przeszedł tylko bardzo pobieżne beta testy. Mnóstwo niedociągnięć i rzeczy do zrobienia. Przyznac trzeba, że w ostatniej wersji 3.0 (październik 2007) widać sporą poprawę. Ale spora poprawa z niskiego poziomu to ciągle za mało...
Ilość błędów, na które się natknąłem doprowadziła mnie do takiego stanu, że przy kolejnym problemie z najprostrzym JOIN dość szybko uwierzyłem, że to kolejny bug! Na szczęście "po przespaniu" się z tym okazało się, że dane muszą być sortowane przed wywołaniem JOIN aby ten porawnie zadziałał.
Największą wściekłość ( ;0 ) wywyoływały u mnie komunikaty typu BŁĄD (i już). W takim wypadku w zasadzie zapomnij o szukaniu pomocy w nędznej dokumentacji załączonej do pakietu. No cóż, instrukcja typu:
Komponent "FTP Upload" służy do wgrywania plików na zdalny serwer FTP.
Okienko "host Name" służy do podawania nazwy hosta itp..Już. Koniec instrukcji
...nie jest czymś dedykowanym dla inżyniera a raczej dla użytkownika (tak jak uzytkownik Windowsa do wysyłania emaili). Z drugiej strony liczba obejśc jakie czasami trzeba było wykonać stanowczo przekracza kwalifikacje tegoż Uzytkownika Windows...
Szynkość wykonywania zdefiniowanych procesów też pozostawia wiele do życzenia. Uwaga - mówimy tutaj o rozmiarach danych conajmniej 1 milion rekordów.
Pracując na tym narzędziu ma się wrażenie, że twórcy projektu chciali dobrze, robią co moga, ale narazie wychodzi im jak zwykle...
Za kilka lat przy takim tempie jak teraz Kettle nabierze stabilności i szybkości. Póki co jednak stanowczo odradzam ten produkt jeśłi zamierzamy robic coś więcej niż przerzucanie kilku tysięcy rekordów z 'dobrze wyczyszczonego' pliku .txt do bazy danych.
Ingestman - nie jest rasowym narzędziem ETL i za bardzo polega na konkretnej implementacji bazy danych jaka jest MySQL. A co będzie kiedy nagle okaże się, ze firma rezygnuje z MYSQL? To oznacza przerabianie większości procesów, przy założeniu ze w nowej DB implementacji będzie odpowiednik LOAD DATA INFILE.
Poza tym jak dla mnie aplikacja bez przyszłości - znan tylko tutaj, dosłownie przez kilku developerów. I niech tak zostanie.
Talend - podobnie jak Kettle - Idea fajna, realizacja dużo lepsza niż w wypadku Kettle.
Dużo większa szybkość i zakres oferowanych funkcji. Dla developerów Javy dodatkowy bonus - GUI uzywa frameworka Eclipse - inaczej mówiąc wygląda własnie jak Eclipse. Porównując z Kettle - we wszystkich funkcjach jest od Czajnika lepszy ;-)
Z tych trzech zatem zdecydowaliśmy się rekomendować to narzędzie.
Dziś jeszcze dokonałem deadly kiss on Kettle wysyłając do całej grupy bogato ilustrowanego emaila z cyklu: w dzisiejszej edycji "Kettle Bugs" mam do zaprezentowania...
No i teraz czekamy na decyzje z Ameryki - co będzie dalej?
Aha, zapomniałem dodać - Talend oferuje bogaty prgram szkoleń, na które zespół byłby zapewne wysłany. Najabliże Dublinowi miejsce - Paryż ;-)
Pozdrowienia.

