다음을 통해 공유


Databricks 자산 번들에서 업무에 작업 추가

이 페이지에서는 Databricks 자산 번들에서 작업 작업을 정의하는 방법에 대한 정보를 제공합니다. 작업 작업에 대한 자세한 내용은 Lakeflow 작업에서 태스크 구성 및 편집을 참조하세요.

중요합니다

작업 git_source 필드와 source로 설정된 태스크 GIT 필드는 로컬 상대 경로가 Git 리포지토리의 동일한 콘텐츠를 가리키지 않을 수 있기 때문에 번들에 적합하지 않습니다. 번들은 배포된 작업이 배포된 장소에서의 로컬 복사본과 동일한 파일을 가지고 있을 것으로 예상하고 있습니다.

대신 리포지토리를 로컬로 복제하고 이 리포지토리 내에서 번들 프로젝트를 설정하여 작업의 원본이 작업 영역이 되도록 합니다.

작업 구성

작업 정의의 tasks 키에서 작업 번들에 대한 작업을 정의합니다. 사용 가능한 작업 유형에 대한 작업 구성의 예는 작업 설정 섹션에 있습니다. 번들에서 작업을 정의하는 방법에 대한 자세한 내용은 작업을 참조하세요.

Databricks CLI사용하여 기존 작업에 대한 리소스 구성을 신속하게 생성하려면 bundle generate job 명령을 사용할 수 있습니다. 번들 명령을 참조하세요.

작업 값을 설정하기 위해 대부분의 작업 작업 유형에는 작업별 매개 변수가 있지만 태스크에 전달되는 작업 매개 변수 를 정의할 수도 있습니다. 작업 매개 변수에 대해 동적 값 참조가 지원되며, 작업 간에 작업 실행과 관련된 값을 전달할 수 있습니다. 작업 유형별로 작업 값을 전달하는 방법에 대한 자세한 내용은 작업 유형별 세부 정보를 참조하세요.

대상 작업 영역에 대한 설정을 사용하여 일반 작업 작업 설정을 재정의할 수도 있습니다. 대상 설정으로 재정의를 참조하세요.

다음 예제 구성은 두 개의 Notebook 작업이 있는 작업을 정의하고 첫 번째 작업에서 두 번째 작업으로 작업 값을 전달합니다.

resources:
  jobs:
    pass_task_values_job:
      name: pass_task_values_job
      tasks:
        # Output task
        - task_key: output_value
          notebook_task:
            notebook_path: ../src/output_notebook.ipynb

        # Input task
        - task_key: input_value
          depends_on:
            - task_key: output_value
          notebook_task:
            notebook_path: ../src/input_notebook.ipynb
            base_parameters:
              received_message: '{{tasks.output_value.values.message}}'

output_notebook.ipynbmessage 키에 대한 작업 값을 설정하는 다음 코드를 포함합니다.

# Databricks notebook source
# This first task sets a simple output value.

message = "Hello from the first task"

# Set the message to be used by other tasks
dbutils.jobs.taskValues.set(key="message", value=message)

print(f"Produced message: {message}")

태스크 input_notebook.ipynb 의 구성에 설정된 매개 변수 received_message의 값을 검색합니다.

# This notebook receives the message as a parameter.

dbutils.widgets.text("received_message", "")
received_message = dbutils.widgets.get("received_message")

print(f"Received message: {received_message}")

작업 설정

이 섹션에는 각 작업 작업 유형에 대한 설정 및 예제가 포함되어 있습니다.

회의실 전자 필기장 정리 작업

클린룸 기록장 작업은 clean_rooms_notebook_task 필드가 있을 때 클린룸 기록장을 실행합니다. 클린룸에 대한 자세한 내용은 Azure Databricks Clean Rooms란?을 참조하세요.

다음 키는 클린룸 노트북 작업에 사용할 수 있습니다. 해당 REST API 개체 정의는 clean_rooms_notebook_task 참조하세요.

