Udostępnij przez


Dodawanie zadań do prac w pakietach zasobów Databricks

Ta strona zawiera informacje o sposobie definiowania zadań roboczych w Pakietach Zasobów Databricks. Aby uzyskać informacje o zadaniach, zobacz sekcję Konfigurowanie i edytowanie zadań w Lakeflow Jobs.

Ważne

Pole pracy git_source i pole zadania source ustawione na wartość GIT nie są zalecane w przypadku wiązek, ponieważ lokalne ścieżki względne mogą nie prowadzić do tej samej zawartości w repozytorium Git. Pakiety oczekują, że wdrożone zadanie będzie miało te same pliki co lokalna kopia, z której je wdrożono.

Zamiast tego sklonuj repozytorium lokalnie i skonfiguruj projekt pakietu w tym repozytorium, aby źródło zadań stanowił obszar roboczy.

Konfigurowanie zadań

Zdefiniuj zadania dla pracy w pakiecie w kluczu tasks definicji zadania. Przykłady konfiguracji zadań dostępnych typów zadań znajduje się w sekcji Ustawienia zadania . Aby uzyskać informacje na temat definiowania zadania w pakiecie, zobacz job (Zadanie).

Napiwek

Aby szybko wygenerować konfigurację zasobu dla istniejącego zadania przy użyciu Databricks CLI, możesz użyć polecenia bundle generate job. Zobacz polecenia pakietów.

Aby ustawić wartości zadań, większość typów zadań ma parametry specyficzne dla zadania, ale można również zdefiniować parametry zadania , które są przekazywane do zadań podrzędnych. Odwołania do wartości dynamicznych są obsługiwane dla parametrów zadania, które umożliwiają przekazywanie wartości specyficznych dla uruchomienia zadania między zadaniami. Aby uzyskać pełne informacje na temat przekazywania wartości zadań według typu zadania, zobacz Szczegóły według typu zadania.

Możesz również zastąpić ustawienia zadania ogólnego zadania ustawieniami docelowego obszaru roboczego. Zobacz Nadpisanie z użyciem ustawień docelowych.

Poniższa przykładowa konfiguracja definiuje zadanie z dwoma zadaniami opartymi na notatniku i przekazuje wartość z pierwszego zadania do drugiego.

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

Zawiera output_notebook.ipynb następujący kod, który ustawia wartość zadania dla klucza message:

# 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}")

Element input_notebook.ipynb pobiera wartość parametru received_message, który został ustawiony w konfiguracji zadania:

# 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}")

Ustawienia zadania

Ta sekcja zawiera ustawienia i przykłady dla każdego typu zadania.

Zadanie notatnika cleanroom

Zadanie notatnika czystych pomieszczeń uruchamia notatnik czystych pomieszczeń, gdy pole clean_rooms_notebook_task jest obecne. Aby uzyskać informacje na temat czystych pomieszczeń, zobacz Co to jest usługa Azure Databricks Clean Rooms?.

Następujące klucze są dostępne dla zadania notesu pomieszczeń czystych. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz clean_rooms_notebook_task.

Key Typ Description
clean_room_name Sznurek To jest wymagane. Czyste pomieszczenie, do którego przypisany jest laptop.
etag Sznurek Suma kontrolna w celu zweryfikowania aktualności zasobu notesu. Można go pobrać, wywołując operację pobierania zasobów pomieszczeń czystych.
object Map Podstawowe parametry do wykorzystania w zadaniu zeszytu czystego pomieszczenia.
notebook_name Sznurek To jest wymagane. Nazwa uruchamianego notesu.

Warunek zadania

condition_task umożliwia dodanie zadania z logiką warunkową if/else do zadania. Zadanie ocenia warunek, który może służyć do kontrolowania wykonywania innych zadań. Zadanie warunkowe nie wymaga klastra do wykonania i nie obsługuje ponownych prób ani powiadomień. Aby uzyskać więcej informacji na temat zadania warunkowego if/else, zobacz Dodawanie logiki rozgałęziania do zadania za pomocą zadania If/else.

