EXAMPLE을 사용한 Informatica의 조이너 변환

⚡ 스마트 요약

Informatica의 Joiner 변환은 일치하는 조건에 따라 두 개의 이기종 소스를 결합하는 활성 연결 객체이며, 세부 파이프라인이 이를 통해 스트리밍되는 동안 마스터 파이프라인은 메모리에 캐싱됩니다.

  • 🧩 마스터와 디테일: 두 개의 입력 파이프라인이 변환에 투입되며, 포트 탭에서 어느 파이프라인이 마스터 역할을 할지 결정합니다.
  • 💾 마스터가 캐시되었습니다: 마스터 파이프라인은 항상 인덱스와 데이터 캐시에 구축되므로 규모가 작은 소스는 그곳에 위치해야 합니다.
  • 🔗 네 가지 결합 유형: Normal, Master Outer, Detail Outer 및 Full Outer는 조인 후 일치하지 않는 행 중 어떤 행이 남을지 결정합니다.
  • 🧪 실제 예제: EMP와 DEPT는 deptno를 기준으로 일반 조인을 사용하여 결합되고 EMP_DEPTNAME에 로드됩니다.
  • ⚖️ 오직 평등만을 추구합니다: 조인 조건은 같음 연산자를 사용하여 포트를 비교하며, 두 포트는 하나의 데이터 형식을 공유해야 합니다.
  • 정렬된 입력: 조건 포트를 기준으로 두 파이프라인을 모두 사전 정렬하면 세션 중에 디스크 입력 및 출력이 차단됩니다.

Informatica의 조이너 변환

조이너 변환이란 무엇입니까?

조이너 변환은 Informatica에서 조인을 생성할 수 있는 옵션을 제공하는 활성 연결 변환입니다. 조이너 변환을 사용하여 생성된 조인은 데이터베이스의 조인과 유사합니다. 조이너 변환의 장점은 이기종 시스템(서로 다른 데이터베이스)에 대한 조인을 생성할 수 있다는 것입니다.

Joiner 변환에서는 조인에 사용할 두 가지 소스가 있습니다. 이 두 소스는 다음과 같습니다.

  • 마스터 소스
  • 상세 소스

Joiner 변환의 속성에서 어떤 데이터 소스를 마스터 소스로, 어떤 소스를 상세 소스로 사용할지 선택할 수 있습니다.

실행 중에 마스터 소스는 조인 목적으로 메모리에 캐시됩니다. 따라서 레코드 수가 적은 소스를 마스터 소스로 선택하는 것이 좋습니다. 마스터 파이프라인은 두 개의 캐시에 저장됩니다. 하나는 조인 조건에 사용되는 값을 저장하는 인덱스 캐시이고, 다른 하나는 나머지 행 데이터를 저장하는 데이터 캐시입니다.

조이너 변환의 조인 유형

속성 탭의 조인 유형 속성은 일치하는 행을 찾지 못한 행에 대해 수행할 작업을 결정합니다. 조이너 변환을 사용하여 다음과 같은 조인을 생성할 수 있습니다.

  1. 마스터 외부 조인 마스터 외부 조인에서는 상세 소스의 모든 레코드가 조인 결과로 반환되고 마스터 소스에서는 일치하는 행만 반환됩니다.
  2. 세부 외부 조인 – 상세 외부 조인에서는 상세 소스에서 일치하는 행만 반환되고 마스터 소스에서는 모든 행이 반환됩니다.
  3. 전체 외부 조인 – 완전 외부 조인에서는 두 소스의 모든 레코드가 반환됩니다.
  4. 일반 조인 일반적인 조인에서는 두 소스에서 일치하는 행만 반환됩니다.

마스터 외부 접합과 상세 외부 접합은 왼쪽 외부 접합과 동일합니다. SQL각 유형은 한 소스의 모든 행을 유지하고 다른 소스에서는 일치하는 행만 유지합니다. 아래 표는 네 가지 유형을 해당 SQL 유형과 비교한 것입니다.

조인 유형 마스터에서 유지된 행 세부 정보에서 유지된 행 SQL에 해당하는 내용
일반 조인 일치하는 항목만 일치하는 항목만 내부 조인
마스터 외부 조인 일치하는 항목만 모든 행 상세 소스의 왼쪽 외부 조인
세부 외부 조인 모든 행 일치하는 항목만 마스터 소스의 왼쪽 외부 조인
전체 외부 조인 모든 행 모든 행 전체 외부 조인

조인 유형은 구조적 선택 사항이 아니라 속성이므로 맵을 다시 빌드하지 않고도 나중에 변경할 수 있습니다.ping 또는 포트를 다시 연결하는 것.

Informatica에서 Joiner 변환을 사용하는 방법

이 예제에서는 Joiner 변환을 사용하여 emp 테이블과 dept 테이블을 조인합니다. 아래의 8단계를 순서대로 따라 진행하세요.ping 디자이너.