Key 유형 Description
clean_room_name String 필수 사항입니다. 전자 필기장이 속한 클린룸입니다.
etag String 노트북 리소스의 신선도를 검증하기 위한 체크섬입니다. 클린룸 자산 가져오기 작업 호출로 가져올 수 있습니다.
object Map 클린룸 Notebook 작업에 사용할 기본 매개 변수입니다.
notebook_name String 필수 사항입니다. 실행 중인 Notebook의 이름입니다.

조건 작업

condition_task을 사용하면 if/else 조건부 논리를 사용하여 업무에 작업을 추가할 수 있습니다. 태스크는 다른 작업의 실행을 제어하는 데 사용할 수 있는 조건을 평가합니다. 조건 태스크는 클러스터를 실행할 필요가 없으며 재시도 또는 알림을 지원하지 않습니다. if/else 조건 태스크에 대한 자세한 내용은 If/else 태스크를 사용하여 작업에 분기 논리 추가를 참조하세요.

조건 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 condition_task 참조하세요.

Key 유형 Description
left String 필수 사항입니다. 조건의 왼쪽 피연산자입니다. 문자열 값이나 작업 상태 또는 동적 값 참조(예: {{job.repair_count}} 또는 {{tasks.task_key.values.output}}.)일 수 있습니다.
op String 필수 사항입니다. 비교에 사용할 연산자입니다. 유효한 값은 다음과 EQUAL_TONOT_EQUALGREATER_THANGREATER_THAN_OR_EQUALLESS_THAN같습니다. LESS_THAN_OR_EQUAL
right String 필수 사항입니다. 조건의 오른쪽 피연산자입니다. 문자열 값이나 작업 상태 또는 동적 값 참조일 수 있습니다.

예시

다음 예제에는 작업 복구 수가 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 개체 정의는 dashboard_task 참조하세요.

Key 유형 Description
dashboard_id String 필수 사항입니다. 새로 고침할 대시보드의 식별자입니다. 대시보드가 이미 있어야 합니다.
subscription Map 대시보드 스냅샷을 보내기 위한 구독 구성입니다. 각 구독 개체는 대시보드 새로 고침이 완료된 후 스냅샷을 보낼 위치에 대한 대상 설정을 지정할 수 있습니다. 구독을 참조 하세요.
warehouse_id String 일정에 따라 대시보드를 실행할 웨어하우스 ID입니다. 지정하지 않으면 대시보드의 기본 웨어하우스가 사용됩니다.

예시

다음 예제에서는 작업에 대시보드 작업을 추가합니다. 작업이 실행되면 지정된 ID가 있는 대시보드가 새로 고쳐집니다.

resources:
  jobs:
    my-dashboard-job:
      name: my-dashboard-job
      tasks:
        - task_key: my-dashboard-task
          dashboard_task:
            dashboard_id: 11111111-1111-1111-1111-111111111111

dbt 태스크

이 태스크는 하나 이상의 dbt 명령을 실행합니다. dbt에 대한 자세한 내용은 dbt Cloud에 연결을 참조하세요.

다음 키는 dbt 작업에 사용할 수 있습니다. 해당 REST API 개체 정의는 dbt_task 참조하세요.

