Informatica의 트랜잭션 제어 변환(예)
⚡ 스마트 요약
Informatica의 트랜잭션 제어 변환은 맵이 실행되는 동안 행을 커밋하거나 롤백하는 활성 연결 객체입니다.ping 실행 시, 조건문 내에 5개의 내장 변수를 사용하며, 각 행에 대해 한 번씩 평가됩니다.

거래 제어 변환이란 무엇입니까?
트랜잭션 제어는 맵 실행 중에 트랜잭션을 커밋하거나 롤백할 수 있도록 하는 능동적이고 연결된 변환 기능입니다.ping커밋 및 롤백 작업은 데이터 가용성을 보장하기 때문에 매우 중요합니다.
대량의 데이터를 처리할 때, 데이터를 대상 저장소에 커밋해야 하는 상황이 발생할 수 있습니다. 커밋이 너무 자주 발생하면 시스템에 과부하를 초래하고, 반대로 너무 늦게 발생하면 오류 발생 시 데이터 손실 가능성이 높아집니다.
따라서 유연성을 제공하기 위해 트랜잭션 제어 변환이 제공됩니다. 커밋 지점을 세션 기본값에 두는 대신, 내부 조건을 사용할 수 있도록 합니다. 지도ping 각 행별로 한 거래가 끝나는 지점과 다음 거래가 시작되는 지점을 결정합니다.
TCL 커밋 및 롤백 명령
이 변환에는 작업을 처리하는 데 사용할 수 있는 5개의 내장 변수가 있습니다. 조건은 모든 행에 대해 5개 중 하나를 반환해야 하며, 목록에 없는 값을 반환하면 통합 서비스에서 세션을 실패 처리합니다.
TC_CONTINUE_TRANSACTION
TC_CONTINUE_TRANSACTION에서는 아무런 작업도 수행되지 않으며, 데이터 로드 프로세스가 그대로 계속됩니다. 이것이 해당 표현식의 기본값입니다.
TC_COMMIT_BEFORE
TC_COMMIT_BEFORE 플래그가 설정된 경우, 현재 행을 처리하기 전에 커밋이 수행됩니다. 그런 다음 새 트랜잭션이 시작되고 현재 행이 대상에 기록됩니다.
TC_COMMIT_AFTER
TC_COMMIT_AFTER 구문에서는 현재 행의 처리가 완료된 후 커밋이 수행되고 다음 트랜잭션이 시작됩니다.
TC_ROLLBACK_BEFORE
TC_ROLLBACK_BEFORE에서는 롤백이 먼저 수행된 후 데이터가 기록 처리됩니다.
TC_ROLLBACK_AFTER
TC_ROLLBACK_AFTER에서는 데이터 처리가 완료된 후 롤백이 수행됩니다.
트랜잭션 제어 변환 속성
해당 개체는 다른 PowerCenter 변환과 마찬가지로 네 개의 탭으로 구성된 '변환 편집' 창에서 설정할 수 있습니다. 아래 단계별 설명에서 각 탭에 어떤 설정이 있는지 알면 찾는 데 드는 시간을 크게 줄일 수 있습니다.
| 탭 | 거기에 설정된 것은 무엇입니까? |
| 변환 | 변환의 이름, 설명, 그리고 객체를 재사용할 수 있는지 여부. |
| 포트 | 입력 및 출력 포트는 일반적으로 상위 변환에서 열을 끌어와서 생성됩니다. |
| 등록 | 해당 필드 옆에 있는 작은 화살표를 클릭하면 거래 제어 조건이 열립니다. Trac레벨이 세션 로그에 기록됩니다. |
| 메타데이터 확장 | 사용자 정의 메타데이터는 변환과 함께 저장소에 보관됩니다. |
두 가지 설정이 실질적인 역할을 합니다. 거래 제어 조건 이 변수에는 일반적으로 다섯 가지 변수 중 하나를 반환하는 IIF() 테스트인 표현식이 포함되어 있습니다. Tracing 레벨 실행을 조사할 때 세션 로그에 변환에 대한 세부 정보가 얼마나 표시될지 결정합니다.
한 설정은 변환 외부에 있습니다. 지도가 생성될 때ping 효과적인 트랜잭션 제어 변환이 포함되어 있으며 세션은 다음과 같이 실행됩니다. 커밋 유형 속성 탭에서 사용자 정의로 설정 세션대신에 Target 또는 고정된 커밋 간격을 사용하는 소스 커밋 유형.
Informatica에서 트랜잭션 제어 변환을 사용하는 방법
이 예시에서는 부서 번호가 20인 조건이 충족될 때 데이터를 대상에 저장합니다.
단계 1) 지도를 만드세요ping EMP를 소스로, EMP_TARGET를 대상으로 하는 맵입니다.ping 디자이너 캔버스에는 소스, 소스 한정자 및 대상 정의가 포함됩니다.
단계 2) [변환] 메뉴를 사용하여 새 변환을 만든 다음, [변환 만들기] 창에서 다음을 수행합니다.
- 새로운 변환으로 거래 제어를 선택하십시오.
- 변환 이름 "tc_commit_dept20"을 입력하세요.
- 생성 옵션 선택
단계 3) 트랜잭션 제어 변환이 생성됩니다. 완료 버튼을 선택하십시오. 이제 새 개체가 소스 한정자 옆의 캔버스에 나타납니다.
단계 4) 소스 한정자(Source Qualifier)의 모든 열을 트랜잭션 제어(Transaction Control) 변환으로 드래그 앤 드롭한 다음, 트랜잭션 제어 변환의 모든 열을 대상 테이블(Target Table)에 연결합니다. 이제 파이프라인은 소스 → 소스 한정자 → tc_commit_dept20 → EMP_TARGET 순서로 실행됩니다.
단계 5) Double 거래 제어 변환을 클릭한 다음 편집 속성 창에서 다음을 수행합니다.
- 속성 탭 선택
- 거래 제어 편집기 아이콘을 클릭하세요.
단계 6) 표현식 편집기에 표현식을 입력하십시오.
iif(deptno=20,tc_commit_before,tc_continue_transaction)
확인을 선택하십시오. 이는 부서 번호 20이 발견되면 대상에서 트랜잭션을 커밋하고, 그렇지 않으면 현재 처리를 계속한다는 의미입니다.
단계 7) 이전 창에서 확인을 선택합니다. 이제 조건이 변환의 속성 탭에 저장됩니다.
이제 지도를 저장하세요ping 세션과 워크플로우를 생성한 후 실행합니다. 이 맵은ping 데이터에서 부서 번호 20이 발견될 때마다 해당 데이터를 대상 시스템에 저장합니다.
효과적인 거래 통제와 비효과적인 거래 통제의 변화
이 변환은 트랜잭션 생성기입니다. 상위에서 전달되는 모든 트랜잭션 경계를 무시하고 하위의 모든 항목에 대해 자체적으로 새로운 경계를 정의합니다. 따라서 파이프라인에서의 위치가 상태만큼이나 중요합니다.
그것은이라고합니다 효과적인 경계선이 여전히 목표물에 도달할 때 목표물에 대한 것입니다. 효과적인 이후 변환 과정에서 이러한 경계가 제거될 때 발생합니다. Informatica PowerCenter 변환 가이드에 따르면 다음 개체는 수신 트랜잭션 경계를 삭제합니다.
- 집계자, 조이너, 계급변환 범위가 모든 입력인 정렬기 또는 사용자 지정 변환
- 트랜잭션을 생성하도록 구성된 사용자 지정 변환
- 또 다른 거래 제어 변환
- 여러 입력이 포함된 그룹 변환이 하나 이상의 상위 트랜잭션 제어 지점에 연결됩니다.
대상에 효과적이지 않다고 해서 해당 객체가 쓸모없어지는 것은 아닙니다. 변환 범위가 트랜잭션인 하위 변환은 여전히 상위에서 정의된 경계를 사용하므로 동일한 변환이 정렬기에는 효과적일 수 있지만 그 뒤에 있는 테이블에는 효과적이지 않을 수 있습니다.
지도에서ping 여러 목표물이 있을 경우, 해당 물체는 한 목표물에는 효과적이지만 다른 목표물에는 효과가 없을 수 있습니다. 지도ping 모든 대상이 유효한 트랜잭션 제어 변환에 연결되어 있는 동안에는 유효한 상태를 유지하며, 하나라도 연결이 끊어지면 무효화됩니다. 디자이너는 맵이 유효하지 않을 때 대상에 대해 어떤 변환이 비효율적인지 보고합니다.ping 저장되거나 유효성이 검사되었습니다.
거래 통제 전환을 위한 규칙 및 지침
이러한 변환과 관련된 대부분의 문제는 설계 단계보다는 실행 단계에서 나타나므로, 세션을 구축하기 전에 아래 사항들을 확인하는 것이 좋습니다.
- 반환 값은 엄격합니다. 조건이 commit, roll back 또는 continue 이외의 값으로 평가되면 통합 서비스는 세션을 실패 처리합니다.
- TC_CONTINUE_TRANSACTION이 대체 응답입니다. IIF()의 모든 분기는 어딘가에서 끝나야 하며, continue는 현재 트랜잭션을 변경하지 않고 그대로 유지하는 값입니다.
- 대상 유형이 중요합니다. 관계형, XML 또는 동적 MQSeries 대상이 아닌 다른 대상에 연결된 트랜잭션 제어 변환은 해당 대상에 대해 효과가 없습니다.
- 해당 상태는 자신에게 도달하는 것만을 이용할 수 있습니다. 트랜잭션 제어 편집기 내에서는 변환에 연결된 포트, 해당 가변 포트 및 내장 변수만 사용할 수 있습니다.
- 커밋 빈도는 상충 관계입니다. 거의 모든 행에서 커밋되는 조건은 버퍼링의 이점을 없애고, 거의 발생하지 않는 조건은 변환이 추가된 목적이었던 데이터 손실 가능성을 다시 발생시킵니다.
- 세션 로그를 확인하세요. 로그에는 실제로 발생한 커밋 지점이 기록되어 있으므로, 조건이 의도대로 작동했는지 확인하는 가장 빠른 방법입니다. 성능 조정.







