Поделиться через


Добавление задач в задания в пакетах ресурсов Databricks

В этой статье приведены примеры различных типов задач, которые можно добавить в задания Azure Databricks в пакетах ресурсов Databricks. См. раздел "Что такое пакеты ресурсов Databricks?".

Большинство типов задач задания имеют параметры, относящиеся к задачам, среди поддерживаемых параметров, но также можно определить параметры задания, передаваемые в задачи. Динамические ссылки на значения поддерживаются для параметров задания, которые позволяют передавать значения, относящиеся к выполнению задания между задачами. См . статью "Что такое ссылка на динамическое значение?".

Примечание.

Параметры задачи задания можно переопределить. См . раздел "Переопределение параметров задач задания" в пакетах ресурсов Databricks.

Совет

Чтобы быстро создать конфигурацию ресурсов для существующего задания с помощью интерфейса командной строки Databricks, можно использовать bundle generate job команду. См . команды пакета.

Задача записной книжки

Эта задача используется для запуска записной книжки.

В следующем примере задача записной книжки добавляется в задание и задает параметр задания с именем my_job_run_id. Путь к развернутой записной книжке относится к файлу конфигурации, в котором объявлена эта задача. Задача получает записную книжку из развернутого расположения в рабочей области 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}}"
        # ...
# ...

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > notebook_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу "Записная книжка" для заданий.

Задача скрипта Python

Эта задача используется для запуска файла Python.

В следующем примере задача скрипта Python добавляется в задание. Путь к развернутому файлу Python относится к файлу конфигурации, в котором объявлена эта задача. Задача получает файл Python из развернутого расположения в рабочей области Azure Databricks. (Эллипсы указывают на пропущенное содержимое для краткости.)

# ...
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
          # ...
# ...

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > spark_python_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате 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
          # ...
# ...

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > python_wheel_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См. также статью "Разработка файла колеса Python" с помощью пакетов ресурсов Databricks и задачи Python Wheel для заданий.

ЗАДАЧА 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
          # ...
# ...

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > spark_jar_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу JAR для заданий.

Задача файла SQL

Эта задача используется для запуска SQL-файла, расположенного в рабочей области или удаленном репозитории Git.

В следующем примере задача 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, а затем скопируйте идентификатор, найденный в скобках после имени хранилища в поле "Имя " на вкладке "Обзор ".

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > sql_task > file . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу SQL для заданий.

Задача конвейера разностных динамических таблиц

Эта задача используется для запуска конвейера 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
          # ...
# ...

Идентификатор конвейера можно получить, открыв конвейер в рабочей области и скопируйв значение идентификатора конвейера на вкладке сведений о конвейере страницы параметров конвейера.

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > pipeline_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате 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, откройте страницу параметров хранилища SQL, а затем скопируйте идентификатор, найденный в скобках после имени хранилища в поле "Имя " на вкладке "Обзор ".

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > dbt_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML. См . задачу dbt для заданий.

Пакеты ресурсов Databricks также включают dbt-sql шаблон проекта, определяющий задание с задачей dbt, а также профили 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}
  # ...

В этом примере используется подстановка для получения идентификатора выполняемого задания. Чтобы получить идентификатор задания из пользовательского интерфейса, откройте задание в рабочей области и скопируйте идентификатор из значения идентификатора задания на вкладке сведений о задании на странице параметров заданий.

Дополнительные сопоставления, которые можно задать для этой задачи, см tasks > run_job_task . в полезных данных запроса операции создания задания, как определено в post /api/2.1/jobs/create в справочнике ПО REST API, выраженном в формате YAML.