Business/Talend

Talend Studio와 TAC를 이용한 ETL 데모

안녕하세요 씨앤텍시스템즈 김준형입니다.

이번 포스트는 Talend 기능에 대해서 정리해 보았습니다. 

Oralce의 테이블을 호출하고 ETL 기능을 수행하면서 Talend 기능을 살펴보겠습니다.

 

 

Talend Studio의 실행환경은 윈도우에서 진행하였습니다.

TAC(Talend Administrator Center)는 Linux 환경에 설치하고 윈도우에서 Web환경에서 진행했습니다.

 

먼저 Talend Studio 실행화면입니다.

여기서 Local에 Project를 만들고 고를 수 있고, TAC에서 만든 프로젝트를 연결할 수 있습니다.

 

Talend Studio 메인화면입니다.

왼쪽 Repository에서 Job을 만들고 Database를 연결해서 불러올 수 있습니다.

가운데 설정창에서 옵션을 수정하거나 Job을 실행시킬 수 있습니다.

오른쪽 Palette에서 다양한 Talend 기능들을 Drag & Drop으로 Job을 만들 수 있습니다.

 

먼저 왼쪽 Repository에서 연결해 둔 Oracle에서 Table 하나를 Drag & Drop으로 불러오겠습니다.

 

테이블과 테이블을 tMap 기능을 이용해서 이어줄 수 있습니다.

 

tMap을 눌러 들어오면 다음과 같이 모달창을 볼 수 있습니다.

여기에서는 컬럼명을 수정하거나 타입을 바꿀 수 있고 원하는 컬럼만 Target에 넣을 수 있습니다.

 

컬럼수가 많을때는 Auto map 기능을 통해서 컬럼들을 자동으로 이어줄 수 있습니다.

 

Subjob을 사용하지 않을 때는 Deactivate로 Job에서 잠시 제외할 수 있습니다.

 

다음엔 다음과 같이 2개의 테이블을 하나의 테이블로 이행해 보겠습니다.

 

tMap에 들어오면 다음과 같이 왼쪽에 테이블 2개 오른쪽에 Target테이블 1개 배치되어 있습니다.

 

먼저 두 테이블의 ID 컬럼을 이어서 연결합니다.

 

다음과 같이 두개의 테이블이 ID 컬럼으로 키값이 연결되었습니다.

 

왼쪽 컬럼들을 선택해서 Target으로 옮길 수 있습니다.

컬럼을 선택할 때 Shift나 CTRL키를 이용해서 다량으로 선택할 수 있습니다.

 

String Type으로 되어있는 EXTIME 컬럼을 Date타입으로 변경해 보겠습니다.
가운데 Talend 함수를 하나 만들고 EXTIME 컬럼을 옮겨서 위치시겠습니다.

그 후에 가운데 ...을 클릭해서보면

 

다음과 같은 Talend 함수창을 볼 수 있습니다.

Talend Studio는 JAVA로 이루어져 있기 때문에 다양한 JAVA 함수를 그대로 사용할 수 있습니다.

 

TalendDate 함수중에 parseDate 함수를 이용해서 String -> Date 타입으로 변경해 보겠습니다.

parseDate를 더블클릭하여 본문에 띄워주시고, 데이터 형식에 맞게 날짜 형식을 변경해주고, 마지막 변수에 가져온 EXTIME 을 넣습니다. 그 후에 OK를 눌러주면

 

다음과 같이 가운데 함수안으로 들어가게 되고, 오른쪽 Target으로 Drag해서 옮깁니다.

수정된 컬럼은 이름이 다르게 되어있기 때문에 오른쪽 밑에서 원하는 이름으로 변경한 뒤에 Date Pattern을 맞춥니다.

Date Pattern에 커서를 두고 CTRL+Space 키를 누르면 Pattern을 고를 수 있습니다.

 

이제 완성한 Job을 실행해 보겠습니다.

Target쪽 테이블을 눌러 옵션을 보면 Action on table 항목이 있습니다.

데이터 이행을 할 때 Target쪽에 만들어진 테이블이 없으면 만들고 넣어라 할 수도 있고,