Key 유형 Description
catalog String 사용할 카탈로그의 이름입니다. warehouse_id가 지정된 경우에만 카탈로그 값을 지정할 수 있습니다. 이 필드에는 dbt-databricks >= 1.1.1이 필요합니다.
commands 순서 필수 사항입니다. 순서대로 실행할 dbt 명령 목록입니다. 각 명령은 전체 dbt 명령(예: , dbt deps, dbt seed, dbt rundbt test)이어야 합니다. 최대 10개의 명령을 제공할 수 있습니다.
profiles_directory String dbt profiles.yml 파일이 포함된 디렉터리의 경로입니다. warehouse_id이 지정되지 않은 경우에만 지정할 수 있습니다. warehouse_id가 지정되지 않고 이 폴더가 설정되지 않은 경우, 루트 디렉터리가 사용됩니다.
project_directory String dbt 프로젝트를 포함하는 디렉터리의 경로입니다. 지정하지 않으면 기본적으로 리포지토리 또는 작업 영역 디렉터리의 루트로 설정됩니다. Databricks 작업 영역에 저장된 프로젝트의 경우 경로는 절대 경로여야 하며 슬래시로 시작해야 합니다. 원격 리포지토리의 프로젝트의 경우 경로가 상대 경로여야 합니다.
schema String 기록할 스키마. 매개변수는 warehouse_id이(가) 제공될 때만 사용됩니다. 제공되지 않으면 기본 스키마가 사용됩니다.
source String dbt 프로젝트의 위치 형식입니다. 유효한 값은 WORKSPACEGIT입니다. 로 WORKSPACE설정하면 프로젝트가 Databricks 작업 영역에서 검색됩니다. 로 GIT설정하면 프로젝트에 정의된 git_sourceGit 리포지토리에서 프로젝트가 검색됩니다. 비어 있는 경우, 태스크는 GIT이 정의되어 있으면 git_source를 사용하고, 그렇지 않으면 WORKSPACE를 사용합니다.
warehouse_id String dbt 명령을 실행하는 데 사용할 SQL 웨어하우스의 ID입니다. 지정하지 않으면 기본 웨어하우스가 사용됩니다.

예시

다음 예제에서는 작업에 dbt 태스크를 추가합니다. 이 dbt 작업은 지정된 SQL 웨어하우스를 사용하여 지정된 dbt 명령을 실행합니다.

SQL 웨어하우스의 ID를 가져오려면 SQL 웨어하우스의 설정 페이지를 연 다음 개요 탭의 이름 필드에 있는 웨어하우스 이름 뒤의 괄호 안에 있는 ID를 복사합니다.

Databricks 자산 번들에는 dbt 태스크를 사용하여 작업을 정의하는 dbt-sql 프로젝트 템플릿과 배포된 dbt 작업에 대한 dbt 프로필도 포함되어 있습니다. Databricks 자산 번들 템플릿에 대한 자세한 내용은 기본 번들 템플릿참조하세요.

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'

각 작업에 대해

for_each_task은/는 작업에 'for each' 루프를 포함하는 태스크를 추가할 수 있도록 지원합니다. 태스크는 제공된 모든 입력에 대해 중첩된 작업을 실행합니다. for_each_task에 대한 자세한 내용은 을 참조하십시오. For each 작업을 사용하여에서 다른 작업을 반복 실행하십시오.

for_each_task 에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 for_each_task 참조하세요.

