DBT_PROJECT_EXECUTION_HISTORY

DBT_PROJECT_EXECUTION_HISTORY

DBT_PROJECT_EXECUTION_HISTORY()는 Snowflake의 dbt 프로젝트(dbt Projects on Snowflake)의 실행 이력을 반환해요.

이 함수를 호출하면 현재 시간 기준 7일 이내의 과거 dbt 프로젝트 실행에서 메타데이터와 결과를 얻을 수 있어요. 선택적으로 결과를 필터링할 값을 지정할 수 있어요.

dbt 아티팩트와 로그를 프로그래밍 방식으로 접근하려면 다음 시스템 함수와 함께 사용하세요.

자세한 내용은 프로그래밍 방식으로 dbt 아티팩트와 로그에 접근(Access dbt artifacts and logs programmatically)을 참고하세요.

함께 보기:

CREATE DBT PROJECT, EXECUTE DBT PROJECT, DBT_PROJECT_EXECUTION_HISTORY 뷰(Account Usage)

출처: Snowflake SQL Reference

본문

문법

DBT_PROJECT_EXECUTION_HISTORY (
  [ OBJECT_NAME => '<name>' ]
  [ , OBJECT_TYPE = { WORKSPACE | DBT PROJECT }]
  [ , START_TIME_RANGE_START => <start_time> ]
  [ , START_TIME_RANGE_END => <end_time>  ]
  [ , RESULT_LIMIT = <integer> ]
  [ , COMMAND = <dbt_command> ]
  [ , USER_NAME = <user_name> ]
  [ , DATABASE = <db_name> ]
  [ , SCHEMA = <schema_name> ]
)

인자

OBJECT_NAME =

실행이 속한 워크스페이스 또는 dbt 프로젝트 객체의 이름이에요. 또한 식별자는 알파벳 문자로 시작해야 하며, 전체 식별자 문자열이 큰따옴표로 묶이지 않는 한 공백이나 특수 문자를 포함할 수 없어요(예: "My object"). 큰따옴표로 묶인 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요구사항(Identifier requirements)을 참고하세요.

OBJECT_TYPE = { WORKSPACE | DBT PROJECT }

실행이 속한 객체의 타입으로, WORKSPACE 또는 DBT PROJECT예요.

START_TIME_RANGE_START | START_TIME_RANGE_END = timestamp

실행 범위를 필터링할 타임스탬프예요.

RESULT_LIMIT = integer

함수가 반환하는 최대 행 수를 지정하는 정수로, 1부터 10,000까지(포함)예요. 기본값: 100

COMMAND = dbt_command

dbt 프로젝트 객체를 실행할 때 사용한 dbt 명령을 지정해요.

USER_NAME = user_name

dbt 프로젝트 객체 실행을 시작한 사용자의 이름이에요.

DATABASE = db_name

지정한 데이터베이스에 대한 레코드만 반환해요.

SCHEMA = schema_name

지정한 스키마에 대한 레코드만 반환해요.

출력

이 함수는 다음 열을 반환해요.

이 열들을 보려면 MONITOR 권한이 있는 역할을 사용해야 해요.

열 이름 데이터 타입 설명
QUERY_ID TEXT 쿼리의 ID
QUERY_START_TIME TIMESTAMP_LTZ 쿼리가 시작된 시간
QUERY_END_TIME TIMESTAMP_LTZ 쿼리가 끝난 시간
USER_NAME TEXT dbt 프로젝트 객체를 만든 사용자
OBJECT_NAME TEXT 실행이 속한 워크스페이스 또는 dbt 프로젝트 객체의 이름
OBJECT_TYPE TEXT 객체 타입(예: WORKSPACE 또는 DBT PROJECT)
DATABASE_NAME TEXT 객체의 데이터베이스
SCHEMA_NAME TEXT 객체의 스키마
COMMAND TEXT 객체에 대해 실행된 명령
ARGS TEXT 객체 실행에 사용된 인자
ERROR_CODE NUMBER 해당하는 경우, 실행 오류 코드
ERROR_MESSAGE TEXT 해당하는 경우, 실행 실패 이유를 설명하는 오류 메시지
WAREHOUSE TEXT 객체에 사용된 웨어하우스
STATE TEXT HANDLED_ERROR 또는 SUCCESS 등 실행 상태
DBT_VERSION TEXT 이 실행에 사용된 특정 버전. 예: 1.9.4
DBT_SNOWFLAKE_VERSION TEXT 이 실행에 사용된 특정 dbt Projects on Snowflake 버전(패치 버전 포함). 예: 1.9.4

접근 제어 요구사항

이 테이블 함수는 다음 권한이 있는 워크스페이스와 dbt 프로젝트의 실행만 포함해요.

  • 워크스페이스에 대한 OWNERSHIP, READ 또는 WRITE

  • dbt 프로젝트에 대한 OWNERSHIP, USAGE 또는 MONITOR

사용 지침

  • 정확한 dbt 프로젝트 객체 이름을 사용해요(따옴표로 만들었으면 대소문자 구분). 일치하는 행이 없으면(잘못된 이름이거나 아직 실행이 없으면) Inputs may not be null. 오류가 발생할 수 있어요.

  • 가능하면 DATABASE, SCHEMA, OBJECT_NAME 같은 함수 인자를 사용해 결과를 필터링해요. 이 필터들은 RESULT_LIMIT(기본값: 100행) 이전에 적용되므로, 이를 사용하면 잠재적으로 잘린 결과 집합을 WHERE 절로 필터링하는 대신 가장 관련성 높은 결과를 얻을 수 있어요.

예제

다음 예제는 최근 실행에 사용된 엔진 버전을 감사해요.

SELECT
    object_name,
    query_start_time,
    query_end_time,
    query_id,
    command,
    state
FROM TABLE (
    SNOWFLAKE.INFORMATION_SCHEMA.DBT_PROJECT_EXECUTION_HISTORY(
      DATABASE => 'ANALYTICS_DB',
      SCHEMA => 'DBT_PROD',
      OBJECT_NAME => 'FINANCE_ANALYTICS'
    )
  )
ORDER BY query_end_time DESC;

시스템 함수와 함께 DBT_PROJECT_EXECUTION_HISTORY 테이블 함수를 사용해 dbt 아티팩트와 로그를 프로그래밍 방식으로 접근하는 자세한 예제는 프로그래밍 방식으로 dbt 아티팩트와 로그에 접근을 참고하세요.

더 알아보기