단계 1) 아래 스크립트를 사용하여 데이터베이스에 EMP_DEPTNAME이라는 새 대상 테이블을 생성하고 Informatica 대상에 해당 테이블을 가져옵니다.

위의 emp_deptname.sql 파일을 다운로드하세요.

단계 2) 새 항목 만들기 지도ping 소스 테이블 "EMP"와 "DEPT" 및 이전 단계에서 생성한 대상 테이블을 가져옵니다. 이제 아래 그림과 같이 세 가지 정의가 캔버스에 모두 표시됩니다.

지도ping EMP 및 DEPT 소스와 EMP_DEPTNAME 대상 정의가 포함된 디자이너 캔버스

단계 3) 변환 메뉴에서 만들기 옵션을 선택합니다. 그런 다음 아래 그림과 같은 변환 만들기 창에서

  1. 조이너 변환 선택
  2. 변환 이름 "jnr_emp_dept"를 입력하세요.
  3. 생성 옵션 선택

Joiner를 선택하고 jnr_emp_dept라는 이름을 입력한 후 변환 생성 창을 엽니다.

단계 4) 양쪽에서 모든 열을 끌어서 놓습니다. 소스 한정자 Joiner 변환으로 이동합니다. 스크린샷에서 볼 수 있듯이 두 파이프라인 모두 이제 jnr_emp_dept에 연결되었습니다.

두 소스 한정자의 열을 jnr_emp_dept 조이너 변환으로 드래그했습니다.

단계 5) Double Joiner 변환을 클릭한 다음 변환 편집 창에서

  1. 조건 탭 선택
  2. 새 조건 추가 아이콘을 클릭하세요.
  3. 마스터 및 세부 열 목록에서 부서 번호를 선택하세요.

이제 조건 탭에는 부서 번호에 대한 단일 조인 조건이 포함됩니다.

마스터 및 디테일 열에서 deptno가 선택된 Joiner 변환의 조건 탭

단계 6) 그럼 같은 창에서

  1. 속성 탭 선택
  2. 조인 유형으로 일반 조인을 선택하세요
  3. 확인 버튼을 선택하세요

다음으로는 조인 유형이 설정된 속성 탭이 표시됩니다.

조인 유형이 일반 조인으로 설정된 Joiner 변환의 속성 탭

성능 최적화를 위해 레코드 수가 더 적은 소스 테이블 파이프라인에 마스터 소스를 할당합니다. 이 작업을 수행하려면 다음 단계를 따르세요.

단계 7) Double Joiner 변환을 클릭하여 변환 편집 창을 연 다음

  1. 포트 탭 선택
  2. 마스터로 만들려는 특정 소스의 열을 선택하세요.
  3. OK를 선택합니다

포트 탭에서는 아래 그림과 같이 선택한 파이프라인을 마스터로 지정합니다.

마스터 플래그가 하나의 소스 파이프라인에 대해 설정된 Joiner 변환의 포트 탭

단계 8) Joiner 변환의 관련 열을 대상 테이블에 연결합니다. 맵ping 이제 두 소스 모두에서 EMP_DEPTNAME으로 조인하여 실행됩니다.

jnr_emp_dept 테이블에서 EMP_DEPTNAME 대상 테이블로 연결된 조인된 열

이제 지도를 저장하세요ping 생성 후 실행합니다. 세션 워크플로우 이를 위해 Informatica Joiner를 사용하여 조인을 생성하고 두 테이블에서 관련 세부 정보를 가져옵니다.

조이너 변환 속성

속성 탭에는 조인 유형 외에도 더 많은 설정이 있습니다. 아래 설정은 조인에 사용되는 메모리 양과 캐시 파일이 기록되는 위치를 제어합니다.

환경 그것이 제어하는 ​​것
조인 유형 일반, 마스터 외부, 상세 외부 또는 전체 외부 중에서 선택할 수 있습니다. 일치하지 않는 행을 유지할지 여부를 결정합니다.
가입 조건 마스터-디테일 포트 쌍 목록을 같음 연산자와 비교합니다. 여러 조건을 AND로 결합합니다.
정렬된 입력 두 파이프라인 모두 조건 포트별로 정렬되어 도착하므로 통합 서비스가 디스크 입력 및 출력을 최소화할 수 있음을 선언합니다.
마스터 정렬 순서 정렬된 입력 데이터와 함께 사용되는 마스터 소스 데이터의 정렬 순서입니다.
캐시 디렉터리 인덱스 및 데이터 캐시 파일이 생성되는 디렉터리입니다. 기본값은 프로세스 변수 `$PMCacheDir`입니다.
조이너 데이터 캐시 크기 마스터 행 데이터를 저장하는 데이터 캐시의 크기입니다. 기본값은 자동이며, 이 경우 통합 서비스에서 캐시 크기를 자동으로 조정합니다.
조이너 인덱스 캐시 크기 마스터 조건 값을 저장하는 인덱스 캐시의 크기입니다. 기본값은 자동입니다.
변환 범위 조인을 각 트랜잭션, 모든 수신 데이터 또는 행 수준 범위에 적용합니다.

