Ucząc się narzędzia Talend Studio nie możemy pominąć komponentów dedykowanych dla baz danych. Są one nieodzownych element przetwarzania danych. Baza danych prawie zawsze jest obiektem docelowym, źródłowym albo jednocześnie obydwoma z nich.

W tym szkoleniu pokaże:

  • jak połączyć się do bazy danych,
  • jak utworzyć tabelę z użyciem komponentu Talend,
  • jak pobrać dane z bazy danych i jak je zapisać w bazie,
  • jak filtrować i agregować dane w Talend.

Tworzymy połączenie do bazy danych

Najpierw utwórzmy w metadanych połączenie do bazy danych – ja będę używać bazy MySQL.

W repozytorium wybierz Metadane -> Db Connections -> Create Connection

Pojawi się okno, w którym musisz podać nazwę połączenia do bazy danych. Pozostałe pola są opcjonalne. Moje połączenie będzie się nazywać MySQL-Tutorial. Następnie wybierz Next, aby przejść dalej.

Wybierz typ bazy danych (u mnie MySQL), podaj login (nazwa użytkownika), hasło oraz namiary na  serwer. Pole DataBase jest opcjonalne.

Sprawdź swoje połączenie wybierając Test connection.

Powinieneś otrzymać następujący komunikat: “<Your database name>” connection successful.

Jeśli udało się nawiązać połączenie wybierz OK a następnie Finish, aby zamknąć kreator połączenia.

Tworzymy tabele używając metadanych

Najpierw musimy utworzyć nowy proces integracyjny, u mnie będzie on się nazywał JOB_100_30_DB. Następnie wyszukajcie w palecie komponentów tCreateTable bądź zacznijcie wpisywać jego nazwę na płótnie designera:

W zakładce Component view zmieńcie Property type na Repository, a następnie kliknijcie w niewielki przycisk […]. Otworzy wam się okno z możliwością wyboru bazy danych – wybierzcie utworzone przed chwilą połączenie (u mnie to MySQL-Tutorial).

Po wskazaniu połączenia z repozytorium, ustawienia bazy danych zostaną automatycznie załadowane do komponentu tCreateTable. Tabelę, którą właśnie tworzymy posłuży nam jako tabela docelowa naszego procesu. Wpiszmy jej nazwę jako CUSTOMER oraz zmieńmy ustawienia tabeli jako Create table if not exits.

Musimy jeszcze dodać schemat. W tym celu wybierz Edit schema […], a następnie dodaj kolumnę ORG_ID (Integer), SUM_SALARY (BigDecimal) oraz CNT_CUST (Integer).

Dodanie komponentów bazy danych

W tym kroku dodamy komponent źródłowy i docelowy. W zależności jaką bazę danych wybraliście, znajdźcie odpowiedni dla niej komponent, np. dla MySQL będzie to tMysqlInput, dla Oracle’a – tOracleInput. Zmieńcie Property Type na Respository i wskażcie połączenie do bazy danych. Następnie wprowadźcie nazwę tabeli jako CUSTOMER_SRC (poniżej znajdziesz plik z przykładowymi danymi do pobrania) oraz zaraz wybierzemy Schema jako Repository

Dane źródłowe przetwarzane w niniejszym szkoleniu, prezentują się następująco:

Aby mieć możliwość zaczytania schematu tabeli automatycznie, musimy dodać ją do repozytorium. W tym celu wybierz swoje połączenie bazy danych i kliknij Retrive Schema

W nowym oknie możesz wyfiltrować nazwę tabeli lub po prostu kliknąć Next – wtedy Talend przeszuka wszystkie obiekty dostępne w bazie danych. Następnie rozwiń listę tabel dostępnych w  bazie i wybierz CUSTOMER_SRC. Dalej kliknij Next.

W kolejnym kroku zobaczysz schemat tabeli. Jeśli nie chcesz go modyfikować po prostu kliknij Finish.

Możemy teraz wrócić do ustawień komponentu tMysqlInput. W wierszu Schema kliknij […], a następnie wybierz nazwę tabeli CUSTOMER_SRC.

Pamiętaj też, aby w ustawieniach komponentu kliknąć Guess Query, który dopasuje zapytanie SQL dla wskazanej tabeli.

Czas dodać komponent tMysqlOutput. Ustaw w Component View Property Type jako Repository, nazwę tabeli ustaw jaki CUSTOMER (typ wbudowany).

Filtrowanie i agregacja danych

Dodaj komponent tFilterRow, który będzie filtrował dane (wykluczymy z dalszego przetwarzania ORG_ID = 20). Aby móc modyfikować jego ustawienia, musimy połączyć go z tMysqlInput. 

Dodajmy przy pomocy [+] rekord w tabeli i ustawmy odpowiednio InputColumn jako ORG_ID (kolumna po jakiej będziemy filtrować dane), Operator jako Not equal to oraz Value jako 20.

W kolejnym kroku dodamy komponent tAggregateRow, który zagreguje dane według ORG_ID i wyliczy sumę pola SALARY oraz liczbę pola CUSTOMER dla danego ORG_ID. W tym celu kliknij Edit Schema a następnie dodaj kolumny zgodnie z poniższym screen’em:

Połącz tAggregateRow z tFilterRow bez propagacji schematu. W tabeli Group by dodaj kolumnę ORG_ID, a w tabeli Operations dodaj SUM_SALARY oraz CNT_CUST oraz odpowiednie funkcje sum (SALARY) oraz count (ID).

Uruchomienie procesu

Na koniec musimy połączyć tCreateTable z pozostałymi komponentami. Użyjemy w tym celu wyzwalacza procesu On Subjob Ok. O podprocesach (tuaj: subjob) będziemy mówić w kolejnych częściach szkolenia. Teraz po prostu połączmy tCreateTable z tMysqlInput. Wtym celu kliknijmy na tCreateTable prawym przyciskiem myszy Trigger -> On Subjob Ok.

W ostatecznej wersji nasz proces wygląda następująco:

Przejdziemy teraz do zakładki Run view i uruchomimy proces wybierając Run.

Następnie sprawdzimy dane w tabeli CUSTOMER:

SELECT * FROM CUSTOMER;

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

Leave a Reply

avatar
  Subscribe  
Powiadom o
Close Menu