Następujące klucze są dostępne dla zadania warunkowego. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz condition_task.

Key Typ Description
left Sznurek To jest wymagane. Lewy operand warunku. Może być wartością ciągu lub stanem zadania lub odwołaniem do wartości dynamicznej, takiej jak {{job.repair_count}} lub {{tasks.task_key.values.output}}.
op Sznurek To jest wymagane. Operator, który ma być używany do porównania. Prawidłowe wartości to: EQUAL_TO, , NOT_EQUAL, GREATER_THANGREATER_THAN_OR_EQUAL, , LESS_THAN. LESS_THAN_OR_EQUAL
right Sznurek To jest wymagane. Prawy operand warunku. Może być wartością ciągu lub stanem zadania lub odwołaniem do wartości dynamicznej.

Przykłady

Poniższy przykład zawiera zadanie warunkowe i zadanie notatnika, które jest wykonywane tylko wtedy, gdy liczba napraw zadań jest mniejsza niż 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

Zadanie pulpitu nawigacyjnego

Używasz tego zadania, aby odświeżyć pulpit nawigacyjny i wysłać zrzut ekranu do subskrybentów. Aby uzyskać więcej informacji na temat pulpitów nawigacyjnych w pakietach, zobacz pulpit nawigacyjny.

Następujące klucze są dostępne dla zadania pulpitu nawigacyjnego. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz dashboard_task.

Key Typ Description
dashboard_id Sznurek To jest wymagane. Identyfikator pulpitu nawigacyjnego do odświeżenia. Pulpit nawigacyjny musi już istnieć.
subscription Map Konfiguracja subskrypcji do wysyłania migawki pulpitu nawigacyjnego. Każdy obiekt subskrypcji może określać ustawienia docelowe miejsca wysyłania migawek po zakończeniu odświeżania pulpitu nawigacyjnego. Zobacz subskrypcję.
warehouse_id Sznurek Identyfikator magazynu do wykonania pulpitu nawigacyjnego zgodnie z harmonogramem. Jeśli nie zostanie określony, zostanie użyty domyślny magazyn pulpitu nawigacyjnego.

Przykłady

Poniższy przykład dodaje zadanie związane z pulpitem nawigacyjnym do projektu. Po uruchomieniu zadania pulpit nawigacyjny z określonym identyfikatorem zostanie odświeżony.

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 - zadanie

Używasz tego zadania do uruchamiania jednego lub więcej poleceń dbt. Aby uzyskać więcej informacji na temat dbt, zobacz Connect to dbt Cloud.

Następujące klucze są dostępne dla zadania dbt. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz dbt_task.

Key Typ Description
catalog Sznurek Nazwa katalogu do użycia. Wartość katalogu można określić tylko wtedy, gdy określono warehouse_id. To pole wymaga dbt-databricks >= 1.1.1.
commands Kolejność To jest wymagane. Lista poleceń dbt do wykonania w sekwencji. Każde polecenie musi być kompletnym poleceniem dbt (np. dbt deps, dbt seed, dbt run, dbt test). Można podać maksymalnie 10 poleceń.
profiles_directory Sznurek Ścieżka do katalogu zawierającego plik profiles.yml dbt. Można to określić tylko wtedy, gdy warehouse_id nie jest określony. Jeśli nie określono warehouse_id i ten folder jest nieustawiony, zostanie użyty katalog główny.
project_directory Sznurek Ścieżka do katalogu zawierającego projekt dbt. Jeśli nie zostanie określony, domyślnie użyty będzie katalog główny repozytorium lub obszaru roboczego. W przypadku projektów przechowywanych w obszarze roboczym usługi Databricks ścieżka musi być bezwzględna i zaczynać się znakiem ukośnika. W przypadku projektów w repozytorium zdalnym ścieżka musi być względna.
schema Sznurek Schemat, do którego zapisujemy. Ten parametr jest używany tylko wtedy, gdy warehouse_id parametr jest również udostępniany. Jeśli nie zostanie podany, zostanie użyty domyślny schemat.
source Sznurek Typ lokalizacji projektu dbt. Prawidłowe wartości to WORKSPACE i GIT. Gdy ustawi się na WORKSPACE, projekt zostanie pobrany z obszaru roboczego Databricks. Po ustawieniu na GIT, projekt zostanie pobrany z repozytorium Git zdefiniowanego w git_source. Jeśli jest puste, zadanie używa GIT, jeśli git_source jest zdefiniowane, a w przeciwnym razie WORKSPACE.
warehouse_id Sznurek Identyfikator usługi SQL Warehouse do użycia na potrzeby uruchamiania poleceń dbt. Jeśli nie zostanie określony, zostanie użyty domyślny magazyn.

