다음을 통해 공유


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이/가 지원합니다. 태스크는 제공된 모든 입력에 대해 중첩된 작업을 실행합니다. 대한 자세한 내용은 루프매개 변수가 있는 Azure Databricks 작업 실행 참조하세요.

다음 예제에서는 작업에 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을 참조하세요. 작업에 대한 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를 복사합니다.

이 작업에 대해 설정할 수 있는 추가 매핑은 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을(를) 참조하세요.