Key 유형 Description
concurrency 정수 동시에 실행할 수 있는 최대 작업 반복 수입니다. 지정하지 않으면 모든 반복이 클러스터 및 작업 영역 제한에 따라 병렬로 실행될 수 있습니다.
inputs String 필수 사항입니다. 루프의 입력 데이터입니다. JSON 문자열 또는 배열 매개 변수에 대한 참조일 수 있습니다. 배열의 각 요소는 중첩된 작업의 반복 하나에 전달됩니다.
task Map 필수 사항입니다. 각 입력에 대해 실행할 중첩된 작업 정의입니다. 이 개체에는 task_key를 포함하여 작업 유형(예: notebook_task, python_wheel_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

JAR 작업

당신은 이 태스크를 사용하여 JAR을 실행합니다. 로컬 JAR 라이브러리 또는 작업 영역, Unity 카탈로그 볼륨 또는 외부 클라우드 스토리지 위치에 있는 라이브러리를 참조할 수 있습니다. JAR 파일(Java 또는 Scala)을 참조하세요.

표준 액세스 모드에서 Unity 카탈로그 사용 클러스터에서 Scala JAR 파일을 컴파일하고 배포하는 방법에 대한 자세한 내용은 자습서: 서버리스 컴퓨팅에서 Scala 코드 실행을 참조하세요.

JAR 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 jar_task 참조하세요.

Key 유형 Description
jar_uri String Deprecated. 실행할 JAR의 URI입니다. DBFS 및 클라우드 스토리지 경로가 지원됩니다. 이 필드는 더 이상 사용되지 않으며 사용해서는 안 됩니다. 대신 필드를 사용하여 libraries JAR 종속성을 지정합니다.
main_class_name String 필수 사항입니다. 실행될 main 메서드가 포함된 클래스의 전체 이름입니다. 이 클래스는 라이브러리로 제공된 JAR에 포함되어야 합니다. 코드는 Spark 컨텍스트를 가져오는 데 사용해야 SparkContext.getOrCreate 합니다. 그렇지 않으면 작업 실행이 실패합니다.
parameters 순서 main 메서드에 전달된 매개 변수입니다. 작업 매개 변수 변수를 사용하여 작업 실행에 대한 정보가 포함된 매개 변수를 설정합니다.

예시

다음 예제에서는 작업에 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

Notebook 작업

이 태스크를 사용하여 Notebook을 실행합니다. 작업에 대한 Notebook 태스크를 참조하세요.

Notebook 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 notebook_task 참조하세요.

Key 유형 Description
base_parameters Map 이 작업의 각 실행에 사용할 기본 매개 변수입니다.
  • 실행이 작업 호출에 의해 시작되거나 매개 변수가 지정된 지금 실행으로 시작되면 두 매개 변수 맵이 병합됩니다.
  • 동일한 키가 base_parametersrun-now에 지정되면, run-now의 값이 사용됩니다. 작업 매개 변수 변수를 사용하여 작업 실행에 대한 정보가 포함된 매개 변수를 설정합니다.
  • 노트북이 작업의 base_parameters 또는 run-now 재정의 매개 변수에서 지정되지 않은 매개 변수를 받을 경우, 노트북의 기본값이 사용됩니다. dbutils.widgets.get을 사용해 Notebook에서 이러한 매개변수를 가져옵니다.
notebook_path String 필수 사항입니다. 예를 들어 /Users/user.name@databricks.com/notebook_to_runDatabricks 작업 영역 또는 원격 리포지토리에 있는 Notebook의 경로입니다. Databricks 작업 영역에 저장된 Notebook의 경우 경로는 절대 경로여야 하며 슬래시로 시작해야 합니다. 원격 리포지토리에 저장된 Notebook의 경우 경로가 상대 경로여야 합니다.
source String 노트북의 위치 유형입니다. 유효한 값은 WORKSPACEGIT입니다. 로 WORKSPACE설정하면 로컬 Databricks 작업 영역에서 Notebook이 검색됩니다. GIT로 설정되면, 노트북은 git_source에 정의된 Git 저장소에서 검색됩니다. 값이 비어 있으면 GIT를 사용하고, git_source이 정의된 경우 아니면 WORKSPACE를 사용합니다.
warehouse_id String Notebook을 운영할 웨어하우스의 ID입니다. 클래식 SQL 웨어하우스는 지원되지 않습니다. 대신 서버리스 또는 PRO SQL 웨어하우스를 사용합니다. SQL 웨어하우스는 SQL 셀만 지원합니다. Notebook에 SQL이 아닌 셀이 포함된 경우 실행이 실패하므로 셀에서 Python(또는 기타)을 사용해야 하는 경우 서버리스를 사용합니다.

예시

다음 예제에서는 작업에 Notebook 태스크를 추가하고 my_job_run_id이라는 작업 매개 변수를 설정합니다. 배포할 Notebook의 경로는 태스크가 선언된 구성 파일을 기준으로 합니다. 작업은 Azure Databricks 작업 영역의 배포된 위치에서 노트북을 가져옵니다.

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}}'

파이프라인 작업

이 작업을 사용하여 파이프라인을 실행합니다. Lakeflow Spark 선언적 파이프라인을 참조하세요.

파이프라인 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 pipeline_task 참조하세요.