Przykłady

Poniższy przykład dodaje zadanie dbt do zlecenia. To zadanie dbt używa określonego magazynu SQL w celu uruchomienia określonych poleceń dbt.

Aby uzyskać identyfikator usługi SQL Warehouse, otwórz stronę ustawień usługi SQL Warehouse, a następnie skopiuj identyfikator znaleziony w nawiasach po nazwie magazynu w polu Nazwa na karcie Przegląd .

Napiwek

Pakiety zasobów usługi Databricks zawierają również dbt-sql szablon projektu, który definiuje zadanie dbt, a także profile dbt dla wdrożonych zadań dbt. Aby uzyskać informacje na temat szablonów pakietów zasobów usługi Databricks, zobacz szablony pakietów domyślnych .

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'

Dla każdego zadania

for_each_task umożliwia ci dodanie zadania za pomocą pętli 'for each' do projektu. Zadanie wykonuje zagnieżdżone zadanie dla każdych dostarczonych danych wejściowych. Aby uzyskać więcej informacji na temat for_each_task, zobacz Używanie zadania For each do uruchamiania innego zadania w pętli.

Następujące klucze są dostępne dla elementu for_each_task. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz for_each_task.

Key Typ Description
concurrency Integer Maksymalna liczba iteracji zadań, które mogą być uruchamiane współbieżnie. Jeśli nie zostaną określone, wszystkie iteracje mogą być uruchamiane równolegle, uwzględniając limity klastra i obszaru roboczego.
inputs Sznurek To jest wymagane. Dane wejściowe do pętli. Może to być ciąg JSON lub odwołanie do parametru tablicy. Każdy element w tablicy zostanie przekazany do jednej iteracji zagnieżdżonego zadania.
task Map To jest wymagane. Definicja zagnieżdżonego zadania do wykonania dla każdego elementu danych wejściowych. Ten obiekt zawiera specyfikację kompletnego zadania, w tym task_key i typ zadania (np. notebook_task, python_wheel_taskitp.).

Przykłady

Poniższy przykład dodaje for_each_task do zadania, gdzie iteruje po wartościach innego zadania i je przetwarza.

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

Zadanie JAR

To zadanie służy do uruchamiania pliku JAR. Możesz korzystać z lokalnych bibliotek JAR lub tych w przestrzeni roboczej, woluminie katalogu Unity lub w zewnętrznej lokalizacji w magazynie chmurowym. Zobacz Plik JAR (Java lub Scala).

Aby uzyskać szczegółowe informacje na temat kompilowania i wdrażania plików JAR języka Scala w klastrze z obsługą wykazu aparatu Unity w trybie dostępu standardowego, zobacz Samouczek: uruchamianie kodu Scala na bezserwerowych obliczeniach.

Następujące klucze są dostępne dla zadania JAR. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz jar_task.

Key Typ Description
jar_uri Sznurek Deprecated. Identyfikator URI pliku JAR do wykonania. Obsługiwane są ścieżki magazynu systemu plików DBFS i chmury. To pole jest przestarzałe i nie powinno być używane. Zamiast tego użyj libraries pola , aby określić zależności JAR.
main_class_name Sznurek To jest wymagane. Pełna nazwa klasy zawierającej metodę główną do wykonania. Ta klasa musi być zawarta w pliku JAR udostępnionym jako biblioteka. Kod musi użyć SparkContext.getOrCreate polecenia , aby uzyskać kontekst platformy Spark. W przeciwnym razie uruchomienie zadania kończy się niepowodzeniem.
parameters Kolejność Parametry przekazane do metody main. Użyj zmiennych parametrów zadania, aby ustawić parametry zawierające informacje o uruchomieniach zadań.

