Informatica의 성능 조정: 전체 자습서

⚡ 스마트 요약

Informatica의 성능 튜닝은 세션에서 가장 느린 링크를 한 단계씩 제거하며, 대상에서 소스(맵)를 거쳐 역순으로 진행합니다.ping그리고 세션, 마지막으로 운영 체제입니다.

  • 🎯 고정 주문: Informatica는 병목 현상을 찾을 때 대상, 소스, 맵 순으로 확인하는 것을 권장합니다.ping그다음은 세션, 그다음은 시스템입니다.
  • 🧵 스레드 통계가 모든 것을 말해줍니다. 독자, 변환자, 작가라는 세 가지 요소 중에서 가장 활발한 부분은 작업이 필요한 영역을 나타냅니다.
  • 🚿 조기에 필터링하세요: 소스 한정자에서 폐기된 행은 파이프라인에 들어가지 않으므로 하위 단계에서 비용이 발생하지 않습니다.
  • 🗄️ 데이터베이스에 작업을 푸시합니다: 일반적으로 SQL에서 조인, 정렬 및 필터링은 변환보다 더 빠르게 실행됩니다.
  • 🧊 캐시 규율: 포트 수와 조회 열 수가 적을수록 캐시 크기가 작아지고 디스크 페이징이 줄어듭니다.
  • ⚙️ 세션 설정이 중요합니다: DTM 버퍼 크기, 버퍼 블록 크기, 커밋 간격 및 푸시다운 최적화는 맵 생성 후에 조정됩니다.ping 깨끗합니다.

Informatica의 성능 조정

Informatica에서 성능 튜닝이란 무엇입니까?

인포매티카에서 성능 튜닝은 세션 실행 속도를 제한하는 구성 요소를 찾아 해당 제한 요소를 제거한 다음, 다음으로 가장 느린 구성 요소에 대해 동일한 작업을 반복하는 과정입니다. 세션의 속도는 가장 느린 계층의 속도에 따라 결정되므로, 애초에 문제가 되지 않았던 변환을 튜닝해도 실질적인 성능 향상은 없습니다.

Informatica는 병목 현상이 발생할 수 있는 다섯 가지 지점을 식별하고, 정해진 순서대로 점검할 것을 권장합니다.

주문번호 일반적인 원인
1 Target 쓰기 속도가 느리고, 체크포인트 간격이 짧고, 데이터베이스 네트워크 패킷 크기가 작습니다.
2 출처 쿼리 속도가 느리거나, 인덱스가 누락되었거나, 불필요한 열을 읽고 있는 경우
3 지도ping 비싸거나 위치가 부적절한 변환, 과도하게 큰 캐시
4 세션 Buffer 메모리, 커밋 간격, 파티셔닝, 로드 유형
5 시스템 통합 서비스 머신에서 CPU 포화, I/O 대기, 페이징 발생

순서는 의도적입니다. 행을 충분히 빠르게 처리하지 못하는 대상은 상위 계층 전체가 느려 보이게 만들므로 먼저 검사합니다. 전체 방법은 문서에 설명되어 있습니다. PowerCenter 성능 튜닝 가이드.

성능 병목 현상을 식별하는 방법

어느 층이 느린지 추측하는 것보다 측정하는 것이 시간을 더 많이 낭비합니다. 위에서 언급한 다섯 층을 모두 포괄하는 네 가지 기술이 있습니다.

  • 테스트 세션을 실행하세요. 복사본을 구성합니다. 세션 플랫 파일 대상에 쓰기 작업을 수행합니다. 세션 속도가 눈에 띄게 빨라지면 대상이 병목 현상의 원인입니다. 동일한 방법을 사용하여 플랫 파일 소스에서 읽기 작업을 수행하면 소스의 병목 현상을 찾아낼 수 있습니다.
  • 스레드 통계를 분석합니다. 데이터 변환 관리자는 읽기 스레드, 하나 이상의 변환 스레드 및 쓰기 스레드를 실행합니다. 세션 로그에서 가장 바쁜 시간을 기록한 스레드는 작업할 레이어를 직접 지정합니다. 읽기 스레드는 소스 레이어를, 변환 스레드는 맵 레이어를 지정합니다.ping목표 대상을 위한 작가.
  • 성능 세부 정보를 분석합니다. 세션에서 성능 데이터 수집을 활성화하고 카운터를 읽으십시오. 오류 행 수가 많거나 조회 캐시에 행 수가 많으면 맵에 문제가 있음을 나타냅니다.ping 데이터베이스 문제가 아니라 근본적인 문제입니다.
  • 시스템을 모니터링하세요. OperaCPU 사용량, I/O 대기 시간 및 페이징을 보여주는 시스템 도구와 함께 워크플로우 모니터 리소스 보기를 통해 시스템의 용량이 부족한 상태임을 확인할 수 있습니다.

