본문 바로가기

TALEND15

[TALEND] sequence 만들기 이번 포스팅을 통해 Talend 내장 함수를 사용하여 sequence를 만드는 방법을 알아보자. sequence를 생성해야하는 때는 상황에 따라 다르겠지만 숫자와 문자열 sequence로 구분하여 두 가지 예시를 살펴보겠다. 첫번째 숫자 sequence를 생성하는 방법을 먼저 살펴보자. 작업 대상 테이블의 데이터은 다음과 같다. regions 테이블의 display_order 칼럼 값을 채워줄 때 display_order는 continent_id에 따라 달라진다. 즉, continent_id를 기준으로 그룹핑한 데이터에 순차적인 display_order 값을 주는 것이다. Talend로 아래와 같이 row_number() 함수로 만들 수 있는 sequence를 구현해보겠다. 본격적으로 위 내용을 구현하기.. 2021. 1. 1.
[TALEND] 탈렌드로 간단 배치 프로그램 생성 이번 포스팅에서는 탈렌드로 만든 job을 특정 시간에 주기적으로 자동 실행하는 배치 프로그램을 생성하는 방법을 소개하겠다. 우선 실용적인 예시를 들자면 개인정보보호법에 따라 모든 기업이 가진 고객 정보는 특정 기간이 지나면 모두 삭제되어야 한다. 이때, 고객 주문 정보를 가지고 있는 테이블에서 expire_date가 지난 데이터를 삭제하고 삭제된 데이터를 history 테이블에 옮기는 작업이 필요하다고 가정하자. 이 작업을 수행하는 Job을 Talend로 먼저 만들어볼 것이다. 우선 작업 대상 테이블의 데이터를 확인해보자. order_m 테이블의 expire_date 칼럼을 주목하자. 이 칼럼을 기준으로 order_m 데이터를 삭제할 것이다. 그리고 삭제된 데이터의 order_no와 product_no .. 2020. 12. 30.
[TALEND] 병렬/순차적 프로그램 실행 이번 포스팅에서는 하나의 Job을 여러개의 subjob으로 구분하여 병렬로 수행하는 방법과 여러 개의 job을 순차적으로 수행하는 방법을 알아보자. employee 데이터를 가진 employee 테이블의 데이터는 위와 같다. 이때, employees 의 last_name에 따라 알파벳 별로 별도의 테이블에 저장해야한다고 할 때, Talend를 사용하여 작업을 완료해보자. 우선 새로운 Job을 만든다. 그리고 소스가 될 employees 테이블을 job에 가져온다. component를 더블클릭하면 상세 연결정보와 데이터 추출 쿼리를 볼 수 있다. 연결 정보는 보안상 가려두었다. 추출 쿼리를 주목해보자. 지금은 아무런 조건 없이 전체 데이터를 가져오고 있으나 우리는 employees 테이블에서 last_na.. 2020. 12. 30.
[TALEND] 다른 DB 테이블의 데이터 비교 (ORACLE - MARIA) Talend를 사용하여 아주 쉽게 서로다른 DB의 두 테이블 데이터를 비교해보자. 두 테이블 모두에 있는 데이터를 추출해볼것이다. 과정은 다음과 같다. 1. InputDB1: oracleDB 테이블 가져오기 2. InputDB2: mariaDB 테이블 가져오기 3. InputDB1과 InputDB2의 데이터를 비교하여 inner join되는 결과값만 추출 4. 로그로 출력 / 제 3의 타겟 테이블에 이관 본격적인 작업 진행 전 두 DB의 테이블에 어떤 데이터가 들어있는지 살펴보자. (이 포스팅을 작성하기 위해 두 DB에 동일한 칼럼명과 칼럼 타입을 가진 두 테이블을 생성하였고 두 테이블이 같은 데이터를 가지도록 미리 데이터를 어느정도 넣어두었다.) 첨부된 사진으로 보다시피 MariaDB와 Oracle의 .. 2020. 11. 30.
[TALEND] 두 개의 테이블에 나눠진 데이터를 하나의 테이블로 이관하는 방법 이번 포스팅에서는 A BD의 데이터를 B BD의 테이블에 이관하는 방법을 다룬 앞선 포스팅의 심화라고 할 수 있다. 두 개의 테이블에 나뉘어 저장된 데이터를 하나의 output DB에 한꺼번에 이관하는 방법을 알아볼 것이다. 1. 적당한 이름의 Job을 생성한다. 2. 이관 대상 테이블과 데이터가 이관될 테이블을 각각 가져와 팔레트에 생성한다. -> 나는 전 국가 데이터를 갖고 있는 Oracle의 countries 테이블의 데이터와 아시아 국가 데이터만 가지고 있는 countries_asia 테이블의 데이터를 outputDB인 MySQL의 countries 테이블에 이관할 것이다. 3. 두 inputDB를 합쳐줄 tUnite 컴포넌트를 팔레트에 생성한다. 1) 이때, tUnite 컴포넌트의 스키마 생성에.. 2020. 3. 30.
[TALEND] 동시에 두 개 이상의 테이블에 데이터 이관하는 방법 이번 포스팅에서는 서로 다른 DB의 데이터를 이관할 때 하나의 input에서 두 개의 output 테이블에 데이터를 동시에 이관하는 방법을 알아본다. 1. 우선 적당한 이름의 Job을 생성한다. 2. 이관 대상 데이터를 가진 Input DB와 데이터를 이관할 대상 테이블들을 팔레트에 생성한다. -> tDBInput과 tDBOutput 컴포넌트를 사용하여 Oracle DB의 JOBS라는 테이블의 데이터를 MySQL의 Jobs_temp와 jobs_temp_2 테이블에 이관할 예정 3. tMap 컴포넌트를 생성하여 세 개의 테이블을 이어준다. -> 하나의 Input DB로부터 Main row를 생성하여 tMap을 통해 매핑한 후 out1, out2 row를 통해 각각 이관 대상 테이블에 연결한다. 4. tMa.. 2020. 3. 30.
[TALEND] A DB 데이터를 B DB 테이블로 이관하는 방법 TALEND 를 사용하면 매우 쉽게 하나의 DB의 테이블 전체 데이터를 다른 DB로 이관할 수 있다. 나는 Oracle DB 의 한 테이블 전체 데이터를 MySQL DB로 이관해보겠다. 1. 우선 적당한 이름을 주어 새로운 Job 을 생성한다. 2. 이관하고자 하는 DB의 테이블을 input으로 가져와 팔레트에 생성한다. 3. Input 테이블에 담긴 데이터를 이관하고자 하는 output 테이블을 팔레트에 생성한다. 4. InputDB와 outputDB를 연결해줄 tMap 컴포넌트를 생성한다. 5. tMap 컴포넌트를 더블클릭하여 input 테이블과 output 테이블의 칼럼을 매핑해준다. 6. 실행 버튼(F6)을 눌러주면 A DB의 데이터를 B DB로 손쉽게 데이터를 이관할 수 있다. 7. 다음은 내가.. 2020. 3. 30.