Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
|
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:
|
dashboard |
Map | Konfiguracja odświeżania pulpitu nawigacyjnego SQL. Zawiera:
|
file |
Map | Konfiguracja uruchamiania pliku SQL. Zawiera:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|