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)
본문
문법
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 아티팩트와 로그에 접근을 참고하세요.