Przykłady

Poniższy przykład dodaje zadanie JAR do zadania. Ścieżka do pliku JAR prowadzi do lokalizacji woluminu.

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

Zadanie notatnika

To zadanie służy do uruchamiania notatnika. Zobacz Zadanie notatnika dotyczące prac.

Następujące klucze są dostępne dla zadania notatnika. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz notebook_task.

Key Typ Description
base_parameters Map Podstawowe parametry do użycia dla każdego uruchomienia tego zadania.
  • Jeśli przebieg jest inicjowany przez wywołanie funkcji 'jobs' lub 'run-now' i zawiera określone parametry, scalane są obie mapy parametrów.
  • Jeśli ten sam klucz jest określony w base_parameters oraz w run-now, zostanie użyta wartość z run-now. Użyj zmiennych parametrów zadania, aby ustawić parametry zawierające informacje o uruchomieniach zadań.
  • Jeśli notebook przyjmuje parametr, który nie jest określony w parametrach zadania base_parameters lub w parametrach przesłaniania run-now, zostanie użyta wartość domyślna z notebooka. Pobierz te parametry w notesie przy użyciu polecenia dbutils.widgets.get.
notebook_path Sznurek To jest wymagane. Ścieżka notesu w obszarze roboczym usługi Databricks lub repozytorium zdalnym, na przykład /Users/user.name@databricks.com/notebook_to_run. W przypadku notesów przechowywanych w obszarze roboczym usługi Databricks ścieżka musi być bezwzględna i zaczynać się ukośnikiem. W przypadku notesów przechowywanych w repozytorium zdalnym ścieżka musi być względna.
source Sznurek Typ lokalizacji notesu. Prawidłowe wartości to WORKSPACE i GIT. Po ustawieniu wartości na WORKSPACE, notebook zostanie pobrany z lokalnego środowiska pracy Databricks. Po ustawieniu GIT, notatnik zostanie pobrany z repozytorium Git określonego w git_source. Jeśli wartość jest pusta, zadanie użyje GIT, jeśli git_source jest zdefiniowane i WORKSPACE w przeciwnym razie.
warehouse_id Sznurek Identyfikator magazynu, w którym uruchomimy program w notebooku. Klasyczne magazyny SQL nie są obsługiwane. Zamiast tego używaj bezserwerowych lub profesjonalnych magazynów SQL. Pamiętaj, że magazyny SQL obsługują tylko komórki SQL. Jeśli notes zawiera komórki inne niż SQL, uruchomienie nie powiedzie się. Jeśli więc musisz użyć języka Python (lub innego) w komórce, użyj opcji serverless.

Przykłady

Poniższy przykład dodaje zadanie notatnika do pracy i ustawia parametr pracy o nazwie my_job_run_id. Ścieżka do notebooka jest relatywna do pliku konfiguracji, w którym określono to zadanie. Zadanie pobiera notatnik z jego wdrożonej lokalizacji w obszarze roboczym usługi 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}}'

Zadanie potoku

To zadanie służy do uruchamiania potoku. Zobacz Lakeflow Spark Declarative Pipelines.

Następujące kluczowe elementy są dostępne dla zadania potokowego. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz pipeline_task.

Key Typ Description
full_refresh logiczny Jeśli to prawda, zostanie uruchomione pełne odświeżenie potoku, co spowoduje całkowite przeliczenie wszystkich zestawów danych w potoku. Jeśli wartość będzie fałszywa lub pominięta, przetworzone zostaną tylko dane przyrostowe. Aby uzyskać szczegółowe informacje, zapoznaj się z semantyką odświeżania potoku.
pipeline_id Sznurek To jest wymagane. Identyfikator potoku danych do uruchomienia. Potok danych musi już istnieć.

