dbt Projects on Snowflake 에 대한 제한 사항, 요구 사항 및 고려 사항

dbt Projects on Snowflake 를 사용하기 전에 요구 사항, 고려 사항, 제한 사항을 검토하세요.

dbt 프로젝트 구성에 대한 제한 사항, 요구 사항 및 고려 사항

dbt Projects on Snowflake 에서 지원하는 dbt 프로젝트 구성에는 다음 요구 사항, 고려 사항, 제한 사항이 적용됩니다.

  • Only dbt Core projects are supported. dbt Cloud projects aren’t supported. When you migrate an existing dbt Core project to Snowflake, it must be compatible with supported dbt Core versions.

  • Snowflake 작업 공간의 각 dbt 프로젝트 폴더에는 프로젝트에 대한 Snowflake의 대상 warehouse, database, schema, role`을 지정하는 :file:`profiles.yml 파일이 포함되어야 합니다. type`은 :code:`snowflake`로 설정해야 합니다. dbt에는 :code:`account 및 :code:`user`가 필요하지만, dbt 프로젝트는 현재 계정 및 사용자 컨텍스트로 Snowflake에서 실행되므로 비어 있거나 임의의 문자열로 남을 수 있습니다.

  • 작업 공간의 dbt 프로젝트는 폴더 구조에 20,000개 이상의 파일을 포함할 수 없습니다. 이 제한에는 dbt 프로젝트 디렉터리와 하위 디렉터리의 모든 파일이 포함되며, dbt 프로젝트가 작업 공간 내에서 실행될 때 로그 파일이 저장되는 target/dbt_packages/logs 디렉터리도 포함됩니다.

  • 환경 변수(예: {{ env_var ('MY_ENV_VAR') }})는 dbt 프로젝트 오브젝트 실행 시 지원되지 않습니다. 이에 대한 대안으로, 프로젝트 변수(예: --vars)를 사용합니다. 자세한 내용은 `프로젝트 변수`_를 참조하세요.

  • Serverless tasks can’t be used to execute dbt project objects. When you create a task that executes the EXECUTE DBT PROJECT command, you must specify a user-managed warehouse.

  • 모델 선택기(예: EXECUTE DBT PROJECT foo ARGS='--select model1'EXECUTE DBT PROJECT foo ARGS='--select model2')를 사용하는 경우에도 동일한 dbt 프로젝트 오브젝트에 대해 여러 EXECUTE DBT PROJECT 명령을 동시에 실행하는 것은 지원되지 않습니다. 동시에 실행하는 경우 예기치 않은 내부 오류 메시지가 수신될 수 있습니다. 주어진 dbt 프로젝트 오브젝트에 대해 한 번에 하나의 EXECUTE DBT PROJECT 명령만 실행합니다. 여러 명령을 병렬로 실행해야 하는 경우 각 동시 명령에 대해 별도의 dbt 프로젝트 오브젝트를 생성합니다.

    dbt 내에서 스레딩 구성 사용(예: threads: 8)은 지원되며 권장됩니다. 동시성 제한은 동일한 dbt 프로젝트 오브젝트에 대해 여러 EXECUTE DBT PROJECT 호출을 동시에 실행하는 경우에만 적용됩니다.

저장 프로시저에 대한 제한 사항, 요구 사항 및 고려 사항

저장 프로시저를 사용하여 EXECUTE DBT PROJECT를 호출하는 경우, 호출자 권한 저장 프로시저를 사용합니다. 자세한 내용은 CREATE PROCEDURE저장 프로시저 만들기 섹션을 참조하십시오.

원격 분석, 로깅 및 추적에 대한 제한 사항, 요구 사항 및 고려 사항

Snowflake의 dbt에 대한 원격 분석, 로깅, 추적에는 다음 요구 사항, 고려 사항, 제한 사항이 적용됩니다.

  • dbt Projects on Snowflake 용 작업 공간은 표준 출력을 동적으로 스트리밍하지 않으며, 표준 출력은 명령 완료 시에만 볼 수 있습니다.

  • 로그 및 추적을 보려면 dbt 프로젝트 오브젝트에 LOG_LEVEL 및 TRACE_LEVEL을 설정해야 합니다. 자세한 내용은 Snowflake의 dbt 프로젝트에 대한 액세스 제어dbt Projects on Snowflake 모니터링 섹션을 참조하십시오.

  • 기본적으로 Snowflake는 기본 SNOWFLAKE.TELEMETRY.EVENTS 테이블에서 원격 분석을 수집합니다. 계정의 이벤트 테이블로 설정된 사용자 지정 이벤트 테이블이 있는 경우 원격 분석 데이터가 그곳에서 수집됩니다. Enterprise Edition 계정을 사용하는 경우 이벤트 테이블을 생성하여 원격 분석 데이터를 수집하고 이를 dbt 프로젝트 오브젝트가 배포된 데이터베이스와 연결할 수 있습니다. 자세한 내용은 이벤트 테이블 개요 섹션을 참조하십시오.

쿼리 내역 DAG에 대한 제한 사항

쿼리 내역 DAG 에는 시각화를 렌더링하기 위한 manifest.jsonrun_results.json 아티팩트가 모두 필요합니다. run_results.json 이 생성되기 전에 dbt 프로젝트 오브젝트 실행이 실패하는 경우, Query DetailsDAG 탭에 “사용 가능한 데이터 없음”이 대신 표시됩니다.

run_results.json 이 생성되지 않도록 방해하는 빠른 실행 실패의 일반적인 원인은 다음과 같습니다.

  • dbt 프로젝트 오브젝트를 실행할 수 있는 권한이 충분하지 않습니다.

  • 프로젝트 구성이 유효하지 않습니다(예: 누락되거나 잘못된 dbt_project.yml 파일).

  • dbt deps 와 함께 설치되지 않아 종속성이 누락되었습니다.

To resolve this, check the dbt Output section in the Query Details tab for error messages, fix the underlying issue, redeploy the dbt project object, and re-execute it. For more information about monitoring dbt project object executions, see 쿼리 내역 DAG 보기.