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)

  • metadata
  • elapsed_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_atsnapshotted_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이 반환돼요.