데이터 흐름 모니터링
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
데이터 흐름 빌드 및 디버그를 완료한 후에는 파이프라인의 컨텍스트 내에서 일정에 따라 실행되도록 데이터 흐름을 예약하는 것이 좋습니다. 트리거를 사용하여 파이프라인을 예약할 수 있습니다. 파이프라인에서 데이터 흐름을 테스트하고 디버깅하려면, 파이프라인 작성기에서 도구 모음 리본 또는 지금 트리거 옵션에 있는 디버그 단추를 사용하여 단일 실행을 수행함으로써 파이프라인 컨텍스트 내 데이터 흐름을 테스트하면 됩니다.
파이프라인을 실행할 때 Data Flow 작업을 비롯하여 파이프라인에 포함된 모든 작업과 파이프라인을 모니터링할 수 있습니다. 왼쪽 UI 패널에서 모니터 아이콘을 선택합니다. 다음과 유사한 화면을 볼 수 있습니다. 강조 표시된 아이콘을 사용하면 Data Flow 작업을 비롯한 파이프라인의 작업을 드릴할 수 있습니다.
실행 시간 및 상태를 포함하여 이 수준에서 통계를 볼 수 있습니다. 작업 수준의 실행 ID는 파이프라인 수준의 실행 ID와 다릅니다. 이전 수준의 실행 ID는 파이프라인의 실행 ID입니다. 안경 아이콘을 선택하면 데이터 흐름 실행에 대한 심층 정보가 제공됩니다.
그래픽 노드 모니터링 보기에서는 데이터 흐름 그래프의 간소화된 보기 전용 버전을 볼 수 있습니다. 변환 단계 레이블이 포함된 더 큰 그래프 노드를 사용하여 세부 정보 보기를 확인하려면 캔버스 오른쪽에 있는 확대/축소 슬라이더를 사용합니다. 오른쪽 검색 단추를 사용하여 그래프에서 데이터 흐름 논리의 일부를 찾을 수도 있습니다.
데이터 흐름 실행 플랜 보기
Data Flow가 Spark에서 실행되는 경우 서비스는 전체 데이터 흐름에 따라 최적 코드 경로를 결정합니다. 또한 실행 경로는 여러 스케일 아웃 노드 및 데이터 파티션에서 발생할 수 있습니다. 따라서 모니터링 그래프는 변환의 실행 경로를 고려하여 흐름의 디자인을 나타냅니다. 개별 노드를 선택하면 클러스터에서 함께 실행된 코드를 나타내는 “스테이지”를 볼 수 있습니다. 표시되는 타이밍 및 개수는 디자인의 개별 스테이지와는 반대로 해당 그룹 또는 단계를 나타냅니다.
모니터링 창에서 열린 공간을 선택하면 맨 아래 창의 통계에 변환 계보에 대한 싱크 데이터가 발생한 변환과 각 싱크의 타이밍 및 행 개수가 표시됩니다.
개별 변환을 선택하면 파티션 통계, 열 개수, 왜도(파티션 간에 데이터가 균일하게 분산된 정도) 및 첨도(데이터 급증 정도)를 보여 주는 추가 피드백이 오른쪽 패널에 수신됩니다.
처리 시간을 기준으로 정렬하면 데이터 흐름에서 가장 많은 시간이 소요되는 단계를 식별하는 데 도움이 됩니다.
각 단계 내에서 가장 많은 시간이 소요되는 변환 작업을 확인하려면 최고 처리 시간을 기준으로 정렬합니다.
또한 작성된 *행은 데이터 흐름 내에서 가장 많은 데이터를 작성하는 스트림을 식별하는 방법으로 정렬할 수 있습니다.
노드 보기에서 싱크를 선택하면 열 계보를 볼 수 있습니다. 데이터 흐름 전체의 열이 누적되어 싱크에 배치되는 세 가지 방법이 있습니다. 화면은 다음과 같습니다.
- 컴퓨팅됨: 조건부 처리를 위해 또는 데이터 흐름의 식 내에서 열을 사용하지만 싱크에 배치하지 않습니다.
- 파생됨: 열은 흐름에서 생성한 새 열입니다. 즉, 원본에는 없었습니다.
- 매핑됨: 원본에서 시작된 열이 싱크 필드에 매핑됩니다.
- 데이터 흐름 상태: 현재 실행 상태
- 클러스터 작동 시간: 데이터 흐름 실행을 위해 JIT Spark 컴퓨팅 환경을 확보하는 데 걸리는 시간
- 변환 수: 흐름에서 실행되는 변환 단계 수
총 싱크 처리 시간 및 변환 처리 시간
각 변환 단계에는 각 파티션 실행 시간을 합산하여 해당 단계를 완료하는 데 걸리는 총 시간이 포함됩니다. 싱크를 선택하면 "싱크 처리 시간"이 표시됩니다. 이 시간에는 데이터를 대상 저장소에 쓰는 데 걸린 I/O 시간 및 총 변환 시간이 포함됩니다. 싱크 처리 시간과 총 변환의 차이는 데이터를 쓰는 I/O 시간입니다.
파이프라인 모니터링 보기에서 데이터 흐름 작업의 JSON 출력을 열면 각 파티션 변환 단계에 대한 자세한 타이밍을 볼 수도 있습니다. JSON에는 각 파티션에 대한 밀리초 타이밍이 포함되어 있는 반면 UX 모니터링 보기는 함께 추가된 파티션의 집계 타이밍입니다.
{
"stage": 4,
"partitionTimes": [
14353,
14914,
14246,
14912,
...
]
}
싱크 처리 시간
맵에서 싱크 변환 아이콘을 선택하면 오른쪽 슬라이드인 패널 하단에 "처리 후 시간"이라는 추가 데이터 포인트가 표시됩니다. 데이터가 로드, 변환 및 기록된 후 Spark 클러스터에서 작업을 실행하는 데 소요된 시간입니다. 이 시간에는 연결 풀 닫기, 드라이버 종료, 파일 삭제, 파일 병합 등이 포함될 수 있습니다. 흐름에서 "파일 이동" 및 "단일 파일로 출력"과 같은 작업을 수행하면 처리 후 시간 값이 증가할 수 있습니다.
- 쓰기 스테이지 기간: Synapse SQL의 스테이징 위치에 데이터를 쓰는 시간
- 테이블 작업 SQL 기간: 임시 테이블에서 대상 테이블로 데이터를 이동하는 데 소요된 시간
- 사전 SQL 기간 및 사후 SQL 기간: 사전/사후 SQL 명령을 실행하는 데 소요된 시간
- 사전 명령 기간 및 사후 명령 기간: 파일 기반 원본/싱크에 대한 사전/사후 작업을 실행하는 데 소요된 시간 예를 들어 처리 후 파일을 이동하거나 삭제합니다.
- 병합 기간: 파일 병합에 소요된 시간, 병합 파일은 단일 파일에 쓰거나 "열 데이터로 파일 이름"을 사용할 때 파일 기반 싱크에 사용됩니다. 이 메트릭에 상당한 시간이 소요되는 경우 이러한 옵션을 사용하지 않아야 합니다.
- 스테이지 시간: Spark 내부에서 작업을 스테이지로 완료하는 데 소요된 총 시간
- 임시 스테이징 테이블: 데이터베이스의 데이터를 스테이징하기 위해 데이터 흐름에서 사용하는 임시 테이블의 이름
오류 행
데이터 흐름 싱크에서 오류 행 처리를 사용하도록 설정하면 모니터링 출력에 반영됩니다. 싱크를 "오류 시 성공 보고"로 설정하면 싱크 모니터링 노드를 선택할 때 모니터링 출력에 성공 및 실패한 행 수가 표시됩니다.
"오류 시 실패 보고"를 선택하면 작업 모니터링 출력 텍스트에만 동일한 출력이 표시됩니다. 이는 데이터 흐름 작업이 실행 실패를 반환하고 세부 모니터링 보기를 사용할 수 없기 때문입니다.
모니터 아이콘
이 아이콘은 변환 데이터가 클러스터에 이미 캐시되어 타이밍 및 실행 경로에서 고려되었음을 의미합니다.
변환에 녹색 원 아이콘도 표시됩니다. 이 아이콘은 데이터가 이동되는 싱크 수를 나타냅니다.