Talend의 복잡한 목록 결합 처리를 위해 tHash Input 사용
https://github.com/kuinaein/talend-complex-merge-example
하고 싶은 일
ETL 도구Talend Open Studio for Data Integration 7.2.1을 사용합니다.
데이터베이스(테이블) A와 B가 있습니다.각각 ID, 이름 및 메일 주소 etc를 열로 저장합니다.A에도 협동 작용 B측의 ID가 있지만 협동 전에는 0이다.
그러면 데이터베이스 A에서 B로의 단방향 동기화를 진행하고 싶습니다.B측 아이디를 알면 당연히 그걸 쓰죠.명확하지 않은 경우 먼저 메일 주소가 일치하고 이어서 이름이 일치하는 것을 협업 대상의 기록으로 하고 이 ID를 사용한다.
원래의 데이터, 예를 들면 이런 느낌.
A
id
name
email
b_org_id
1
마포 주식회사
[email protected]
0
2
주식회사 이토 공무점
[email protected]
10002
3
㈜우치원예점
[email protected]
10003
4
위문부
[email protected]
0
5
오스만 대리 주식회사
[email protected]
0
B
org_id
name
email
10001
마포 주식회사
[email protected]
10002
주식회사 이토 공무점
[email protected]
10003
주식회사 우치원예점
[email protected]
10004
위문부
[email protected]
10004
위문부
[email protected]
10005
저장 성
[email protected]
(B에서 10004가 착용한 것은 오기가 아니라 사실상'조직','조직의 책임자'두 테이블을 간소화하기 위해 진행된 JOIN이다.)
창점
이 두 테이블은 결합 조건을 바꾸는 동시에 반복적으로 조합해야 한다는 것이 어려운 점이다.
Talend에서는 반복 참조를 방지하기 위해 어셈블리 간의 연결이 상당히 제한됩니다.
구체적으로 두 어셈블리의 경우 (중간에 tReplicate 등이 끼어 있어도) 이 두 확장된 연결선을 두 번 이상 교차시킬 수 없다.
같은 파일을 반복해서 읽고, tmap CROSS JOIN을 tFilter Row로 스스로 조르는 터무니없는 것도 아니다.
tHash Input/tHash Output 사용
Talend에는 테이블 데이터를 메모리에 여러 번 저장해서 사용할 수 있는 tHashInput/tHashOutput이라는 구성 요소가 있습니다.
그러나 기본적으로 적용되지 않기 때문에 파일 메뉴의 '항목 속성 편집' 을 통해 설정을 변경해야 합니다.디자이너 > 팔레트 설정을 열어 오른쪽 창의 작업 > 기술 아래의 두 구성 요소를 유효하게 합니다.
tHash Output에 저장된 데이터를 tHash Input에서 읽습니다.tHash Input은 동기화할 수 없는 tHash Output의 데이터를 읽을 수 있습니다.창고에서 패턴을 정의하는 것을 권장합니다.
(상당히 거칠지만) 출력은 이렇다.
2
주식회사 이토 공무점
[email protected]
10002
3
㈜우치원예점
[email protected]
10003
rejected
5
오스만 대리 주식회사
by_email
1
10001
by_name
4
10004
Reference
이 문제에 관하여(Talend의 복잡한 목록 결합 처리를 위해 tHash Input 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuinaein/items/b09958e5de9b0fcb1da2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 두 테이블은 결합 조건을 바꾸는 동시에 반복적으로 조합해야 한다는 것이 어려운 점이다.
Talend에서는 반복 참조를 방지하기 위해 어셈블리 간의 연결이 상당히 제한됩니다.
구체적으로 두 어셈블리의 경우 (중간에 tReplicate 등이 끼어 있어도) 이 두 확장된 연결선을 두 번 이상 교차시킬 수 없다.
같은 파일을 반복해서 읽고, tmap CROSS JOIN을 tFilter Row로 스스로 조르는 터무니없는 것도 아니다.
tHash Input/tHash Output 사용
Talend에는 테이블 데이터를 메모리에 여러 번 저장해서 사용할 수 있는 tHashInput/tHashOutput이라는 구성 요소가 있습니다.
그러나 기본적으로 적용되지 않기 때문에 파일 메뉴의 '항목 속성 편집' 을 통해 설정을 변경해야 합니다.디자이너 > 팔레트 설정을 열어 오른쪽 창의 작업 > 기술 아래의 두 구성 요소를 유효하게 합니다.
tHash Output에 저장된 데이터를 tHash Input에서 읽습니다.tHash Input은 동기화할 수 없는 tHash Output의 데이터를 읽을 수 있습니다.창고에서 패턴을 정의하는 것을 권장합니다.
(상당히 거칠지만) 출력은 이렇다.
2
주식회사 이토 공무점
[email protected]
10002
3
㈜우치원예점
[email protected]
10003
rejected
5
오스만 대리 주식회사
by_email
1
10001
by_name
4
10004
Reference
이 문제에 관하여(Talend의 복잡한 목록 결합 처리를 위해 tHash Input 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuinaein/items/b09958e5de9b0fcb1da2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Talend의 복잡한 목록 결합 처리를 위해 tHash Input 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuinaein/items/b09958e5de9b0fcb1da2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)