Truncate 후에 넣을수도 있습니다. 상황에 맞게 Option을 선택하면 되겠습니다.

 

Run 탭에 와서 실행시킬 수 있습니다.
Run 탭에서는 실행관련된 다양한 옵션을 수정할 수 있습니다.

병렬로 실행할 수 있는 옵션과 JAVA기반 이기 때문에 JAVA RAM할당을 변경할 수도 있고,

Job을 실행시킬 Job Server를 고를 수 있습니다.

 

Job을 실행시키면 진행과정을 실시간으로 확인할 수 있고, 넘어가는 속도와 평균을 알 수 있습니다.

오류가 생길 경우 화면에서 확인 가능하고 Console 창에서 오류 이유를 찾을 수 있습니다.

 

다음은 데이터 이행중에 tFilterRow 기능을 통해서 필터에 해당하는 값만 뽑아내서 Target에 넣는 기능입니다.

tFilterRow를 클릭해서 상황에 맞는 옵션을 설정해 줄 수 있습니다.

 

다음과 같이 필터에 해당하는 28rows만 Target에 이동했습니다.

이처럼 다양한 ETL 기능들을 Palette에서 골라서 사용할 수 있습니다.

 

이제 만들어진 Job을 TAC를 이용해서 스케줄링 작업을 해보겠습니다.

해당하는 Job을 클릭하고 Build Job을 클릭합니다.

 

다음과 같이 옵션과 위치를 지정해주고 Job을 Zip파일로 압축하겠습니다.

압축할 때 Context를 이용해서 Database연결 변수나 파일위치 변수를 선택해 줄 수 있습니다.

 

그럼 이제 TAC로 넘어오도록 하겠습니다.

TAC는 리눅스에 설치했고, 윈도우 Web으로 들어온 상태입니다.

TAC는 유저관리, 프로젝트 관리, 스케줄링 관리, 모니터링 등 모든 진행상황을 확인하고 관리할 수 있습니다.

먼저 로그인을 하겠습니다.

 

다음과 같이 왼쪽에 다양한 메뉴를 확인할 수 있습니다.

먼저 User 관리메뉴입니다.

사용자를 만들고 수정하고 지울 수 있고, 권한을 부여해서 권한관리도 수행할 수 있습니다.

 

다음은 Project를 관리할 수 있는 메뉴입니다.

Talend Project는 git과 연결해서 다른 user와 Job을 공유해서 사용할 수 있습니다.

Job은 한명이 수정중이면 다른 user는 수정할 수 없고 실행만 시킬 수 있습니다.

 

Project를 user당 권한을 부여할 수 있습니다.

Read / Write 권한을 나누어 관리 할 수 있습니다.

 

다음은 Job CONDUCTOR 입니다.

이 메뉴에서는 Job을 스케줄에 올릴 수 있고 시간 설정이 가능합니다.

Task를 하나 만들고 항목들을 입력하고 Talend Studio에서 Build해서 만든 Job zip파일을 불러오겠습니다.

 

다음과 같이 Job을 불러올 수 있습니다.

Job을 불러올 때는 Talend Studio에서 TAC에 Project를 연결해서 Job을 만들어야 넣을 수 있습니다.

 

상단에 Run을 이용해서 실행해 보면 실행되는 Job을 실시간으로 확인할 수 있습니다.

이때 사용되는 Job Server는 Linux에 설치된 Job Server를 이용해서 실행하고 있습니다.

 

아래에 위치한 Triggers 탭을 이용해서 Job이 실행될 시간을 정할 수 있습니다.

Trigger를 하나 만들고 오른쪽 옵션에서 시간과 interval을 입력해서 추가할 수 있습니다.

 

실행중이거나 실행 완료된 Task는 모니터링 메뉴에서 확인 가능하고, 실패시 오류 로그나 이유를 찾아 볼 수 있습니다.

 

이렇게 이번 포스트에는 Talend Studio의 기능과 TAC의 기능을 살펴보았습니다.

다음엔 더 다양한 Talend의 기능을 소개해보고 실제 사례와 경험을 포스팅하겠습니다.

 

감사합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90