sobota, 4 marca 2017

Wyszperane w Internecie cz. 1

Czy mieliście kiedyś taki problem, że musieliście przeanalizować dane albo załadować je do jednego miejsca, ale były one w różnych formatach, plikach, nawet w różnych typach plikach? Część danych było w pliku txt, część w CSV, a jeszcze inna część w bazie danych PostgreSQL i Oracle? Głowa może rozboleć od takiej kombinacji.
Ale ludzkość już z nie takich opresji wychodziła i tutaj również sobie poradziła. Mam na myśli programy typu ETL i o tym chciałbym Wam pokrótce opowiedzieć.

Skrót ETL, z angielskiego Extract, Transform, Load, właściwie mówi już wszystko, do czego służą tego typu programu. Najpierw jest Extraxt, to znaczy wyciągamy dane (tak jak wspomniałem wyżej nawet z różnych typów plików czy baz danych), następnie Transform, czyli przekształcamy dane do stanu przez nas pożądanego i Load - ładujemy dane do bazy danych, pliku itd.

To krótkie wyjaśnienie już pewnie pokazuje Ci, jak potężne jest to narzędzie i jak bardzo potrafi ono ułatwić życie.

Osobiście w pracy korzystam z jednej z dystrybucji ETL - Pentaho Kettle. Program jest bardzo prosty w konfiguracji jak i obsłudze, oraz daje duże możliwości do parametryzowania go pod swoje potrzeby.
Pierwszy przykład z brzegu - instalacja, a raczej jej brak. Program pobieramy stąd. Wypakowujemy na swoim komputerze, podajemy w pliku konfiguracyjnym liczbę pamięci RAM, jaką udostępniamy programowi i możemy działać.

Przygotowanie transformacji również nie jest skomplikowane. Polega ono na wybieraniu odpowiednich klocków i łączeniu ich, co jest zobrazowane poniżej.

Źródło: http://www.pentaho.com/product/data-integration

Społeczność Pentaho Kettle jest duża, więc nie ma większych problemów ze znalezieniem pomocy w Internecie. Pentaho ma również swoją wiki, gdzie każdy klocek transformacji jest dokładnie opisany.

Inną zaletą Pentaho Kettle jest jego szybkość. Całe przetwarzanie danych w transformacji odbywa się na poziomie pamięci RAM. Nic nie jest zapisywane na dysku twardym bez naszej wiedzy. Wiadomo, że im więcej pamięci RAM udostępnimy programowi, tym szybciej będzie on przetwarzał dane. Ogranicza nas tutaj jedynie rodzaj JAVA'y - dla 32 bitowej wersji jest to maksymalnie 1 GB, a dla 64 bitowej 2 GB RAMu.

A do czego ja używam Pentaho? Na przykład do tworzenia interfejsów między systemami i bazami danych lub do zasilania bazy danych plikami tekstowymi lub CSV. Przygotowywanie update'ów, bądź inesrtów do bazy danych zajmowałyby za dużo czasu, a że jestem leniwy (tak jak powinien być każdy informatyk), to transformacja robi wszystko za mnie.
Czyż to nie jest piękne?

Jeśli będzie chcieli jeszcze artykuły o ETL, czy Pentaho Kettle, to dajcie znać w komentarzu.

Udanego dnia!

Damian

Brak komentarzy:

Prześlij komentarz