Databricks 자산 번들의 작업에 작업 추가
이 문서에서는 Databricks 자산 번들의 Azure Databricks 작업에 추가할 수 있는 다양한 유형의 작업 예시를 제공합니다. Databricks 자산 번들이란?을 참조하세요.
대부분의 작업 태스크 유형에는 지원되는 설정 중 태스크별 매개 변수가 있지만 작업에 전달되는 작업 매개 변수를 정의할 수도 있습니다. 작업 매개 변수에 대해 동적 값 참조가 지원되어 태스크 간에 작업 실행과 관련된 값을 전달할 수 있습니다. 동적 값 참조란?을 참조하세요.
참고 항목
작업 태스크 설정을 재정의할 수 있습니다. Databricks 자산 번들의 작업 태스크 설정 재정의를 참조하세요.
팁
Databricks CLI를 사용하여 기존 작업에 대한 리소스 구성을 신속하게 생성하려면 bundle generate job
명령을 사용합니다.
번들 명령을 참조하세요.
Notebook 태스크
이 태스크는 Notebook을 실행합니다.
다음 예제에서는 작업에 Notebook 태스크를 추가하고 my_job_run_id
이라는 작업 매개 변수를 설정합니다. 배포할 Notebook의 경로는 태스크가 선언된 구성 파일을 기준으로 합니다. 태스크는 Azure Databricks 작업 영역의 배포된 위치에서 Notebook을 가져옵니다.
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
parameters:
- name: my_job_run_id
default: "{{job.run_id}}"
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > notebook_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
작업에 대한 Notebook 태스크를 참조하세요.
If/else 조건 작업
이 condition_task
을 사용하면 if/else 조건부 논리를 사용하여 업무에 작업을 추가할 수 있습니다. 태스크는 다른 작업의 실행을 제어하는 데 사용할 수 있는 조건을 평가합니다. 조건 태스크는 클러스터를 실행할 필요가 없으며 재시도 또는 알림을 지원하지 않습니다. if/else 태스크에 대한 자세한 내용은 If/else 작업사용하여 작업에 분기 논리 추가를 참조하세요.
다음 예제에는 '수리 작업 수'가 5보다 적은 경우에만 실행되는 조건 태스크와 노트북 태스크가 포함되어 있습니다.
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: condition_task
condition_task:
op: LESS_THAN
left: "{{job.repair_count}}"
right: "5"
- task_key: notebook_task
depends_on:
- task_key: condition_task
outcome: "true"
notebook_task:
notebook_path: ../src/notebook.ipynb
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > condition_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
각 작업에 대해
작업에 'for each' 루프가 포함된 작업을 추가할 수 있도록 for_each_task
이/가 지원합니다. 태스크는 제공된 모든 입력에 대해 중첩된 작업을 실행합니다.
다음 예제에서는 작업에 for_each_task
추가하여 다른 작업의 값을 반복하고 처리합니다.
resources:
jobs:
my_job:
name: my_job
tasks:
- task_key: generate_countries_list
notebook_task:
notebook_path: ../src/generate_countries_list.ipnyb
- task_key: process_countries
depends_on:
- task_key: generate_countries_list
for_each_task:
inputs: "{{tasks.generate_countries_list.values.countries}}"
task:
task_key: process_countries_iteration
notebook_task:
notebook_path: ../src/process_countries_notebook.ipnyb
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > for_each_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
Python 스크립트 태스크
이 태스크는 Python 파일을 실행할 수 있습니다.
다음 예제에서는 작업에 Python 스크립트 태스크를 추가합니다. 배포할 Python 파일의 경로는 태스크가 선언된 구성 파일을 기준으로 합니다. 태스크는 Azure Databricks 작업 영역의 배포된 위치에서 Python 파일을 가져옵니다.
resources:
jobs:
my-python-script-job:
name: my-python-script-job
tasks:
- task_key: my-python-script-task
spark_python_task:
python_file: ./my-script.py
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > spark_python_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
작업에 대한 Python 스크립트 태스크도 참조하세요.
Python 휠 태스크
이 태스크는 Python 휠 파일을 실행할 수 있습니다.
다음 예제에서는 작업에 Python 휠 태스크를 추가합니다. 배포할 Python 휠 파일의 경로는 태스크가 선언된 구성 파일을 기준으로 합니다. Databricks 자산 번들 라이브러리 종속성을 참조하세요.
resources:
jobs:
my-python-wheel-job:
name: my-python-wheel-job
tasks:
- task_key: my-python-wheel-task
python_wheel_task:
entry_point: run
package_name: my_package
libraries:
- whl: ./my_package/dist/my_package-*.whl
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > python_wheel_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
Databricks 자산 번들을 사용한 Python 휠 파일 개발과 작업에 대한 Python 휠 태스크을 참조하세요.
JAR 태스크
이 태스크는 JAR을 실행합니다. 로컬 JAR 라이브러리나 작업 영역, Unity Catalog 볼륨 또는 외부 클라우드 스토리지 위치에 있는 라이브러리를 참조할 수 있습니다. Databricks 자산 번들 라이브러리 종속성을 참조하세요.
다음 예제에서는 작업에 JAR 태스크를 추가합니다. JAR의 경로는 지정된 볼륨 위치에 대한 경로입니다.
resources:
jobs:
my-jar-job:
name: my-jar-job
tasks:
- task_key: my-jar-task
spark_jar_task:
main_class_name: org.example.com.Main
libraries:
- jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > spark_jar_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
작업에 대한 JAR 태스크를 참조하세요.
SQL 파일 태스크
이 태스크는 작업 영역 또는 원격 Git 리포지토리에 있는 SQL 파일을 실행합니다.
다음 예제에서는 작업에 SQL vkdlf 태스크를 추가합니다. 이 SQL 파일 태스크로 지정된 SQL 웨어하우스를 사용하여 지정된 SQL 파일을 실행합니다.
resources:
jobs:
my-sql-file-job:
name: my-sql-file-job
tasks:
- task_key: my-sql-file-task
sql_task:
file:
path: /Users/someone@example.com/hello-world.sql
source: WORKSPACE
warehouse_id: 1a111111a1111aa1
SQL 웨어하우스의 ID를 가져오려면 SQL 웨어하우스의 설정 페이지를 연 다음 개요 탭의 이름 필드에 있는 웨어하우스 이름 뒤의 괄호 안에 있는 ID를 복사합니다.
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > sql_task > file
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
작업에 대한 SQL 태스크를 참조하세요.
Delta Live Tables 파이프라인 태스크
이 태스크는 Delta Live Tables 파이프라인을 실행합니다. Delta Live Tables이란?.
다음 예제에서는 작업에 Delta Live Tables 파이프라인 태스크를 추가합니다. 이 Delta Live Tables 파이프라인 태스크는 지정된 파이프라인을 실행합니다.
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
파이프라인의 ID는 작업 영역에서 파이프라인을 열고 파이프라인 설정 페이지의 파이프라인 세부 정보 탭에 있는 파이프라인 ID 값을 복사하여 가져올 수 있습니다.
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > pipeline_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
작업에 대한 Delta Live Tables 파이프라인 태스크를 참조하세요.
dbt 태스크
이 태스크는 하나 이상의 dbt 명령을 실행합니다. dbt Cloud 연결을 참조하세요.
다음 예제에서는 작업에 dbt 태스크를 추가합니다. 이 dbt 파일 태스크로 지정된 SQL 웨어하우스를 사용하여 지정된 dbt 명령을 실행합니다.
resources:
jobs:
my-dbt-job:
name: my-dbt-job
tasks:
- task_key: my-dbt-task
dbt_task:
commands:
- "dbt deps"
- "dbt seed"
- "dbt run"
project_directory: /Users/someone@example.com/Testing
warehouse_id: 1a111111a1111aa1
libraries:
- pypi:
package: "dbt-databricks>=1.0.0,<2.0.0"
SQL 웨어하우스의 ID를 가져오려면 SQL 웨어하우스의 설정 페이지를 연 다음 개요 탭의 이름 필드에 있는 웨어하우스 이름 뒤의 괄호 안에 있는 ID를 복사합니다.
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > dbt_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.
작업에 대한 dbt 태스크를 참조하세요.
Databricks 자산 번들에는 dbt 태스크를 사용하여 작업을 정의하는 dbt-sql
프로젝트 템플릿과 배포된 dbt 작업에 대한 dbt 프로필도 포함되어 있습니다. Databricks 번들 템플릿에 대한 자세한 내용은 기본 번들 템플릿 사용을 참조하세요.
작업 실행 태스크
이 태스크는 다른 작업을 실행합니다.
다음 예제는 첫 번째 작업을 실행하는 두 번째 작업의 작업 실행 태스크를 포함합니다.
resources:
jobs:
my-first-job:
name: my-first-job
tasks:
- task_key: my-first-job-task
new_cluster:
spark_version: "13.3.x-scala2.12"
node_type_id: "i3.xlarge"
num_workers: 2
notebook_task:
notebook_path: ./src/test.py
my_second_job:
name: my-second-job
tasks:
- task_key: my-second-job-task
run_job_task:
job_id: ${resources.jobs.my-first-job.id}
이 예제에서는 대체를 사용하여 실행할 작업의 ID를 가져옵니다. UI에서 작업 ID를 가져오려면, 작업 영역에서 작업을 열고 작업 설정 페이지의 작업 세부 정보 탭에 있는 작업 ID 값에서 ID를 복사합니다.
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 tasks > run_job_task
에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 을 참조합니다.