실행 상태와 최신성 검사 구분
Data Health의 검사는 비슷한 이름이어도 관찰하는 실행 범위와 시각이 다릅니다. 알림을 만들기 전에 무엇의 성공과 최신성을 확인하려는지 정해야 합니다.
Job, build와 schedule
실행 작업(Job)은 변환 로직 한 번의 실행이며 출력 데이터셋 하나 또는 다중 출력 데이터셋들을 만듭니다. 스케줄은 지정한 대상 데이터셋과 관련 작업들을 반복 실행하는 구성이므로 함께 빌드하는 파이프라인 범위를 나타낼 수 있습니다.
Job status는 해당 데이터셋이 생성되거나 갱신되는 실제 작업을 검사합니다. 작업은 성공했지만 그 뒤의 다른 작업이 실패하면 해당 Job status는 성공할 수 있습니다. 상위 실패 때문에 대상 작업이 취소되어 실행되지 않으면 그 대상의 Job status는 평가되지 않을 수 있습니다.
Schedule status와 Schedule duration은 설정한 스케줄이 실행할 때 평가하며 중간 데이터셋을 포함한 스케줄 빌드를 관찰합니다. 일반적으로 모든 운영 스케줄에 Schedule status를 권장합니다. 이 검사가 있으면 같은 스케줄의 모든 데이터셋에 Job status를 반복 설치하지 않아도 작업 실패를 감지할 수 있습니다.
Build status는 최종 출력으로 지정한 데이터셋까지의 전체 빌드 결과를 봅니다. 중간 작업의 결과만 확인하려면 Job status와 구분해야 합니다. 각 필드와 지원 범위는 검사 참조에서 설명합니다.
최신성의 세 기준
| 검사 | 계산 기준 | 평가 의미 |
|---|---|---|
Time since last updated | 현재 시각에서 검사 대상인 마지막 커밋 시각을 뺀 시간 | 데이터셋이 얼마나 오래 갱신되지 않았는지 봅니다. 빈 트랜잭션의 포함 여부는 Ignore empty transactions 설정으로 정합니다. |
Data freshness | 마지막 커밋 시각과 timestamp 열의 최댓값 차이 | 데이터셋에 담긴 내용이 원천 시각에 비해 얼마나 늦게 도착했는지 봅니다. 트랜잭션 커밋 시 평가합니다. |
Sync freshness | 마지막 동기화 시각과 datetime 열의 최댓값 차이 | 목적지에 동기화한 내용의 최신성을 봅니다. |
Data freshness와 Sync freshness에는 가능하면 행이 원천 시스템에 추가된 시각을 나타내는 열을 사용합니다. 데이터셋을 방금 다시 빌드해도 오래된 원천 행만 담겨 있다면 갱신 시각과 내용 최신성은 다른 결과를 보일 수 있습니다.
검사 실패로 빌드를 중단하려면
대부분의 기본 상태 검사는 작업이 끝나야 값을 계산할 수 있습니다. 빌드 중에 조건을 검사하고 잘못된 출력을 중단하려면 Code Repositories에서 Data Expectations를 정의합니다. 이 검사도 Data Health에서 감시할 수 있습니다.