freshness.json 파일

freshness.json 파일

freshness.json은 freshness가 설정된 모든 소스와 모델의 신선도(freshness) 결과를 담고 있어요. 각 항목의 resource_type 필드로 소스인지 모델인지 구분할 수 있어요.

출처: 문서

본문

  • 현재 스키마: v0
  • 생성 주체: dbt freshness

이 파일은 freshness가 설정된 모든 소스와 모델의 신선도 결과를 포함해요. dbt는 매 dbt freshness 실행 후 target/freshness.json에 이를 기록해요.

각 항목에는 리소스가 소스인지 모델인지 식별하는 resource_type 필드가 있어요.

최상위 키(Top-level keys)

  • metadata: 실행 메타데이터로 다음 필드를 포함해요: dbt_schema_version: 이 아티팩트의 스키마 URL(항상 https://schemas.getdbt.com/dbt/freshness/v0.json). dbt_version: 파일을 생성한 dbt 버전. generated_at: 파일이 기록된 타임스탬프. invocation_id: 이 실행의 고유 식별자. invocation_started_at: 실행이 시작된 타임스탬프. 사용 불가하면 생략돼요. env: 설정된 DBT_ENV_CUSTOM_ENV_* 환경 변수 맵.
  • results: 신선도 결과의 배열.

results의 각 항목은 다음 키를 가진 사전(dictionary)이에요:

  • unique_id: 노드의 고유 식별자로, 결과를 manifest의 nodes·sources에 연결해요.
  • resource_type: model 또는 source.
  • max_loaded_at: 조회 시점의 loaded-at 타임스탬프 최댓값.
  • snapshotted_at: check가 실행된 타임스탬프.
  • max_loaded_at_time_ago_in_s: max_loaded_atsnapshotted_at 사이의 간격(초).
  • status: 신선도 상태: Pass, Warn, Error. freshness 쿼리가 실패하면 dbt는 오류를 로그로 기록하지만, 실패 상태로 기록하는 대신 파일에서 해당 노드를 생략해요.
  • criteria: 이 노드의 freshness 설정으로, warn_after, error_after, filter, loaded_at_field, loaded_at_query를 포함해요.
  • thread_id: 이 check를 실행한 스레드 식별자.