Key 유형 Description
full_refresh 불리언 (Boolean) true이면 파이프라인의 전체 새로 고침이 트리거되어 파이프라인의 모든 데이터 세트를 완전히 다시 계산합니다. false이거나 생략하면 증분 데이터만 처리됩니다. 자세한 내용은 파이프라인 새로 고침 의미 체계를 참조하세요.
pipeline_id String 필수 사항입니다. 실행할 파이프라인의 ID입니다. 파이프라인이 이미 있어야 합니다.

예시

다음 예제에서는 파이프라인 작업을 작업에 추가합니다. 이 작업은 지정된 파이프라인을 실행합니다.

작업 영역에서 파이프라인을 열고 파이프라인 설정 페이지의 파이프라인 세부 정보 탭에서 파이프라인 ID 값을 복사하여 파이프라인의 ID를 가져올 수 있습니다.

resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111

Power BI 작업

중요합니다

Power BI 작업 유형은 공개 미리 보기로 제공됩니다.

이 작업을 사용하여 Power BI 의미 체계 모델(이전의 데이터 세트)의 새로 고침을 트리거합니다.

Power BI 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 power_bi_task 참조하세요.

Key 유형 Description
connection_resource_name String 필수 사항입니다. Databricks에서 Power BI로 인증할 Unity 카탈로그 연결의 이름입니다.
power_bi_model String 필수 사항입니다. 업데이트할 Power BI 의미 체계 모델(데이터 세트)의 이름입니다.
refresh_after_update 불리언 (Boolean) 업데이트가 완료된 후 Power BI 의미 체계 모델을 새로 고칠지 여부입니다. 기본값은 false입니다.
tables 순서 Power BI로 내보낼 테이블 목록(각각 맵)입니다. 표를 참조하세요.
warehouse_id String Power BI 데이터 원본으로 사용할 SQL 웨어하우스의 ID입니다.

예시

다음 예제에서는 연결을 지정하는 Power BI 작업, 업데이트할 Power BI 모델 및 내보낼 Databricks 테이블을 정의합니다.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: power_bi_task
          power_bi_task:
            connection_resource_name: 'connection_name'
            power_bi_model:
              workspace_name: 'workspace_name'
              model_name: 'model_name'
              storage_mode: 'DIRECT_QUERY'
              authentication_method: 'OAUTH'
              overwrite_existing: false
            refresh_after_update: false
            tables:
              - catalog: 'main'
                schema: 'tpch'
                name: 'customers'
                storage_mode: 'DIRECT_QUERY'
            warehouse_id: '1a111111a1111aa1'

Python 스크립트 태스크

이 태스크는 Python 파일을 실행할 수 있습니다.

Python 스크립트 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 python_task 참조하세요.

Key 유형 Description
parameters 순서 Python 파일에 전달할 매개 변수입니다. 작업 매개 변수 변수를 사용하여 작업 실행에 대한 정보가 포함된 매개 변수를 설정합니다.
python_file String 필수 사항입니다. 예를 들어 /Users/someone@example.com/my-script.py실행할 Python 파일의 URI입니다. Databricks 작업 영역에 저장된 Python 파일의 경우 경로는 절대 경로여야 하며 /로 시작해야 합니다. 원격 리포지토리에 저장된 파일의 경우 경로가 상대 경로여야 합니다. 이 필드는 변수와 같은 동적 값 참조를 지원하지 않습니다.
source String Python 파일의 위치 형식입니다. 유효한 값은 WORKSPACEGIT입니다. 로 WORKSPACE설정하면 로컬 Databricks 작업 영역에서 파일이 검색됩니다. GIT으로 설정하면 git_source에 정의된 Git 리포지토리에서 파일이 검색됩니다. 값이 비어 있으면 GIT를 사용하고, git_source이 정의된 경우 아니면 WORKSPACE를 사용합니다.

예시

다음 예제에서는 작업에 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

파이썬 휠 작업

이 작업을 사용하여 Python 휠을 실행합니다. Databricks 자산 번들을 사용하여 Python 휠 파일 빌드를 참조하세요.

