Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

출력 데이터의 기대 조건

Data expectation은 데이터셋 출력이 만족해야 하는 조건입니다. 하나라도 실패하면 빌드가 실패하고 job의 expectations 패널에서 통과 및 실패한 조건을 확인할 수 있습니다.

정해진 예제 입력으로 로직을 검증하는 단위 테스트, 실행 상태와 신선도를 관찰하는 health check와 역할이 다릅니다.

기본 키

Primary key는 선택한 열 각각에 null이 없고, 열들의 조합이 고유한지 검사합니다. 하나의 열만 고르면 그 열 자체가 고유해야 합니다.

다음은 가상 데이터입니다. 개별 id와 time 값이 반복되더라도 두 열의 조합은 다르므로 기본 키 조건을 충족합니다.

idtime
18pm
19pm
28pm
38pm

다음 데이터는 1, 8pm 조합이 두 번 나타나므로 실패 조건에 해당합니다.

idtime
18pm
29pm
18pm

증분 빌드의 기본 키 검사가 오래 걸리면 기본 키 열에 프로젝션을 추가하는 방법을 검토합니다.

행 수

Row count는 최소 행 수와 최대 행 수 중 하나 또는 둘 모두를 지정합니다. 최소값을 지정하면 그 이상이어야 하고, 최대값을 지정하면 그 이하여야 합니다. 경계값도 허용됩니다.

허용한 값 목록

Value is one of에는 열과 허용값 목록을 지정합니다. 모든 행의 해당 값이 목록 안에 있어야 합니다. 상태 열을 제한하여 하위 로직이 예상하지 못한 범주를 받지 않도록 할 수 있습니다.

허용값이 ACTIVE, INACTIVE인 가상 예시에서는 다음 데이터가 조건을 충족합니다.

idstatus
1ACTIVE
2INACTIVE
3ACTIVE

다음은 PENDING이 허용 목록에 없어 실패 조건에 해당합니다.

idstatus
1ACTIVE
2PENDING

null 금지

Value is not null은 지정한 열의 누락값을 검사합니다. 빈 문자열은 null이 아닌 값이므로 이 조건을 통과합니다. 값의 존재와 고유성을 모두 요구하면 Primary key를 사용합니다.

NaN 금지

Floats and doubles are not NaN은 부동소수점 열에 NaN이 없는지 검사합니다. NaN은 null과 다른 부동소수점 값이므로 Value is not null로 검출할 수 없습니다.

입력이나 수치 계산 결과에 들어온 NaN은 합계나 평균으로 전파될 수 있습니다. 대시보드나 모델에 전달하는 숫자 출력에는 이러한 값을 별도로 검사해야 합니다.

Object Storage v2는 속성값으로 NaN과 양수 및 음수 무한대를 허용하지 않습니다. 이를 포함한 객체 기반 데이터는 배치 인덱싱 job을 실패하게 하고, 스트리밍에서는 위반 레코드를 버리게 합니다. 이 expectation은 NaN을 검사하므로 무한대 허용 여부도 별도 출력 조건에서 고려해야 합니다.

행 수준 조건

Row-level은 Boolean을 반환하는 열 표현식을 모든 출력 행에 적용합니다. 모든 행의 결과가 true일 때만 통과합니다. False나 null을 true로 간주하지 않습니다.

기본 제공 검사로 표현할 수 없는 조건이나 여러 열의 관계를 확인할 때 사용합니다. 예를 들어 quantity > 0 또는 같은 행의 end_time > start_time을 지정할 수 있습니다. 설정 드롭다운에서 검사할 표현식을 선택합니다.