정렬된 입력은 가장 먼저 시도해 볼 만한 설정입니다. 두 파이프라인이 조건 포트별로 정렬되어 도착하면 통합 서비스는 매칭을 시작하기 전에 전체 마스터 소스를 보유할 필요가 없습니다. 이는 매칭 과정에서 적용되는 것과 동일한 원칙입니다. 성능 조정 다른 캐시된 변환.

조이너 변환 규칙 및 제한 사항

일부 제한 사항은 지도를 사용할 때만 나타납니다.ping 검증이 완료되었으므로 포트가 연결되기 전에 해당 정보를 파악하는 것이 더 저렴합니다.

  • 오직 평등만이 답이다. 조인 조건은 같음 연산자를 사용하여 포트를 비교합니다. 보다 큼, 보다 작음 또는 같지 않음과 같은 비교 연산자는 조건에서 허용되지 않습니다.
  • 데이터 형식이 일치합니다. 조건의 두 포트는 모두 동일한 데이터 형식을 가져야 합니다. 디자이너는 이를 검증하므로, 데이터 형식이 일치하지 않는 열은 먼저 변환해야 하며, 일반적으로 표현식 변환을 사용합니다.
  • 상위 시스템에 업데이트 전략이 없습니다. 입력 파이프라인 중 하나라도 업데이트 전략 변환을 포함하는 경우 조이너 변환을 사용할 수 없습니다.
  • 순서 없음 Generator 바로 직전에. 순서 연결하기 Generator Joiner 바로 상류의 변환은 지원되지 않습니다.
  • 캐싱은 끌 수 없습니다. 마스터 파이프라인은 항상 캐시되므로 소스 크기가 작은 것이 마스터 측에 있어야 하며, 대규모 조인에서 캐시 크기 조정이 중요한 이유입니다.

세 개의 소스를 결합하려면 각각 마스터 파이프라인과 디테일 파이프라인을 하나씩만 허용하기 때문에 두 개의 Joiner 변환을 연결해야 합니다. 두 번째 소스가 행 단위로 읽는 작은 참조 테이블인 경우에는 다른 변환이 필요합니다. 조회 변환 더 간단한 디자인인 경우가 많습니다.

자주 묻는 질문

2. 각 조이너는 마스터 파이프라인 하나와 디테일 파이프라인 하나를 수용하므로, 세 개의 소스를 결합한다는 것은 그중 두 개를 연결하는 것을 의미합니다. 즉, 첫 번째 소스의 출력이 두 번째 소스의 입력 파이프라인이 됩니다. 일반적으로 n개의 소스에는 n-1개의 조이너가 필요합니다.

두 테이블이 동일한 관계형 데이터베이스에 있는 경우, 소스 한정자(Source Qualifier)는 해당 조인을 데이터베이스로 푸시하여 캐싱을 완전히 방지합니다. 두 소스가 서로 다르거나 이미 별도의 파이프라인에 있는 경우에만 조이너(Joiner)를 사용하십시오.

인덱스 캐시는 조인 조건에 명시된 마스터 포트 값을 저장하고, 데이터 캐시는 조인 결과로 반환된 나머지 마스터 행 데이터를 저장합니다. 두 캐시 모두 마스터 파이프라인에서만 생성되며, 디테일 파이프라인에서는 생성되지 않습니다.

아니요. 어느 한쪽 포트에 null 값이 있으면 SQL에서와 마찬가지로 조건이 충족되지 않으므로 해당 행은 일치하지 않는 것으로 처리됩니다. 조인해야 하는 상위 포트에서 null 값을 기본값으로 대체하세요.

예. 소스 정의를 맵에 추가하세요.ping 두 개의 별도 파이프라인이 존재하도록 두 번 처리한 다음, 하나는 마스터 측에, 다른 하나는 상세 측에 입력합니다. 이것이 관리자 열을 직원 이름으로 변환하는 일반적인 방법입니다.

네, 바로 그 이질적인 사례가 변환이 존재하는 주된 이유입니다. 플랫 파일 파이프라인과 관계형 파이프라인은 마치 두 개의 데이터베이스 테이블처럼 일치하는 포트를 기준으로 조인되는데, 조인은 통합 서비스 내부에서 이루어지기 때문입니다.

AI 어시스턴트는 두 소스를 모두 분석하여 조인 키 후보를 제안하고, 행 수를 추정하여 행 수가 더 적은 쪽을 마스터로 선택하며, 결과 집합을 폭발적으로 증가시킬 수 있는 편향되거나 null 값이 많은 열을 표시합니다. 머신 러닝 기반 어드바이저는 캐시 크기 옵션의 순위도 매깁니다.

Copilot은 해당 SQL 쿼리와 데이터 형식 변환을 신속하게 생성하여 포트 준비 작업을 단축합니다. 하지만 캐시 크기나 행 수를 확인할 수 없으므로 모든 제안 사항을 맵과 비교하여 검증해야 합니다.ping 저장하기 전에.

이 게시물을 요약하면 다음과 같습니다.