SYSTEM$LOCATE_DBT_ARCHIVE
SYSTEM$LOCATE_DBT_ARCHIVE
지정한 dbt 프로젝트 객체에 대해 압축된 dbt 실행 산출물을 내려받을 수 있는 URL을 반환하는 시스템 함수예요. dbt 프로젝트 실행 결과를 프로그래밍 방식으로 접근할 때 씁니다.
본문
SYSTEM$LOCATE_DBT_ARCHIVE ( '<query_id>' )
<query_id> — 파일을 찾으려는 dbt 프로젝트 객체 실행의 쿼리 ID예요.
지정한 dbt 프로젝트 객체 실행의 dbt_artifacts.zip URL을 반환해요. 압축 파일에는 컴파일된 SQL과 별도로 업로드되지 않는 파일, 실행 로그를 포함한 전체 target 디렉터리가 들어 있어요.
컴파일된 SQL 같은 보관된 target과 로그가 필요할 때 SYSTEM$LOCATE_DBT_ARCHIVE를 직접 사용해요. 반환된 압축 파일을 EXECUTE DBT PROJECT의 IMPORTS 절에서 AS 'state'로 가져오면, Snowflake가 ./imports/state에 자동으로 압축을 풀어주고 dbt 산출물은 ./imports/state/target에 생겨요. 실행당 최대 하나의 ZIP 파일을 자동으로 풀 수 있어요. 전체 압축 파일을 가져오는 것은 개별 산출물을 가져오는 것보다 오래 걸릴 수 있어요.
반면 SYSTEM$LOCATE_DBT_ARTIFACTS는 결과 디렉터리를 반환해요. IMPORTS에서 사용하면 dbt_artifacts.zip을 포함한 결과 디렉터리를 가져오지만 ZIP 파일은 풀지 않아요.
접근 제어 요구사항 — 이 함수는 Workspaces가 아닌 dbt 프로젝트 객체에서만, 다음 권한 중 하나를 가질 때 사용할 수 있어요: dbt 프로젝트 객체에 대한 OWNERSHIP, USAGE 또는 MONITOR.
사용 메모
- dbt 프로젝트 객체에서만 동작하고 Workspaces에는 사용할 수 없어요.
- CREATE DBT PROJECT나 ALTER DBT PROJECT ... DEPLOY에서 생성된 쿼리 ID는 지원되지 않아요.
- 파일 내용 직접 조회는 지원되지 않아요.
query_id가 NULL이거나 dbt 실행이 아니면 오류가 나요.- dbt 프로젝트 결과는 최대 14일간 사용할 수 있어요.
- 실행이 타임아웃되거나 취소되거나 업로드 전에 실패하면 파일을 사용할 수 없어요. 그런 경우 dbt 기록에
UNHANDLED ERROR로 나타나요. - 압축 파일은 실행이 완료된 후에만 제공되므로 진행 중인 실행의 압축 파일을 찾는 데는 쓸 수 없어요.
예시 — 지정한 실행의 압축 산출물의 snow:// URL 반환:
SELECT SYSTEM$LOCATE_DBT_ARCHIVE($latest_query_id);