Przykłady

Poniższy przykład dodaje zadanie potoku do zadania. To zadanie uruchamia określoną linię przetwarzania.

Napiwek

Identyfikator potoku można uzyskać, otwierając potok w obszarze roboczym i kopiując wartość Identyfikator potoku na karcie Szczegóły potoku na stronie ustawień potoku.

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

Zadanie usługi Power BI

Ważne

Typ zadania Power BI jest w publicznej wersji próbnej.

To zadanie służy do wyzwalania odświeżania modelu semantycznego usługi Power BI (dawniej nazywanego zestawem danych).

Następujące klucze są dostępne dla zadania usługi Power BI. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz power_bi_task.

Key Typ Description
connection_resource_name Sznurek To jest wymagane. Nazwa połączenia Unity Catalog do uwierzytelniania z Databricks do Power BI.
power_bi_model Sznurek To jest wymagane. Nazwa semantycznego modelu (zestawu danych) usługi Power BI do zaktualizowania.
refresh_after_update logiczny Czy odświeżyć semantyczny model usługi Power BI po zakończeniu aktualizacji. Wartość domyślna to fałsz.
tables Kolejność Lista tabel (z których każda jest mapą) do wyeksportowania do usługi Power BI. Zobacz tabele.
warehouse_id Sznurek Identyfikator usługi SQL Warehouse do użycia jako źródło danych usługi Power BI.

Przykłady

W poniższym przykładzie zdefiniowano zadanie usługi Power BI, które określa połączenie, model usługi Power BI do zaktualizowania oraz tabelę usługi Databricks do wyeksportowania.

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'

Zadanie skryptu języka Python

To zadanie służy do uruchamiania pliku w języku Python.

Następujące klucze są dostępne dla zadania skryptu języka Python. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz python_task.

Key Typ Description
parameters Kolejność Parametry, które mają być przekazywane do pliku języka Python. Użyj zmiennych parametrów zadania, aby ustawić parametry zawierające informacje o uruchomieniach zadań.
python_file Sznurek To jest wymagane. Identyfikator URI pliku Python do wykonania, na przykład /Users/someone@example.com/my-script.py. W przypadku plików języka Python przechowywanych w obszarze roboczym usługi Databricks ścieżka musi być bezwzględna i zaczynać się od /. W przypadku plików przechowywanych w repozytorium zdalnym ścieżka musi być względna. To pole nie obsługuje odwołań do wartości dynamicznych, takich jak zmienne.
source Sznurek Typ lokalizacji pliku języka Python. Prawidłowe wartości to WORKSPACE i GIT. Po ustawieniu WORKSPACE wartości, plik zostanie pobrany z lokalnej przestrzeni roboczej usługi Databricks. Gdy ustawiono na GIT, plik zostanie pobrany z repozytorium Git zdefiniowanego w git_source. Jeśli wartość jest pusta, zadanie użyje GIT, jeśli git_source jest zdefiniowane i WORKSPACE w przeciwnym razie.

Przykłady

Poniższy przykład dodaje zadanie skryptu w języku Python do projektu. Ścieżka pliku języka Python do wdrożenia jest względna względem pliku konfiguracji, w którym to zadanie jest zadeklarowane. Zadanie pobiera plik języka Python z wdrożonej lokalizacji w obszarze roboczym usługi 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

Zadanie koła języka Python

To zadanie służy do uruchamiania koła języka Python. Zobacz Tworzenie pliku wheel języka Python przy użyciu pakietów zasobów usługi Databricks.

Następujące klucze są dostępne dla zadania Python wheel. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz python_wheel_task.