담당 계층이 파악되면 다음 섹션의 변환 수준 조언을 적용할 가치가 생깁니다. 섹션은 데이터가 입력되는 지점부터 파이프라인 순서대로 배열되어 있습니다. 지도ping 집계되는 지점까지.

소스 한정자 변환

소스 한정자가 읽지 않는 모든 행은 다른 변환에서 처리할 필요가 없는 행이므로 전체 맵에서 가장 비용이 적게 드는 위치입니다.ping 시간을 절약하기 위해.

  • 소스에서 필요한 열만 가져옵니다. 원본 테이블의 모든 컬럼이 필요한 것은 아닌 경우가 대부분이므로 불필요한 컬럼을 삭제하여 필요한 필드만 가져옵니다.
  • ORDER BY 절을 내부에 사용하지 마십시오. 소스 한정자 SQL 오버라이드. ORDER BY 절은 추가적인 처리를 필요로 하므로, 이를 생략하면 성능을 향상시킬 수 있습니다.

필터 변환

필터링은 파이프라인에서 한 단계 뒤에 동일한 원칙을 따릅니다. 즉, 맵에서 원치 않는 행을 가장 빠른 시점에서 제거합니다.ping 그들을 식별할 수 있는 충분한 정보가 있습니다.

  • 필터 변환 지도상에서 최대한 빨리ping원치 않는 데이터를 지도에서 초기에 제거할 수 있다면ping그러면 처리량이 증가할 것입니다.
  • 소스 한정자를 사용하여 데이터를 필터링할 수 있습니다. 필터 변환을 사용하는 대신 소스 한정자 SQL 재정의를 사용하여 레코드를 필터링할 수도 있습니다.

조이너 변환

가입은 일반적인 맵에서 처음으로 실제로 비용이 많이 드는 작업입니다.ping세부 행을 마스터 소스와 비교하기 전에 마스터 소스를 캐시해야 하기 때문입니다.

  • 가능하다면 데이터베이스에서 조인을 수행하는 것이 Informatica에서 생성하는 조인보다 빠르므로 항상 데이터베이스 조인을 우선적으로 고려하십시오. 조이너 변환.
  • 조인 중에 수행되는 디스크 I/O가 감소하므로 조인하기 전에 데이터를 정렬하십시오.
  • 행 수가 가장 적은 테이블을 마스터 테이블로 만드세요.

세 번째 요점은 가장 자주 간과되는 부분입니다. 통합 서비스는 마스터 소스를 캐시하므로 더 작은 테이블을 마스터로 지정하면 캐시 크기를 줄일 수 있습니다.

조회 변환

조회는 행당 한 번씩 데이터베이스를 쿼리하거나 메모리에 캐시를 구축하는 두 가지 방식이 있는데, 두 방식 모두 더 작고 인덱싱이 잘 된 조회 소스를 사용하는 것이 유리합니다.

  • 해당 열에 인덱스를 생성합니다. 조회 테이블 이는 조회 조건에 사용됩니다. 일치하는 데이터를 찾기 위해 조회 테이블을 쿼리하므로 인덱스를 추가하면 성능이 향상됩니다.
  • 가능하다면 조회 변환을 사용하는 대신 데이터베이스에서 조인을 사용하십시오. 데이터베이스 조인 속도가 빨라지면 성능도 향상됩니다.
  • 조회 테이블에서 불필요한 열을 삭제하고 필요한 열만 유지합니다. 이렇게 하면 데이터베이스에서 추가 열을 가져오는 오버헤드가 줄어듭니다.

애그리게이터 변환

An 애그리 게이터 (aggregator) 캐시는 행을 그룹화하는 동안 데이터를 캐시에 저장하므로, 캐시에 도달하는 데이터 양을 줄이면 필요한 캐시 크기도 줄어듭니다.

  • 데이터를 집계하기 전에 필터링하세요. 지도에서 필터 변환을 사용하는 경우ping그런 다음 집계기를 사용하기 전에 데이터를 필터링하면 불필요한 집계 작업을 줄일 수 있습니다.
  • 집계 변환에 사용되는 포트 수를 제한하십시오. 이렇게 하면 집계 변환이 캐시에 저장하는 데이터 양이 줄어듭니다.

Informatica에서의 세션 수준 튜닝

지도가ping 그 자체는 깔끔하며, 나머지 성능 향상은 세션 속성에서 비롯됩니다. 이러한 설정은 메모리 사용량을 희생하여 속도를 향상시키는 경우가 많으므로, 변경 후 시간을 측정하면서 하나씩 변경하는 것이 좋습니다.

