sources.json 파일
sources.json 파일
sources.json은 freshness 체크가 설정된 소스에 대한 정보를 담고 있어요. dbt는 이 파일로 소스 신선도(Source Freshness) 시각화를 구현해요. 소스와 모델을 한 파일에 함께 담으려면 freshness.json을 사용하면 돼요.
출처: 문서
본문
현재 스키마: v3
(dbt v2.0 이상 적용)
생성 주체: dbt freshness (소스가 실행에 포함된 경우)
이 파일은 freshness 체크가 설정된 소스에 대한 정보를 담고 있어요. dbt는 이 파일로 소스 신선도 시각화를 구현해요.
(dbt v2.0 이상 적용)
sources.json은 소스만의 freshness 결과를 담는 레거시 아티팩트예요. 소스와 모델을 한 파일에 모두 담은 결과는 freshness.json을 사용하세요. dbt freshness 실행이 모델만 체크하고 소스가 포함되지 않았다면, dbt는 sources.json을 덮어쓰지 않아요.
최상위 키(Top-level keys)
metadataelapsed_time: 총 실행 시간(초).results: freshness 체크 실행 상세의 배열.
results의 각 항목은 다음 키를 가진 사전(dictionary)이에요:
-
unique_id: 소스 노드의 고유 식별자로, 결과를 manifest의sources에 연결해요. -
max_loaded_at: 조회 시점에 소스 테이블의loaded_at_field타임스탬프 최댓값. -
snapshotted_at: 조회 당시의 현재 타임스탬프. -
max_loaded_at_time_ago_in_s:max_loaded_at와snapshotted_at의 간격. 시간대 복잡성을 처리하기 위해 python으로 계산돼요. -
criteria: 프로젝트에 정의된 이 소스의 freshness 임계값(들). -
status:max_loaded_at_time_ago_in_s+criteria에 따른 이 소스의 freshness 상태. CLI에 표시되며, 쿼리가 성공하면pass,warn,error중 하나, 쿼리가 실패하면runtime error. -
execution_time: 이 소스의 freshness를 체크하는 데 쓴 총 시간. -
timing: 실행 시간을 단계(compile+execute)로 나눈 배열. -
adapter_response: 데이터베이스에서 반환된 메타데이터 사전으로, 어댑터에 따라 달라져요. 예: 성공code,rows_affected수, 총bytes_processed등. 데이터 테스트에는 적용되지 않아요.rows_affected는 마지막으로 실행된 문장이 수정한 행 수를 반환해요. 쿼리의 행 수를 알 수 없거나 적용할 수 없는 경우(예: 뷰 생성 시)rowcount에 표준값-1이 반환돼요.