Key Typ Description
entry_point Sznurek To jest wymagane. Punkt wejścia do wykonania, nazwany funkcją lub klasą. Jeśli nie istnieje w metadanych pakietu, wykonuje funkcję z pakietu bezpośrednio przy użyciu polecenia $packageName.$entryPoint().
named_parameters Map Nazwane parametry, które mają być przekazywane do zadania koła języka Python, również są nazywane argumentami słowa kluczowego. Nazwany parametr jest parą klucz-wartość z kluczem tekstowym i wartością tekstową. Nie można określić zarówno parameters jak i named_parameters. Jeśli named_parameters zostanie określony, to argumenty kluczowe parameters są przekazywane do funkcji punktu wejścia.
package_name Sznurek To jest wymagane. Nazwa pakietu języka Python do wykonania. Wszystkie zależności muszą być zainstalowane w środowisku. Nie sprawdza to ani nie instaluje żadnych zależności pakietu.
parameters Kolejność Parametry, które mają być przekazywane do zadania koła języka Python, nazywane również argumentami pozycyjnymi. Każdy parametr jest ciągiem. Jeśli zostanie określony, named_parameters nie powinno być określone.

Przykłady

W poniższym przykładzie do zadania dodano polecenie tworzenia pakietu Wheel dla języka Python. Ścieżka pliku koła Python do wdrożenia jest względna wobec pliku konfiguracyjnego, w którym to zadanie jest zadeklarowane. Zobacz zależności biblioteki Databricks Asset Bundles.

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

Uruchomienie zadania roboczego

Używasz tego zadania do uruchomienia innego zadania.

Następujące klucze są dostępne dla zadania uruchomienia. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz run_job_task.

Key Typ Description
job_id Integer To jest wymagane. Identyfikator zadania do uruchomienia. Zadanie musi już istnieć w obszarze roboczym.
job_parameters Map Parametry na poziomie zadania, które mają zostać przekazane do uruchomionego zadania. Te parametry są dostępne w ramach zadań pracy.
pipeline_params Map Parametry zadania przetwarzania potokowego. Używane tylko wtedy, gdy uruchamiane zadanie zawiera zadanie potoku. Może zawierać full_refresh, aby wyzwolić pełne odświeżenie potoku.

Przykłady

Poniższy przykład zawiera zadanie uruchamiania zadania w drugim zadaniu, które uruchamia pierwsze zadanie.

W tym przykładzie użyto podstawienia, aby pobrać identyfikator zadania do uruchomienia. Aby uzyskać identyfikator zadania z interfejsu użytkownika, otwórz zadanie w obszarze roboczym i skopiuj identyfikator z wartości Identyfikator zadania na karcie Szczegóły zadania na stronie ustawień zadania.

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}

Zadanie SQL

To zadanie służy do uruchamiania pliku SQL, zapytania lub alertu.

Następujące klucze są dostępne dla zadania SQL. Aby uzyskać odpowiednią definicję obiektu interfejsu API REST, zobacz sql_task.

Key Typ Description
alert Map Konfiguracja uruchamiania alertu SQL. Zawiera:
  • alert_id (String): wymagane. Identyfikator kanoniczny alertu SQL do uruchomienia.
  • pause_subscriptions (Wartość logiczna): czy wstrzymać subskrypcje alertów.
  • subscriptions (Sekwencja): lista ustawień subskrypcji.
dashboard Map Konfiguracja odświeżania pulpitu nawigacyjnego SQL. Zawiera:
  • dashboard_id (String): wymagane. Identyfikator kanoniczny pulpitu nawigacyjnego SQL do odświeżenia.
  • custom_subject (Ciąg): Niestandardowy temat dla wiadomości e-mail wysyłanych do subskrybentów pulpitu nawigacyjnego.
  • pause_subscriptions (Wartość logiczna): Czy należy wstrzymać subskrypcje dashborda?
  • subscriptions (Sekwencja): lista ustawień subskrypcji.
file Map Konfiguracja uruchamiania pliku SQL. Zawiera:
  • path (String): wymagane. Ścieżka pliku SQL w obszarze roboczym lub repozytorium zdalnym. W przypadku plików przechowywanych w obszarze roboczym usługi Databricks ścieżka musi być bezwzględna i zaczynać się ukośnikiem (znak /). W przypadku plików przechowywanych w repozytorium zdalnym ścieżka musi być względna.
  • source (Ciąg): typ lokalizacji pliku SQL. Prawidłowe wartości to WORKSPACE i GIT.