Python 휠 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 python_wheel_task 참조하세요.

Key 유형 Description
entry_point String 필수 사항입니다. 실행할 명명된 진입점: 함수 또는 클래스입니다. 패키지의 메타데이터에 없는 경우 $packageName.$entryPoint()을/를 사용하여 패키지에서 직접 함수를 실행합니다.
named_parameters Map Python 휠 작업에 전달할 명명된 매개 변수로, 키워드 인수라고도 합니다. 명명된 매개 변수는 문자열 키와 문자열 값이 있는 키-값 쌍입니다. parametersnamed_parameters를 둘 다 지정할 수 없습니다. 지정된 named_parameters 경우 parameters 진입점 함수에 키워드 인수로 전달됩니다.
package_name String 필수 사항입니다. 실행할 Python 패키지의 이름입니다. 모든 종속성을 환경에 설치해야 합니다. 패키지 종속성을 확인하거나 설치하지 않습니다.
parameters 순서 Python 휠 작업에 전달할 매개 변수( 위치 인수라고도 함)입니다. 각 매개 변수는 문자열입니다. named_parameters가 지정된 경우, 지정해서는 안 됩니다.

예시

다음 예제에서는 작업에 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 개체 정의는 run_job_task 참조하세요.

Key 유형 Description
job_id 정수 필수 사항입니다. 실행할 작업의 ID입니다. 작업이 작업 영역에 이미 있어야 합니다.
job_parameters Map 실행 중인 작업에 전달할 작업 수준 매개 변수입니다. 이러한 매개 변수는 작업 내에서 액세스할 수 있습니다.
pipeline_params Map 파이프라인 작업에 대한 매개 변수입니다. 실행 중인 작업에 파이프라인 태스크가 포함된 경우에만 사용됩니다. 파이프라인의 전체 새로 고침을 트리거하려면 full_refresh을 포함할 수 있습니다.

예시

다음 예제는 첫 번째 작업을 실행하는 역할을 하는 두 번째 작업의 태스크를 포함합니다.

이 예제에서는 대체를 사용하여 실행할 작업의 ID를 가져옵니다. UI에서 작업 ID를 가져오려면 작업 영역에서 작업을 열고 작업 설정 페이지의 작업 세부 정보 탭에 있는 작업 ID 값에서 ID를 복사합니다.

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}

SQL 작업

이 작업을 사용하여 SQL 파일, 쿼리 또는 경고를 실행합니다.

SQL 작업에 사용할 수 있는 키는 다음과 같습니다. 해당 REST API 개체 정의는 sql_task 참조하세요.

Key 유형 Description
alert Map SQL 경고를 실행하기 위한 구성입니다. 포함:
  • alert_id (문자열): 필수 요소입니다. 실행할 SQL 경고의 정식 식별자입니다.
  • pause_subscriptions (Boolean): 경고 구독을 일시 중지할지 여부를 나타냅니다.
  • subscriptions (시퀀스): 구독 설정 목록입니다.
dashboard Map SQL 대시보드를 새로 고치는 구성입니다. 포함:
  • dashboard_id (문자열): 필수 요소입니다. 새로 고칠 SQL 대시보드의 정식 식별자입니다.
  • custom_subject (문자열): 대시보드 구독자에게 보낸 전자 메일에 대한 사용자 지정 제목입니다.
  • pause_subscriptions (부울값): 대시보드 구독을 일시 중지할지 여부입니다.
  • subscriptions (시퀀스): 구독 설정 목록입니다.
file Map SQL 파일을 실행하기 위한 구성입니다. 포함:
  • path (문자열): 필수 요소입니다. 작업 영역 또는 원격 리포지토리에 있는 SQL 파일의 경로입니다. Databricks 작업 영역에 저장된 파일의 경우 경로는 절대 경로여야 하며 슬래시로 시작해야 합니다. 원격 리포지토리에 저장된 파일의 경우 경로가 상대 경로여야 합니다.
  • source (문자열): SQL 파일의 위치 형식입니다. 유효한 값은 WORKSPACEGIT입니다.
