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}}'
이 작업에 대해 설정할 수 있는 추가 매핑은 YAML 형식으로 표현된 REST API 참조의 POST /api/2.1/jobs/create 내 작업 생성 작업의 요청 페이로드 tasks > notebook_task
에서 확인할 수 있습니다.
작업에 대한 Notebook 태스크를 참조하세요.
If/else 조건 작업
이 condition_task
을 사용하면 if/else 조건부 논리를 사용하여 업무에 작업을 추가할 수 있습니다. 태스크는 다른 작업의 실행을 제어하는 데 사용할 수 있는 조건을 평가합니다. 조건 태스크는 클러스터를 실행할 필요가 없으며 재시도 또는 알림을 지원하지 않습니다. if/else 태스크에 대한 자세한 내용은 If/else 작업사용하여 작업에 분기 논리 추가를 참조하세요.
다음 예제에는 작업 복구 수가 5보다 작은 경우에만 Notebook 작업이 실행되는 조건 태스크 및 Notebook 작업이 포함되어 있습니다.
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 참조의 YAML 형식에서 설명된 POST /api/2.1/jobs/create의 요청 페이로드 내 tasks > condition_task
에서 확인하세요.
각 작업에 대해
작업에 '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
이 작업에 대해 설정할 수 있는 추가 매핑은 YAML 형식으로 표현된 REST API 참조에서 POST /api/2.1/jobs/create 정의된 작업 만들기 작업의 요청 페이로드에서 tasks > for_each_task
참조하세요.
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
이 작업에 대해 설정할 수 있는 추가 매핑에 관해서는 POST /api/2.1/jobs/create에 정의된 작업 생성 작업의 요청 페이로드에서 tasks > spark_python_task
을 참조하십시오. 이는 YAML 형식으로 표현된 REST API 참조에 포함되어 있습니다.
작업에 대한 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
이 작업에 대해 설정할 수 있는 추가 매핑은 YAML 형식으로 표현된 REST API 참조에서 POST /api/2.1/jobs/create의 및에 정의된 작업 생성 작업의 요청 페이로드에 있는 tasks > python_wheel_task
을 참조하세요.
Databricks 자산 번들을 사용한 Python 휠 파일 개발과 작업에 대한 Python 휠 태스크을 참조하세요.
JAR 태스크
이 태스크는 JAR을 실행합니다. 로컬 JAR 라이브러리 또는 작업 영역, Unity 카탈로그 볼륨 또는 외부 클라우드 스토리지 위치에 있는 라이브러리를 참조할 수 있습니다. 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 참조의 POST /api/2.1/jobs/create에서 정의된 작업 생성 작업의 요청 페이로드에서 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를 복사합니다.
이 작업에 대해 설정할 수 있는 추가 매핑에 대해서는, YAML 형식으로 표현된 REST API 참조의 POST /api/2.1/jobs/create에서 정의된 작업 생성 작업의 요청 페이로드 tasks > sql_task > file
를 참조하세요.
작업에 대한 SQL 태스크를 참조하세요.
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 참조의 YAML 형식 표현에서 안내하는 대로 POST /api/2.1/jobs/create에 위치한 작업 만들기 요청 페이로드의 tasks > pipeline_task
을 참조하세요. 작업에 대한
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를 복사합니다.
이 작업에 대해 설정할 수 있는 추가 매핑은 YAML 형식으로 표현된 REST API 참조 내 POST /api/2.1/jobs/create에 정의된 작업 만들기 작업의 요청 페이로드에서 tasks > dbt_task
을 참조하세요.
작업에 대한 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를 복사합니다.
이 작업에 대해 설정할 수 있는 추가 매핑은 YAML 형식으로 표현된 REST API 참조의 POST /api/2.1/jobs/create 항목 내 작업 만들기 작업의 요청 페이로드에서 tasks > run_job_task
을(를) 참조하세요.