parameters Map Parametry, które mają być używane dla każdego uruchomienia tego zadania. Zapytania i pliki SQL mogą używać tych parametrów, odwołując się do nich przy użyciu składni {{parameter_key}}. Użyj zmiennych parametrów zadania, aby ustawić parametry zawierające informacje o uruchomieniach zadań.
query Map Konfiguracja uruchamiania zapytania SQL. Zawiera:
  • query_id (String): wymagane. Identyfikator jednoznaczny zapytania SQL do uruchomienia.
warehouse_id Sznurek To jest wymagane. Identyfikator magazynu SQL do użycia przy uruchamianiu zadania SQL. Magazyn SQL musi już istnieć.

Przykłady

Napiwek

Aby uzyskać identyfikator usługi SQL Warehouse, otwórz stronę ustawień usługi SQL Warehouse, a następnie skopiuj identyfikator znaleziony w nawiasach po nazwie magazynu w polu Nazwa na karcie Przegląd .

Poniższy przykład dodaje zadanie pliku SQL do zadania. To zadanie dotyczące pliku SQL korzysta z określonego magazynu SQL Warehouse do uruchomienia tego pliku 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

Poniższy przykład dodaje zadanie alertu SQL do zadania. To zadanie alertu SQL używa określonego magazynu SQL w celu odświeżenia określonego alertu 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

Poniższy przykład dodaje zadanie zapytania SQL do zadania. To zadanie zapytania SQL używa określonego magazynu SQL do uruchomienia określonego zapytania 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

Inne ustawienia zadania

Następujące ustawienia zadania umożliwiają konfigurowanie zachowań dla wszystkich zadań. Aby zapoznać się z odpowiednimi definicjami obiektów interfejsu API REST, zobacz zadania.

Key Typ Description
depends_on Kolejność Opcjonalna lista zależności zadań. Każdy element zawiera:
  • task_key (String): wymagane. Kluczowe zadanie, od którego zależy bieżące zadanie.
  • outcome(Ciąg): można określić tylko dla condition_task. Jeśli warunek zostanie określony, zadanie zależne zostanie uruchomione tylko wtedy, gdy warunek zostanie oceniony jako określony wynik (albo true albo false).
description Sznurek Opcjonalny opis zadania.
disable_auto_optimization logiczny Czy wyłączyć automatyczną optymalizację dla tego zadania. Jeśli to prawda, automatyczne optymalizacje, takie jak adaptacyjne wykonywanie zapytań, zostaną wyłączone.
email_notifications Map Opcjonalny zestaw adresów e-mail do powiadamiania o rozpoczęciu, zakończeniu lub niepowodzeniu procesu. Każdy element zawiera:
  • on_start (Sekwencja): lista adresów e-mail do powiadamiania, gdy rozpocznie się uruchomienie.
  • on_success (Sekwencja): lista adresów e-mail, które należy powiadomić po pomyślnym ukończeniu uruchomienia.
  • on_failure (Sekwencja): lista adresów e-mail do powiadamiania, gdy uruchomienie zakończy się niepowodzeniem.
  • on_duration_warning_threshold_exceeded (Sekwencja): lista adresów e-mail do powiadomienia, gdy czas trwania przebiegu przekracza próg.
  • on_streaming_backlog_suceeded (Sekwencja): Lista adresów e-mail do powiadamiania, gdy którakolwiek z progów zaległości przesyłania strumieniowego zostanie przekroczona dla dowolnego strumienia.