parameters Map 이 작업의 각 실행에 사용할 매개 변수입니다. SQL 쿼리 및 파일은 이러한 매개 변수를 구문 {{parameter_key}}으로 참조하여 사용할 수 있습니다. 작업 매개 변수 변수를 사용하여 작업 실행에 대한 정보가 포함된 매개 변수를 설정합니다.
query Map SQL 쿼리를 실행하기 위한 구성입니다. 포함:
  • query_id (문자열): 필수 요소입니다. 실행할 SQL 쿼리의 정식 식별자입니다.
warehouse_id String 필수 사항입니다. SQL 작업을 실행하는 데 사용할 SQL 웨어하우스의 ID입니다. SQL 웨어하우스가 이미 있어야 합니다.

예시

SQL 웨어하우스의 ID를 가져오려면 SQL 웨어하우스의 설정 페이지를 연 다음 개요 탭의 이름 필드에 있는 웨어하우스 이름 뒤의 괄호 안에 있는 ID를 복사합니다.

다음 예제에서는 작업에 SQL 파일 태스크를 추가합니다. 이 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 경고 작업을 추가합니다. 이 SQL 경고 태스크는 지정된 SQL 웨어하우스를 사용하여 지정된 SQL 경고를 새로 고칩니다.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-alert-job
      tasks:
        - task_key: my-sql-alert-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            alert:
              alert_id: 11111111-1111-1111-1111-111111111111

다음 예제에서는 작업에 SQL 쿼리 작업을 추가합니다. 이 SQL 쿼리 작업은 지정된 SQL 웨어하우스를 사용하여 지정된 SQL 쿼리를 실행합니다.

resources:
  jobs:
    my-sql-query-job:
      name: my-sql-query-job
      tasks:
        - task_key: my-sql-query-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            query:
              query_id: 11111111-1111-1111-1111-111111111111

기타 작업 설정

다음 작업 설정을 사용하면 모든 작업에 대한 동작을 구성할 수 있습니다. 해당 REST API 개체 정의는 작업을 참조하세요.

Key 유형 Description
depends_on 순서 선택적 작업 종속성 목록입니다. 각 항목에는 다음이 포함됩니다.
  • task_key (문자열): 필수 요소입니다. 이 태스크가 사용하는 작업의 키입니다.
  • outcome (String): condition_task에 대해서만 지정할 수 있습니다. 지정한 경우 종속 작업은 조건이 지정된 결과(또는 truefalse)로 평가되는 경우에만 실행됩니다.
description String 작업에 대한 선택적 설명입니다.
disable_auto_optimization 불리언 (Boolean) 이 작업에 대한 자동 최적화를 사용하지 않도록 설정할지 여부입니다. true이면 적응형 쿼리 실행과 같은 자동 최적화가 비활성화됩니다.
email_notifications Map 실행이 시작, 완료 또는 실패할 때 알려 주는 선택적 전자 메일 주소 집합입니다. 각 항목에는 다음이 포함됩니다.
  • on_start (시퀀스): 실행이 시작될 때 알릴 전자 메일 주소 목록입니다.
  • on_success (시퀀스): 실행이 성공적으로 완료되면 알릴 전자 메일 주소 목록입니다.
  • on_failure (시퀀스): 실행이 실패할 때 알릴 전자 메일 주소 목록입니다.
  • on_duration_warning_threshold_exceeded (시퀀스): 실행 기간이 임계값을 초과할 때 알릴 전자 메일 주소 목록입니다.
  • on_streaming_backlog_suceeded (시퀀스): 모든 스트림에 대해 스트리밍 백로그 임계값을 초과할 때 알릴 전자 메일 주소 목록입니다.
