Informatica의 디버거: 세션, 중단점, 자세한 데이터 및 매핑
이전 주제에서 논의한 것처럼 매핑은 일련의 변환으로 서로 연결된 소스 및 대상 개체의 모음입니다. 이러한 변환은 데이터 흐름과 데이터가 대상에 로드되는 방식을 정의하는 일련의 규칙으로 구성됩니다.
디버거란 무엇입니까?
디버거는 Informatica에서 매우 편리한 유틸리티입니다. 매핑을 실행하면 Informatica는 정의된 변환 논리를 기반으로 매핑을 실행합니다.
실행은 중간 결과를 볼 수 없거나 데이터가 변환에서 변환으로 수정되는 방식을 볼 수 없는 배치 모드 실행과 유사합니다.
우리는 예상했던 것과는 다른 타겟의 데이터를 얻는 경우가 많습니다. 디버거의 도움으로 우리는 매핑 내에서 데이터가 어떻게 이동하는지 분석할 수 있습니다. 디버거에서 데이터를 행별로 분석할 수 있습니다.
디버거를 사용하려면 세션 인스턴스가 필요합니다. 매핑을 실행하기 위해 이전에 생성된 기존 세션을 재사용하거나 새 디버그 세션 인스턴스를 생성할 수 있습니다. 디버깅하는 동안 소스에서 데이터를 가져오므로 해당 데이터로 무엇을 할지 선택할 수 있습니다.
- 데이터를 삭제하거나
- 데이터를 대상에 로드할 수 있습니다.
이러한 옵션은 디버거 구성 중에 설정할 수 있습니다.
디버거를 모니터링하기 위해 Informatica Designer에는 두 개의 창이 있습니다.
- Target 창
- 인스턴스 창
타겟 창에는 타겟 테이블에 삽입될 타겟 레코드가 표시됩니다. 인스턴스 창에서 매핑의 변환 인스턴스를 선택할 수 있습니다. 그 후에는 해당 변환의 모든 포트가 이 창에 표시되며 데이터가 어떻게 변환되는지 분석할 수 있습니다.
매핑에서 디버거를 사용하는 단계
Informatica Designer는 디버거를 사용하여 매핑을 디버그하는 기능을 제공합니다. 이는 기존 매핑을 디버깅하고 분석할 수 있음을 의미합니다. 디버거에 대한 요구 사항은 매핑이 유효한 매핑이어야 한다는 것입니다.
연습에서는 이전에 생성한 기존 매핑 "m_emp_emp_target"을 디버깅합니다. 소스 데이터에서 Employee_name ='SCOTT'의 특정 레코드를 확인합니다. Scott의 경우 Informatica에서 값을 가져오고 레코드가 대상에 올바르게 푸시되는지 여부를 확인합니다.
"emp" 테이블의 소스 데이터는 다음과 같습니다.
ename "SCOTT"의 경우 디버거를 사용하여 Informatica에서 "sal"(급여) 열의 값을 가져오는지 확인합니다.
단계 1) Informatica Designer를 열고 Designer에서 매핑 "m_emp_emp_target"을 더블 클릭하여 엽니다. 그러면 매핑 Designer 내부의 매핑을 보여주는 소스 한정자 및 대상 정의 테이블이 열립니다.
단계 2) 이제 디버거를 시작하세요
- 온 클릭 매핑 메뉴 옵션
- 옵션에서 디버거를 선택하세요.
- "디버거 시작" 옵션을 선택하세요.
단계 3) 디버그 매핑 창에서 다음을 선택하세요.
단계 4) 다음 창에는 세션 유형을 선택하는 옵션이 표시됩니다. 기존 세션, 재사용 가능한 기존 세션을 사용하거나 디버그 세션 인스턴스를 생성할 수 있습니다.
기존 세션을 사용하는 경우 Informatica는 이 매핑을 위해 생성한 이전 세션을 사용합니다. 디버그 세션 인스턴스 생성을 선택하면 디버깅을 위해 새 세션 인스턴스가 생성됩니다.
이 예에서는 재사용 가능한 기존 세션 인스턴스를 선택합니다. 통합 서비스가 기본값이 됩니다.
- "기존 세션 인스턴스 사용" 옵션을 선택하세요.
- 다음을 클릭하십시오.
단계 5) 새 창에서 Informatica는 디버깅을 위해 기존 세션을 선택하라는 메시지를 표시합니다.
"s_m_emp_emp_target" 세션을 선택하고 다음 버튼을 클릭하세요.
단계 6) 다음 창에는 "Discard target data" 옵션이 있습니다. 디버깅하는 동안 대상 테이블에 어떤 데이터도 로드하고 싶지 않기 때문에 이 옵션을 선택합니다.
- "대상 데이터 삭제" 옵션을 선택하십시오.
- 대상 테이블 "emp_target"을 선택합니다.
- 완료 버튼을 클릭하세요.
위의 단계를 통해 디버거를 구성하고 시작했습니다. 이제 매핑을 디버깅할 수 있습니다.
단계 7) 디버거가 시작되었지만 소스에서 행을 가져오지 않았습니다. 디버깅하는 동안 소스에서 행별로 데이터를 가져옵니다. 소스에서 첫 번째 행 가져오기를 시작하려면
- 메뉴에서 매핑 옵션을 선택하세요.
- 디버거 옵션 선택
- 다음 인스턴스 옵션 선택
단계 8) 인스턴스 창에는 소스 한정자에서 가져온 첫 번째 레코드가 표시됩니다.
인스턴스 창을 분석하면 첫 번째 레코드인 ename "SMITH" 행이 표시됩니다. 이것은 우리가 찾고 있는 레코드가 아닙니다. 그래서 다음 인스턴스로 이동할 수 있습니다.
단계 9) 다음 인스턴스로 이동하려면(다음 행으로 이동하려면)
- F10 버튼을 누릅니다(매핑 옵션과 디버거 옵션으로 이동하는 대신 다음 인스턴스로 이동하는 단축키).
다음 인스턴스로 이동한 후 인스턴스 창의 데이터가 다음 레코드로 변경됩니다.
단계 10) "SCOTT" 직원의 필수 기록에 도달할 때까지 F10 버튼을 계속 누르십시오. 해당 지점에 도달하면 인스턴스 창이 아래와 같이 표시됩니다.
이것이 우리가 찾고 있던 인스턴스입니다. 그래서 인스턴스 창에서 데이터를 분석할 수 있습니다. 올바르게 오는지, 아니면 값이 누락되었는지 여부입니다.
소스 데이터에서 "SCOTT" 직원의 세부 정보는 job = "ANALYST", manager id = "7566", sal "3000"과 같습니다.
그리고 디버거에서 직원 "SCOTT"에 대해 우리는 이 모든 세부 정보를 분석했고, 이것들이 소스 데이터와 일치하므로 소스 한정자에 의해 레코드가 올바르게 페치되었음을 확신할 수 있습니다.
디버거에서 중단점 사용
이전 예와 같이 특정 데이터 행을 찾는 경우 소스 데이터의 모든 인스턴스로 이동하는 대신 중단점을 정의할 수 있습니다.
중단점은 디버깅 구성 중에 정의된 조건 또는 조건 집합으로, 해당 조건이 true가 되면 디버거가 해당 특정 인스턴스를 중지합니다.
예를 들어 중단점에 deptno=20을 정의한 경우 레코드에 대해 이 조건이 true일 때마다 디버거는 해당 데이터 인스턴스에서 중지됩니다.
단계 1) 중단점을 구성하려면
- 매핑 메뉴로 이동
- 디버거 옵션 선택
- "중단점 편집" 옵션을 선택하세요.
단계 2) 아래와 같이 "중단점 편집" 창이 나타납니다.
단계 3) 중단점 창에서 추가 버튼을 클릭합니다.
단계 4) 새 창에서
- SQ_EMP를 인스턴스로 선택하십시오.
- 확인 버튼을 선택하세요
단계 5) 이전 창은 아래와 같이 표시됩니다.
단계 6) 중단점이 있으므로 이제 중단점 조건을 정의해야 합니다. 중단점 조건을 정의하려면
- '새 조건 추가' 아이콘을 클릭하세요.
조건 탭 아래에 새 행이 나타납니다. 여기서 조건을 구성할 수 있습니다.
단계 7) 조건표에는
- 포트 드롭다운에서 "ENAME" 옵션을 선택합니다(레코드 ename='SCOTT'에 대해 디버깅 중이므로).
- 값 상자에 값 "SCOTT"을 입력합니다.
- 확인 버튼을 선택하세요
단계 8) 이제 이전 항목에서 언급한 대로 디버거를 시작합니다.
매핑 메뉴로 이동 -> 디버거 옵션 선택 -> 디버거 시작을 선택하세요 -> 세션 인스턴스 선택
단계 9) 디버거가 시작되면
- 매핑 메뉴 선택
- 디버거 옵션 선택
- 계속 옵션을 선택하세요
디버거는 행 자체의 각 인스턴스로 이동하여 "ename=SCOTT" 조건을 확인합니다. 이 조건이 true인 레코드에서는 디버거가 해당 인스턴스에서 중지됩니다. 따라서 데이터 볼륨이 높을 때 소스 레코드의 각 인스턴스로 이동하는 대신 중단점을 구성하고 해당 레코드로 직접 이동할 수 있습니다.
Informatica의 모든 인스턴스 처리가 완료되면 디버거가 자동으로 중지됩니다. 데이터를 다시 분석하려면 디버거를 다시 시작해야 합니다.
Informatica에서 추적
매핑을 위한 세션을 실행할 때마다 세션 로그가 생성됩니다. 여기에는 다음과 같은 실행 세부 정보가 포함됩니다.
- 이벤트 타이밍
- 오류 정보
- 개별변환통계 등
매핑 변환 내부에서 Informatica가 세션 로그에 기록하는 세부 정보의 양을 구성하고 설정할 수 있습니다.
변환 내부 추적을 위해 설정할 수 있는 네 가지 수준이 있습니다.
다양한 로그 모드 | 다양한 로그 모드의 활동 |
---|---|
표준 | 일반 모드에서 Informatica는 변환 초기화 및 상태 정보, 발생한 오류에 대해 기록하고 세션 결과를 요약합니다. |
테르 세 | Terse Mode에서 Informatica는 초기화 정보와 오류 세부 정보에 대해서만 기록합니다. Terse Mode는 세션 로그에 최소한의 세부 정보를 기록합니다. |
자세한 초기화 | 자세한 초기화 모드에서 Informatica는 일반 모드와 비슷하게 로그 세부 정보를 기록하고, 추가로 사용된 데이터 및 인덱스 파일과 변환 통계에 대한 정보도 기록합니다. |
자세한 데이터 | 자세한 데이터에서 Informatica는 자세한 초기화와 유사한 로그를 작성하지만 추가로 변환을 통과하는 모든 데이터도 작성합니다. |
주의 사항: 기본적으로 추적 수준은 정상으로 설정되며, 매핑을 디버깅할 때만 자세한 데이터 모드를 사용하는 것이 좋습니다. 간결한 모드는 최소한의 세부 정보를 작성하므로 성능을 개선하는 데 사용할 수 있습니다. 따라서 로그를 작성하는 오버헤드가 최소화됩니다.
변환에서 추적 수준을 설정하는 방법
단계 1) 추적 수준을 설정하려는 Informatica Designer에서 매핑을 엽니다.
단계 2) Double 변환을 클릭합니다(소스 한정자 변환 "SQ_EMP")
편집 변환 창이 열립니다.
단계 3) 변환 편집 창에서
- 속성 탭을 클릭하세요
- 추적 수준 옵션을 선택하세요.
- 드롭다운에서 Verbose 데이터를 선택하세요.
- 확인 버튼을 선택하세요
단계 4) 매핑을 저장하고 매핑을 실행합니다( 매핑을 저장하려면 Ctrl+s 키보드 단축키를 사용하세요).
단계 5) 로그를 보려면
- 엽니다 작업 흐름 모니터 마지막 단계에서 실행된 세션을 선택합니다.
- 매핑에 대한 세션 로그를 열려면 "세션 로그" 옵션을 클릭하세요.
매핑을 위한 세션 로그 창이 열립니다.
세션 로그는 세션이 어떻게 실행되었는지에 대한 세부 정보를 제공합니다. 실행이 시작되고 중지된 타이밍 세부 정보를 제공합니다. 성능에 대한 기본적인 아이디어를 제공합니다. 사용 중인 데이터베이스 연결, 사용 중인 매개변수 파일을 언급합니다. 또한 가져온 소스 레코드 수, 대상에 로드된 레코드 수 등을 언급하여 소스 및 대상에 대한 요약을 제공합니다.
단계 6) 로그를 아래로 스크롤하면 데이터 레코드를 포함한 추가 로그 세부 정보를 볼 수 있습니다.
이런 방식으로 매핑의 추적 수준을 설정하여 디버깅을 위한 추가적인 세부 정보를 캡처할 수 있습니다.
이 자습서에서는 디버거를 설정, 구성 및 실행하는 방법과 매핑에서 추적 수준을 설정하는 방법을 배웠습니다. 이러한 옵션은 매핑을 디버그하는 기능을 제공합니다.