environment_key Sznurek Klucz środowiska zdefiniowanego w konfiguracji zadania environments . Służy do określania ustawień specyficznych dla środowiska. To pole jest wymagane w przypadku zadań skryptów języka Python, kółka języka Python i dbt podczas korzystania z obliczeń bezserwerowych.
existing_cluster_id Sznurek Identyfikator istniejącego klastra, który będzie używany dla wszystkich uruchomień tego zadania.
health Map Opcjonalna specyfikacja monitorowania stanu zdrowia tego zadania, zawierająca rules klucz jako listę reguł zdrowotnych do oceny.
job_cluster_key Sznurek Klucz klastra zadań zdefiniowany w konfiguracji zadania job_clusters .
libraries Kolejność Opcjonalna lista bibliotek, które mają być zainstalowane w klastrze, które będą wykonywać zadanie. Każda biblioteka jest określana jako mapa z kluczami, takimi jak jar, egg, whl, pypi, mavencranlub requirements.
max_retries Integer Opcjonalna maksymalna liczba ponownych prób wykonania zadania w przypadku niepowodzenia. Jeśli nie określono warunku, zadanie nie zostanie ponowione.
min_retry_interval_millis Integer Opcjonalny minimalny interwał w milisekundach między rozpoczęciem nieudanego uruchomienia a kolejnym uruchomieniem ponawiania. Jeśli nie zostanie określony, wartość domyślna to 0 (natychmiastowe ponowienie próby).
new_cluster Map Specyfikacja klastra, który ma być utworzony dla każdego uruchomienia tego zadania. Zobacz klaster.
notification_settings Map Opcjonalne ustawienia powiadomień dla tego zadania. Każdy element zawiera:
  • no_alert_for_skipped_runs (Wartość logiczna): Jeśli jest true, nie wysyłaj powiadomień o pominiętych przebiegach.
  • no_alert_for_canceled_runs (Wartość logiczna): jeśli to prawda, nie wysyłaj powiadomień dotyczących anulowanych przebiegów.
  • alert_on_last_attempt (Wartość logiczna): Jeśli jest prawdziwa, wysyłaj powiadomienia tylko w przypadku ostatniej próby ponawiania.
retry_on_timeout logiczny Opcjonalne zasady określające, czy ponowić zadanie w przypadku przekroczenia limitu czasu. Jeśli nie zostanie określone, domyślnie ustawione na wartość false.
run_if Sznurek Opcjonalna wartość wskazująca warunek, w którym zadanie powinno zostać uruchomione. Prawidłowe wartości to:
  • ALL_SUCCESS (ustawienie domyślne): Uruchom polecenie, jeśli wszystkie zależności powiodą się.
  • AT_LEAST_ONE_SUCCESS: Uruchom, jeśli przynajmniej jedna zależność zostanie zakończona sukcesem.
  • NONE_FAILED: Uruchom, jeśli nie powiodły się żadne zależności.
  • ALL_DONE: Uruchom, gdy zakończą się wszystkie zależności, niezależnie od wyniku.
  • AT_LEAST_ONE_FAILED: Uruchom, jeśli co najmniej jedna zależność zakończy się niepowodzeniem.
  • ALL_FAILED: Uruchom, jeśli wszystkie zależności zawiodą.
task_key Sznurek To jest wymagane. Unikatowa nazwa zadania. To pole służy do odwoływania się do tego zadania z innych zadań przy użyciu depends_on pola .
timeout_seconds Integer Opcjonalny limit czasu przypisywany każdemu uruchomieniu tego zadania. Wartość 0 oznacza brak limitu czasu. Jeśli nie zostanie ustawiony, zostanie użyty domyślny limit czasu z konfiguracji klastra.
webhook_notifications Map Opcjonalny zestaw miejsc docelowych systemu do powiadamiania o rozpoczęciu, zakończeniu lub awarii przebiegu. Każdy element zawiera:
  • on_start (Sekwencja): lista miejsc docelowych powiadomień po uruchomieniu.
  • on_success (Sekwencja): lista miejsc docelowych powiadomień po zakończeniu przebiegu.
  • on_failure (Sekwencja): lista miejsc docelowych powiadomień, gdy uruchomienie zakończy się niepowodzeniem.
  • on_duration_warning_threshold_exceeded (Sekwencja): lista destynacji powiadomień, gdy czas trwania operacji przekracza próg limitu.
  • on_streaming_backlog_suceeded (Sekwencja): Lista adresów e-mail do powiadamiania, gdy którakolwiek z progów zaległości przesyłania strumieniowego zostanie przekroczona dla dowolnego strumienia.