environment_key String 작업 구성에 정의된 환경의 키입니다 environments . 환경별 설정을 지정하는 데 사용됩니다. 이 필드는 서버리스 컴퓨팅을 사용할 때 Python 스크립트, Python 휠 및 dbt 작업에 필요합니다.
existing_cluster_id String 이 작업의 모든 실행에 사용할 기존 클러스터의 ID입니다.
health Map 평가할 상태 규칙 목록인 rules 키를 포함하는 이 작업의 상태 모니터링에 대한 선택적 사양입니다.
job_cluster_key String 작업 구성에 정의된 작업 클러스터의 키입니다 job_clusters .
libraries 순서 작업을 실행할 클러스터에 설치할 라이브러리의 선택적 목록입니다. 각 라이브러리는 jar, egg, whl, pypi, maven, cran 또는 requirements와 같은 키가 있는 맵으로 지정됩니다.
max_retries 정수 작업이 실패할 경우 다시 시도할 최대 횟수(선택 사항)입니다. 지정하지 않으면 작업이 다시 시도되지 않습니다.
min_retry_interval_millis 정수 실패한 실행의 시작과 후속 재시도 실행 사이의 최소 간격(밀리초)입니다. 지정하지 않으면 기본값은 0(즉시 다시 시도)입니다.
new_cluster Map 이 작업의 각 실행에 대해 만들 새 클러스터에 대한 사양입니다. 클러스터를 참조하세요.
notification_settings Map 이 작업에 대한 선택적 알림 설정입니다. 각 항목에는 다음이 포함됩니다.
  • no_alert_for_skipped_runs (부울): true이면 건너뛴 실행에 대해 알림 발송을 하지 않습니다.
  • no_alert_for_canceled_runs (부울): true이면 취소된 실행에 대한 알림을 보내지 마세요.
  • alert_on_last_attempt (부울): true 값인 경우 마지막 재시도 시에만 알림을 보냅니다.
retry_on_timeout 불리언 (Boolean) 시간 초과 시 작업을 다시 시도할지 여부를 지정하는 선택적 정책입니다. 지정하지 않으면 기본값은 false입니다.
run_if String 작업이 실행되어야 하는 조건을 나타내는 선택적 값입니다. 유효한 값은 다음과 같습니다.
  • ALL_SUCCESS (기본값): 모든 종속성이 성공하면 실행합니다.
  • AT_LEAST_ONE_SUCCESS: 하나 이상의 종속성이 성공하면 실행합니다.
  • NONE_FAILED: 종속성이 실패하지 않은 경우 실행합니다.
  • ALL_DONE: 결과에 관계없이 모든 종속성이 완료되면 실행됩니다.
  • AT_LEAST_ONE_FAILED: 하나 이상의 종속성이 실패하는 경우 실행합니다.
  • ALL_FAILED: 모든 종속성이 실패하면 실행합니다.
task_key String 필수 사항입니다. 작업에 대한 고유한 이름입니다. 다른 작업에서 depends_on 필드를 사용하여 이 작업을 참조하는 데 이 필드가 사용됩니다.
timeout_seconds 정수 이 작업의 각 실행에 적용되는 선택적 시간 제한입니다. 값이 0이면 시간 제한이 없습니다. 설정하지 않으면 클러스터 구성의 기본 시간 제한이 사용됩니다.
webhook_notifications Map 실행이 시작, 완료 또는 실패할 때 알릴 시스템 대상의 선택적 집합입니다. 각 항목에는 다음이 포함됩니다.
  • on_start (시퀀스): 실행이 시작될 때 알림 대상 목록입니다.
  • on_success (시퀀스): 실행이 완료되면 알림 대상 목록입니다.
  • on_failure (시퀀스): 실행이 실패할 때 알림 대상 목록입니다.
  • on_duration_warning_threshold_exceeded (시퀀스): 실행 기간이 임계값을 초과하는 경우 알림 대상 목록입니다.
  • on_streaming_backlog_suceeded (시퀀스): 모든 스트림에 대해 스트리밍 백로그 임계값을 초과할 때 알릴 전자 메일 주소 목록입니다.