환경 그것이 제어하는 ​​것 언제 변경해야 할까요?
DTM 버퍼 크기 통합 서비스가 소스 및 대상 데이터 블록에 할당하는 총 메모리 용량 세션이 많은 파티션, 소스 또는 대상을 처리할 때 증가하십시오.
Buffer 블록 크기 개별 메모리 블록의 크기 행 크기가 비정상적으로 큰 경우 값을 늘리고, 물리적 메모리가 제한적인 경우 값을 줄입니다.
커밋 간격 커밋이 발생하기 전에 몇 개의 행이 기록됩니까? 작성 스레드가 데이터베이스 체크포인트를 기다리는 데 시간을 많이 소비할 때 이 문제를 제기하십시오.
푸시다운 최적화 지도의 어느 부분ping 논리는 SQL로 변환되어 데이터베이스에서 실행됩니다. 소스와 대상이 동일한 강력한 데이터베이스에 있는 경우에 사용합니다.

Buffer 메모리 할당은 추측이 아닌 문서화된 계산 방식을 따릅니다. 통합 서비스는 각 소스 및 대상 파티션에 최소 두 개의 블록을 할당하므로 세션 버퍼 블록 수는 (총 소스 수 + 총 대상 수)에 2를 곱한 값이고, DTM 버퍼 크기는 해당 블록 수에 버퍼 블록 크기를 곱한 후 0.9로 나눈 값입니다.

푸시다운 최적화는 주의가 필요합니다. 데이터베이스가 통합 서비스 머신보다 실제로 빠르고 변환 로직을 표현할 수 있는 경우에만 도움이 됩니다. SQL번역할 수 없는 로직은 세션에 남아 있으므로, 효과가 예상보다 작을 수 있습니다. 기본값으로 설정하기보다는 변경 전후를 측정하는 것이 좋습니다.

자주 묻는 질문

통합 서비스 시스템에 여유 CPU가 있고 소스 및 대상이 병렬 연결을 지원할 수 있는 경우 파티셔닝이 유용합니다. 하지만 시스템이 포화 상태이거나 단일 스레드 대상을 사용하는 경우, 추가 파티션은 실행 시간을 단축시키지 않고 오버헤드만 발생시킵니다.

전체 조회 소스를 저장할 수 있을 만큼 인덱스와 데이터 캐시 크기를 충분히 크게 설정하십시오. 그렇지 않으면 통합 서비스 페이지가 디스크에 저장됩니다. 세션 로그에는 실제로 필요한 캐시 크기가 기록되므로 자동 크기 조정 기능을 한 번 실행하고 해당 값을 읽어오십시오.

삽입 작업이 수행될 때마다 대상 테이블의 모든 인덱스와 제약 조건이 유지 관리되는데, 이 비용은 테이블 크기가 커질수록 증가합니다. 오래된 데이터베이스 통계 정보는 상황을 더욱 악화시킵니다. 결국 쓰기 스레드가 가장 바쁜 스레드가 되는데, 이는 대상 테이블 병목 현상의 전형적인 징후입니다.

네, 변환이 완료되는 즉시 모든 데이터를 캐싱하는 대신 각 그룹을 해제할 수 있기 때문입니다. 들어오는 행은 그룹화된 포트별로 이미 정렬되어 있어야 하며, 그렇지 않으면 세션이 실패합니다.

대량의 삽입물만 적재하는 경우, 드롭하세요.ping 인덱스와 제약 조건을 먼저 생성한 다음 나중에 다시 빌드하는 것이 일반적으로 더 빠릅니다. 세션 속성에 대한 세션 전 및 세션 후 SQL 명령은 두 단계를 모두 스크립트로 작성하는 데 적합한 위치입니다.

대량 모드는 데이터베이스 로깅의 상당 부분을 건너뛰어 로드 속도가 빠르지만 복구가 불가능하며 모든 대상 또는 업데이트 전략에서 작동하지 않을 수 있습니다. 일반 모드는 일반적인 로깅 경로를 통해 기록하며 복구가 가능합니다.

과거 실행 시간 데이터를 기반으로 학습된 모델은 세션 지속 시간이 정상 범위를 벗어나는 경우, 누구도 알아차리기 훨씬 전에 이를 감지하고 클러스터 관련 오류를 찾아냅니다. 또한 변경이 발생한 실행 시점을 알려주지만, 어떤 레이어가 원인인지는 스레드 통계를 통해 확인해야 합니다.

이 도구는 쿼리를 다시 작성하고, 인덱스 후보를 제안하며, 편집기에 붙여넣은 실행 계획을 설명할 수 있습니다. 하지만 저장소나 세션 로그를 볼 수 없으므로, 모든 다시 작성된 쿼리는 실제 실행 계획 및 행 수와 비교하여 검증해야 합니다.

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