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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > notebook_task
을 참조합니다. 작업에 대한 Notebook 태스크를 참조하세요.
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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > spark_python_task
을 참조합니다. 작업에 대한 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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > python_wheel_task
을 참조합니다. 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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > spark_jar_task
을 참조합니다. 작업에 대한 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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > sql_task > file
을 참조합니다. 작업에 대한 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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > pipeline_task
을 참조합니다. 작업에 대한 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 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 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를 복사합니다.
이 태스크에 대해 설정할 수 있는 추가 매핑은 REST API 참조의 POST /api/2.1/jobs/create에 정의된 작업 생성 요청 페이로드에서 YAML 형식의 tasks > run_job_task
을 참조합니다.