다음을 통해 공유


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

이 태스크에 대해 설정할 수 있는 추가 매핑은 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 형식의 을 참조합니다.