작업에 대한 dbt 태스크
dbt 태스크를 사용하여 Azure Databricks에서 dbt 프로젝트를 구성하고 실행합니다.
Important
dbt 태스크가 실행되면 Databricks는 실행 방법 필드에 구성된 보안 주체로 DBT_ACCESS_TOKEN
을 삽입합니다.
dbt 작업 구성
다음을 수행하여 작업 UI의 태스크 탭에서 dbt
태스크를 추가합니다.
유형 드롭다운 메뉴에서
dbt
를 선택합니다.원본 드롭다운 메뉴에서 작업 영역을 선택하여 Azure Databricks 작업 영역 폴더에 있는 dbt 프로젝트를 사용하거나 원격 Git 리포지토리에 있는 프로젝트의 Git 공급자를 사용합니다.
작업 영역을 선택하는 경우, 제공된 파일 탐색기를 사용하여 프로젝트 디렉터리를 선택합니다.
Git 공급자를 선택하는 경우, 편집을 클릭하여 프로젝트 리포지토리에 대한 Git 정보를 입력합니다. 작업에서 Git 사용을 참조하세요.
프로젝트가 리포지토리의 루트 디렉터리에 없는 경우, 프로젝트 디렉터리 필드를 사용하여 경로를 지정합니다.
dbt 명령 텍스트 상자에서 실행할 dbt 명령은 dbt deps, dbt seed, dbt run이 기본값입니다. 제공된 명령은 순차적으로 실행됩니다. 필요한 경우, 워크플로에 이러한 필드를 추가, 제거, 편집합니다. dbt 명령이란?을 참조하세요.
SQL 웨어하우스에서 dbt에 의해 생성된 SQL을 실행할 SQL 웨어하우스를 선택합니다. SQL 웨어하우스 드롭다운 메뉴에는 서버리스 및 Pro SQL 웨어하우스만 표시됩니다.
웨어하우스 카탈로그를 지정합니다. 설정되지 않은 경우, 작업 영역 기본값이 사용됩니다.
웨어하우스 스키마를 지정합니다. 기본적으로
default
스키마가 사용됩니다.dbt CLI 컴퓨팅을 선택하여 dbt Core를 실행합니다. Databricks는 작업용 서버리스 컴퓨팅을 사용하거나, 단일 노드 클러스터로 구성된 클래식 작업 컴퓨팅을 사용하는 것을 권장합니다.
태스크의
dbt-databricks
버전을 지정합니다.Serverless
컴퓨팅을 사용하는 경우, 환경 및 라이브러리 필드를 사용하여 새 환경을 선택, 편집, 추가합니다. Notebook 종속성 설치를 참조하세요.다른 모든 컴퓨팅 구성에서는 종속 라이브러리 필드는 기본값으로
dbt-databricks>=1.0.0,<2.0.0
가 채워집니다. 이 설정을 삭제하고 PyPi 라이브러리를 + 추가하여 버전을 고정합니다.참고 항목
Databricks는 dbt 작업을 dbt-databricks 패키지의 특정 버전에 고정하여 개발 및 프로덕션 실행에 동일한 버전을 사용할 것을 권장합니다. Databricks는 dbt-databricks 패키지 버전 1.6.0 이상을 권장합니다.
작업 만들기를 클릭합니다.
dbt 명령이란?
dbt 명령 필드를 사용하면 dbt 명령줄 인터페이스(CLI)를 사용하여 실행할 명령을 지정할 수 있습니다. dbt CLI에 관한 전체 내용은 dbt 문서를 참조하세요.
dbt 설명서에서 해당 dbt 버전에서 지원하는 명령을 확인합니다.
dbt 명령에 옵션 전달
dbt 노드 선택 구문으로 특정 실행에 포함하거나 제외할 리소스를 지정할 수 있습니다. run
, build
등의 명령에 --select
, --exclude
를 포함한 플래그를 지정할 수 있습니다. 전체 설명은 dbt 구문 개요 문서를 참조하세요.
추가 구성 플래그는 dbt에서 프로젝트를 실행하는 방법을 제어합니다. 사용 가능한 플래그 목록은 공식 dbt 문서의 명령줄 옵션 열을 참조하세요.
일부 플래그는 위치 인수를 사용합니다. 플래그의 일부 인수는 문자열입니다. 예제 및 설명은 dbt 문서를 참조하세요.
dbt 명령에 변수 전달
--vars
플래그를 사용하여 dbt 명령 필드에 정적 또는 동적 값을 명령으로 전달합니다.
따옴표로 구분된 JSON을 --vars
에 전달합니다. 다음 예제와 같이 JSON의 모든 키와 값은 큰따옴표로 구분되어야 합니다.
dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'
매개 변수가 있는 dbt 명령 예시
dbt로 작업할 때, 태스크 값, 작업 매개 변수, 동적 작업 매개 변수를 참조할 수 있습니다. 값은 명령이 실행되기 전에 dbt 명령 필드에서 일반 텍스트로 대체됩니다. 태스크 간에 값을 전달하거나 작업 메타데이터를 참조하는 방법에 대한 자세한 내용은 작업 매개 변수화를 참조하세요.
다음 예제에서는 다음 작업 매개 변수가 구성되었다고 가정합니다.
매개 변수 이름 | 매개 변수 값 |
---|---|
volume_path |
/Volumes/path/to/data |
table_name |
my_table |
select_clause |
--select "tag:nightly" |
dbt_refresh |
--full-refresh |
다음 예제에서는 이러한 매개 변수를 참조하는 유효한 방법을 보여줍니다.
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}
다음 예제와 같이 동적 매개 변수 및 태스크 값을 참조할 수도 있습니다.
dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'