Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pakiety zasobów usługi Databricks umożliwiają określenie informacji o zasobach usługi Azure Databricks używanych w ramach pakietu w mapowaniu resources
w ramach konfiguracji pakietu. Zobacz odwzorowanie zasobów i kluczowy odnośnik zasobów.
W tym artykule opisano obsługiwane typy zasobów dla pakietów oraz szczegółowe informacje i przykład dla każdego obsługiwanego typu. Aby uzyskać dodatkowe przykłady, zobacz przykłady konfiguracji pakietu .
Napiwek
Aby wygenerować kod YAML dla dowolnego istniejącego zasobu, użyj polecenia databricks bundle generate
. Zobacz Generowanie pliku konfiguracji pakietu.
Obsługiwane zasoby
W poniższej tabeli wymieniono obsługiwane typy zasobów dla pakietów. Niektóre zasoby można utworzyć, definiując je w pakiecie i wdrażając pakiet, a niektóre zasoby można utworzyć tylko przez odwołanie do istniejącego zasobu do uwzględnienia w pakiecie.
Zasoby są definiowane przy użyciu żądania utworzenia obiektu odpowiedniego interfejsu API REST Databricks, w którym pola obsługiwane przez obiekt, wyrażone w formacie YAML, są obsługiwanymi właściwościami zasobu. Linki do dokumentacji ładunków odpowiadających poszczególnym zasobom są wymienione w tabeli.
Napiwek
Polecenie databricks bundle validate
zwraca ostrzeżenia, jeśli w plikach konfiguracji pakietu znajdują się nieznane właściwości zasobu.
Zasób | Odpowiedni obiekt interfejsu API REST |
---|---|
aplikacja | obiekt aplikacji |
klaster | obiekt klastra |
deska rozdzielcza | Obiekt pulpitu nawigacyjnego |
eksperyment | obiekt eksperymentu |
praca | Obiekt zadania |
model (starsza wersja) | model (starsza wersja) obiektu |
punkt_serwowania_modelu | Model obsługujący obiekt punktu końcowego |
pipelina | potokowy obiekt |
monitor_jakości | obiekt monitora jakości |
zarejestrowany_model (Unity Catalog) | zarejestrowany obiekt modelu |
schema (Katalog Unity) | obiekt schematu |
zakres_tajemnicy | Obiekt tajnego zakresu |
wolumin (Unity Catalog) | Obiekt woluminu |
aplikacja
Type: Map
Zasób aplikacji definiuje aplikację Databricks. Aby uzyskać informacje na temat usługi Databricks Apps, zobacz Aplikacje usługi Databricks.
Aby dodać aplikację, określ ustawienia do zdefiniowania aplikacji, w tym wymagane source_code_path
.
Napiwek
Pakiet można zainicjować za pomocą aplikacji Streamlit Databricks przy użyciu następującego polecenia:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
apps:
<app-name>:
<app-field-name>: <app-field-value>
Klawisz | Typ | Opis |
---|---|---|
budget_policy_id |
Sznurek | Identyfikator zasad budżetu dla aplikacji. |
config |
Mapa | Przestarzałe. Zdefiniuj polecenia konfiguracji aplikacji i zmienne środowiskowe w app.yaml pliku. Zobacz Konfigurowanie aplikacji usługi Databricks. |
description |
Sznurek | Opis aplikacji. |
name |
Sznurek | Nazwa aplikacji. Nazwa musi zawierać tylko małe litery alfanumeryczne i łączniki. Musi być unikatowa w obszarze roboczym. |
permissions |
Kolejność | Uprawnienia aplikacji. Zobacz uprawnienia. |
resources |
Kolejność | Zasoby obliczeniowe aplikacji. Zobacz apps.name.resources. |
source_code_path |
Sznurek | Ścieżka lokalna ./app kodu źródłowego aplikacji usługi Databricks. To pole jest wymagane. |
user_api_scopes |
Kolejność | Zakresy interfejsu API użytkownika. |
aplikacje.name.zasoby
Type: Sequence
Zasoby obliczeniowe dla aplikacji.
Klawisz | Typ | Opis |
---|---|---|
description |
Sznurek | Opis zasobu aplikacji. |
job |
Mapa | Ustawienia identyfikujące zasób zadania do użycia. Zobacz resources.job. |
name |
Sznurek | Nazwa zasobu aplikacji. |
secret |
Mapa | Ustawienia wpisu tajnego. Zobacz resources.secret. |
serving_endpoint |
Mapa | Ustawienia identyfikujące zasób punktu końcowego, który ma być użyty. Zobacz resources.serving_endpoint. |
sql_warehouse |
Mapa | Ustawienia identyfikujące zasób magazynu do użycia. Zobacz resources.sql_warehouse. |
Przykład
Poniższy przykład tworzy aplikację o nazwie my_app
, która zarządza zadaniem utworzonym przez pakiet:
resources:
jobs:
# Define a job in the bundle
hello_world:
name: hello_world
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
environment_key: default
environments:
- environment_key: default
spec:
client: '1'
# Define an app that manages the job in the bundle
apps:
job_manager:
name: 'job_manager_app'
description: 'An app which manages a job created by this bundle'
# The location of the source code for the app
source_code_path: ../src/app
# The resources in the bundle which this app has access to. This binds the resource in the app with the bundle resource.
resources:
- name: 'app-job'
job:
id: ${resources.jobs.hello_world.id}
permission: 'CAN_MANAGE_RUN'
app.yaml
Odpowiednia konfiguracja określa uruchamianie aplikacji:
command:
- flask
- --app
- app
- run
- --debug
env:
- name: JOB_ID
valueFrom: 'app-job'
Aby sprawdzić pełny pakiet przykładowy aplikacji Databricks, zobacz repozytorium GitHub bundle-examples.
klaster
Type: Map
Zasób klastra definiuje klaster.
clusters:
<cluster-name>:
<cluster-field-name>: <cluster-field-value>
Klawisz | Typ | Opis |
---|---|---|
apply_policy_default_values |
logiczny | Gdy wartość true jest ustawiona, wartości stałe i domyślne z polityki będą używane dla pól, które są pominięte. Jeśli ustawiono na false, zostaną zastosowane tylko stałe wartości z zasad. |
autoscale |
Mapa | Parametry potrzebne do automatycznego skalowania klastrów w górę i w dół na podstawie obciążenia. Zobacz autoskalowanie. |
autotermination_minutes |
Liczba całkowita | Automatycznie wyłącza klaster po upływie ustawionego czasu nieaktywności, wyrażonego w minutach. Jeśli nie zostanie ustawiona, ten klaster nie zostanie automatycznie zakończony. Jeśli zostanie określony, próg musi należeć do zakresu od 10 do 10000 minut. Użytkownicy mogą również ustawić tę wartość na 0, aby jawnie wyłączyć automatyczne kończenie. |
aws_attributes |
Mapa | Atrybuty związane z klastrami uruchomionymi w usługach Amazon Web Services. Jeśli nie zostanie określony podczas tworzenia klastra, zostanie użyty zestaw wartości domyślnych. Zobacz aws_attributes. |
azure_attributes |
Mapa | Atrybuty związane z klastrami uruchomionymi na platformie Microsoft Azure. Jeśli nie zostanie określony podczas tworzenia klastra, zostanie użyty zestaw wartości domyślnych. Zobacz azure_attributes. |
cluster_log_conf |
Mapa | Konfiguracja dostarczania logów Spark do długoterminowego magazynu docelowego. Zobacz cluster_log_conf. |
cluster_name |
Sznurek | Nazwa klastra żądana przez użytkownika. Nie musi to być unikatowe. Jeśli nie zostanie określony podczas tworzenia, nazwa klastra będzie pustym ciągiem. |
custom_tags |
Mapa | Dodatkowe tagi dla zasobów klastra. Usługa Databricks oznaczy wszystkie zasoby klastra (np. instancje AWS i woluminy EBS) za pomocą tych tagów, oprócz default_tags . Zobacz custom_tags. |
data_security_mode |
Sznurek | Model zarządzania danymi stosowany podczas uzyskiwania dostępu do danych z klastra. Zobacz data_security_mode. |
docker_image |
Mapa | Niestandardowy obraz Dockera. Zobacz docker_image. |
driver_instance_pool_id |
Sznurek | Opcjonalny identyfikator puli wystąpień, do której należy sterownik klastra. Klaster basenowy używa puli instancji o identyfikatorze (instance_pool_id), jeśli pula sterowników nie została przypisana. |
driver_node_type_id |
Sznurek | Typ węzła sterownika Spark. Pamiętaj, że to pole jest opcjonalne; jeśli nie zostanie ustawione, typ węzła sterownika zostanie ustawiony na tę samą wartość, co node_type_id zdefiniowano powyżej. To pole wraz z node_type_id nie powinno być ustawione, jeśli virtual_cluster_size jest ustawiona. Jeśli określono zarówno driver_node_type_id, node_type_id, jak i virtual_cluster_size, pierwszeństwo mają driver_node_type_id i node_type_id. |
enable_elastic_disk |
logiczny | Autoskalowanie magazynu lokalnego: po włączeniu ten klaster będzie dynamicznie uzyskiwać dodatkowe miejsce na dysku, gdy procesy robocze Spark mają mało miejsca na dysku. Ta funkcja wymaga określonych uprawnień platformy AWS do poprawnego działania — zapoznaj się z podręcznikiem użytkownika, aby uzyskać więcej informacji. |
enable_local_disk_encryption |
logiczny | Czy włączyć LUKS na dyskach lokalnych maszyn wirtualnych klastra |
gcp_attributes |
Mapa | Atrybuty związane z klastrami uruchomionymi na platformie Google Cloud Platform. Jeśli nie zostanie określony podczas tworzenia klastra, zostanie użyty zestaw wartości domyślnych. Zobacz gcp_attributes. |
init_scripts |
Kolejność | Konfiguracja przechowywania skryptów inicjowania. Można określić dowolną liczbę miejsc docelowych. Skrypty są wykonywane sekwencyjnie w podanej kolejności. Zobacz init_scripts. |
instance_pool_id |
Sznurek | Opcjonalny identyfikator puli wystąpień, do której należy klaster. |
is_single_node |
logiczny | To pole może być używane tylko wtedy, gdy kind = CLASSIC_PREVIEW . Po ustawieniu wartości true Databricks automatycznie ustawi elementy związane z jednym węzłem custom_tags , spark_conf i num_workers |
kind |
Sznurek | Rodzaj obliczeń opisany przez tę specyfikację obliczeniową. |
node_type_id |
Sznurek | To pole koduje za pomocą jednej wartości zasoby dostępne dla każdego z węzłów platformy Spark w tym klastrze. Na przykład węzły platformy Spark można aprowizować i optymalizować pod kątem obciążeń intensywnie korzystających z pamięci lub obliczeń. Listę dostępnych typów węzłów można pobrać przy użyciu wywołania interfejsu API :method:clusters/listNodeTypes. |
num_workers |
Liczba całkowita | Liczba węzłów roboczych, które powinien mieć ten klaster. Klaster ma jeden sterownik Spark i num_workers funkcje wykonawcze dla łącznie num_workers + 1 węzłów Spark. |
permissions |
Kolejność | Uprawnienia klastra. Zobacz uprawnienia. |
policy_id |
Sznurek | Identyfikator zasad klastra użytych do utworzenia klastra, jeśli ma to zastosowanie. |
runtime_engine |
Sznurek | Określa aparat środowiska uruchomieniowego klastra, albo STANDARD , albo PHOTON . |
single_user_name |
Sznurek | Nazwa pojedynczego użytkownika, jeśli data_security_mode jest SINGLE_USER |
spark_conf |
Mapa | Obiekt zawierający zestaw opcjonalnych par klucz-wartość konfiguracji Spark określonych przez użytkownika. Użytkownicy mogą również przekazać ciąg dodatkowych opcji JVM do sterownika i funkcji wykonawczych odpowiednio za pośrednictwem spark.driver.extraJavaOptions i spark.executor.extraJavaOptions . Zobacz spark_conf. |
spark_env_vars |
Mapa | Obiekt zawierający zestaw opcjonalnych par klucz-wartość zmiennej środowiskowej określonej przez użytkownika. |
spark_version |
Sznurek | Wersja Spark używana w klastrze, np. 3.3.x-scala2.11 . Listę dostępnych wersji platformy Spark można pobrać przy użyciu wywołania interfejsu API :method:clusters/sparkVersions. |
ssh_public_keys |
Kolejność | Zawartość klucza publicznego SSH, która zostanie dodana do każdego węzła Spark w tym klastrze. Odpowiednie klucze prywatne mogą służyć do logowania się przy użyciu nazwy ubuntu użytkownika na porcie 2200 . Można określić maksymalnie 10 kluczy. |
use_ml_runtime |
logiczny | To pole może być używane tylko wtedy, gdy kind = CLASSIC_PREVIEW .
effective_spark_version jest określany przez spark_version (wydanie DBR), to pole use_ml_runtime , i czy node_type_id jest węzłem gpu, czy nie. |
workload_type |
Mapa | Atrybuty klastra wyświetlane dla typów obciążeń klastrów. Zobacz workload_type. |
Przykłady
Poniższy przykład tworzy dedykowany (pojedynczy użytkownik) klaster dla bieżącego użytkownika z usługą Databricks Runtime 15.4 LTS i zasadami klastra:
resources:
clusters:
my_cluster:
num_workers: 0
node_type_id: 'i3.xlarge'
driver_node_type_id: 'i3.xlarge'
spark_version: '15.4.x-scala2.12'
spark_conf:
'spark.executor.memory': '2g'
autotermination_minutes: 60
enable_elastic_disk: true
single_user_name: ${workspace.current_user.userName}
policy_id: '000128DB309672CA'
enable_local_disk_encryption: false
data_security_mode: SINGLE_USER
runtime_engine": STANDARD
W tym przykładzie tworzony jest prosty klaster my_cluster
i jest on ustawiany jako klaster do uruchomienia notatnika w my_job
.
bundle:
name: clusters
resources:
clusters:
my_cluster:
num_workers: 2
node_type_id: 'i3.xlarge'
autoscale:
min_workers: 2
max_workers: 7
spark_version: '13.3.x-scala2.12'
spark_conf:
'spark.executor.memory': '2g'
jobs:
my_job:
tasks:
- task_key: test_task
notebook_task:
notebook_path: './src/my_notebook.py'
existing_cluster_id: ${resources.clusters.my_cluster.id}
panel sterowania
Type: Map
Zasób umożliwia zarządzanie dashboardami AI/BI w pakiecie. Aby uzyskać informacje na temat pulpitów nawigacyjnych AI/BI, zobacz Dashboards.
Uwaga / Notatka
W przypadku korzystania z pakietów zasobów Databricks z obsługą dashboardów Git, zapobiegaj generowaniu zduplikowanych dashboardów, dodając mapowanie synchronizacji, aby wykluczyć dashboardy z synchronizacji jako pliki.
sync:
exclude:
- src/*.lvdash.json
dashboards:
<dashboard-name>:
<dashboard-field-name>: <dashboard-field-value>
Klawisz | Typ | Opis |
---|---|---|
display_name |
Sznurek | Nazwa pulpitu nawigacyjnego. |
etag |
Sznurek | Etag dla konsoli. Można opcjonalnie podać podczas aktualizacji, aby upewnić się, że pulpit nawigacyjny nie został zmodyfikowany od czasu ostatniego odczytu. |
file_path |
Sznurek | Lokalna ścieżka zasobu pulpitu nawigacyjnego, w tym nazwa pliku. Wyeksportowane pulpity nawigacyjne zawsze mają rozszerzenie .lvdash.json pliku . |
permissions |
Kolejność | Uprawnienia pulpitu nawigacyjnego. Zobacz uprawnienia. |
serialized_dashboard |
Jakikolwiek | Zawartość pulpitu nawigacyjnego w postaci serializowanego ciągu. |
warehouse_id |
Sznurek | Identyfikator magazynu używany do uruchamiania pulpitu nawigacyjnego. |
Przykład
Na poniższym przykładzie przedstawiono sposób wdrożenia przykładowego pulpitu nawigacyjnego NYC Taxi Trip Analysis w obszarze roboczym usługi Databricks.
resources:
dashboards:
nyc_taxi_trip_analysis:
display_name: 'NYC Taxi Trip Analysis'
file_path: ../src/nyc_taxi_trip_analysis.lvdash.json
warehouse_id: ${var.warehouse_id}
Jeśli używasz interfejsu użytkownika do modyfikowania pulpitu nawigacyjnego, modyfikacje wprowadzone za pośrednictwem interfejsu użytkownika nie są stosowane do pliku JSON pulpitu nawigacyjnego w pakiecie lokalnym, chyba że jawnie zaktualizujesz go przy użyciu bundle generate
. Możesz użyć opcji --watch
, aby stale sprawdzać zmiany i pobierać je z pulpitu nawigacyjnego. Zobacz Generowanie pliku konfiguracji pakietu.
Ponadto w przypadku próby wdrożenia pakietu zawierającego plik JSON pulpitu nawigacyjnego, który różni się od tego w zdalnym obszarze roboczym, wystąpi błąd. Aby wymusić wdrożenie i zastąpienie pulpitu nawigacyjnego w zdalnym obszarze roboczym jego lokalną wersją, użyj opcji --force
. Zobacz Wdrażanie pakietu.
eksperyment
Type: Map
Zasób do eksperymentów umożliwia zdefiniowanie eksperymentów MLflow w ramach pakietu. Aby uzyskać informacje na temat eksperymentów MLflow, zobacz Organizowanie przebiegów trenowania za pomocą eksperymentów MLflow.
experiments:
<experiment-name>:
<experiment-field-name>: <experiment-field-value>
Klawisz | Typ | Opis |
---|---|---|
artifact_location |
Sznurek | Lokalizacja, w której są przechowywane artefakty eksperymentu. |
name |
Sznurek | Przyjazna nazwa identyfikująca eksperyment. |
permissions |
Kolejność | Uprawnienia eksperymentu. Zobacz uprawnienia. |
tags |
Kolejność | Dodatkowe pary klucz-wartość metadanych. Zobacz tagi. |
Przykład
W poniższym przykładzie zdefiniowano eksperyment, który może wyświetlać wszyscy użytkownicy:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
zadanie
Type: Map
Zasób pracy umożliwia zdefiniowanie prac i odpowiadających im zadań w pakiecie. Aby uzyskać informacje o zadaniach, zobacz Zadania lakeflow. Aby zapoznać się z samouczkiem, który używa szablonu pakietów zasobów usługi Databricks do utworzenia zadania, zobacz Tworzenie zadania za pomocą pakietów zasobów usługi Databricks.
jobs:
<job-name>:
<job-field-name>: <job-field-value>
Klawisz | Typ | Opis |
---|---|---|
budget_policy_id |
Sznurek | Identyfikator zasad budżetu określonych przez użytkownika do zastosowania dla tego zadania. Jeśli nie zostanie określony, podczas tworzenia lub modyfikowania zadania można zastosować domyślne zasady budżetu. Zobacz effective_budget_policy_id zasady budżetu używane przez to obciążenie. |
continuous |
Mapa | Opcjonalna nieprzerwana właściwość dla tego zadania. Właściwość continuous gwarantuje, że zawsze jest wykonywane jedno uruchomienie. Można użyć tylko jednego z schedule elementów i continuous . Zobacz ciągłe. |
deployment |
Mapa | Informacje o wdrażaniu zadań zarządzanych przez źródła zewnętrzne. Zobacz wdrażanie. |
description |
Sznurek | Opcjonalny opis zadania. Maksymalna długość wynosi 27700 znaków w kodowaniu UTF-8. |
edit_mode |
Sznurek | Tryb edycji zadania: albo UI_LOCKED , albo EDITABLE . |
email_notifications |
Mapa | Opcjonalny zestaw adresów e-mail, który jest powiadamiany o rozpoczęciu lub ukończeniu tego zadania, a także po usunięciu tego zadania. Zobacz email_notifications. |
environments |
Kolejność | Lista specyfikacji środowiska wykonawczego, które mogą być przywoływane przez funkcje bezserwerowe tego projektu. Środowisko musi być obecne w przypadku zadań bezserwerowych. W przypadku zadań notesu bezserwerowego środowisko jest dostępne w panelu środowiska notesu. W przypadku innych zadań bezserwerowych środowisko zadań jest wymagane do określenia przy użyciu environment_key w ustawieniach zadania. Zobacz środowiska. |
format |
Sznurek | Format zadania. |
git_source |
Mapa | Opcjonalna specyfikacja zdalnego repozytorium Git zawierającego kod źródłowy używany przez zadania. Ważne: git_source Pole oraz pole zadania source ustawione na wartość GIT nie są zalecane w przypadku pakietów, ponieważ lokalne ścieżki względne mogą nie wskazywać na tę samą zawartość w repozytorium Git. Pakiety oczekują, że wdrożone zadanie ma taką samą zawartość jak lokalna kopia, z której zostało pierwotnie wdrożone.Zamiast tego sklonuj repozytorium lokalnie i skonfiguruj projekt pakietu w tym repozytorium, aby źródło zadań stanowił obszar roboczy. |
health |
Mapa | Opcjonalny zestaw reguł zdrowotnych, które można zdefiniować dla tego zadania. Zobacz kondycję. |
job_clusters |
Kolejność | Lista specyfikacji klastra zadań, które mogą być współużytkowane i ponownie używane przez zadania tego zadania. Zobacz klastry. |
max_concurrent_runs |
Liczba całkowita | Opcjonalnie maksymalna liczba współbieżnych uruchomień tego zadania. Ustaw tę wartość, jeśli chcesz mieć możliwość współbieżnego wykonywania wielu uruchomień tego samego zadania. Zobacz max_concurrent_runs. |
name |
Sznurek | Opcjonalna nazwa zadania. Maksymalna długość to 4096 bajtów w kodowaniu UTF-8. |
notification_settings |
Mapa | Opcjonalne ustawienia powiadomień używane podczas wysyłania powiadomień do każdego z elementów email_notifications i webhook_notifications dla tego zadania. Zobacz notification_settings. |
parameters |
Kolejność | Definicje parametrów na poziomie zadania. Zobacz parametry. |
performance_target |
Sznurek | PerformanceTarget definiuje, jak wydajne lub ekonomiczne powinno być wykonywanie procesów na rozwiązaniach bezserwerowych. |
permissions |
Kolejność | Uprawnienia pracy. Zobacz uprawnienia. |
queue |
Mapa | Ustawienia kolejki zadania. Zobacz kolejkę. |
run_as |
Mapa | Ustawienie tylko do zapisu. Określa użytkownika lub jednostkę usługi, który wykonuje zadanie. Jeśli użytkownik nie zostanie określony, zadanie zostanie uruchomione za użytkownika, który utworzył zadanie. Należy określić wartość user_name lub service_principal_name . Jeśli nie, zostanie zgłoszony błąd. Zobacz Określ tożsamość przebiegu dla przepływu pracy pakietów zasobów usługi Databricks. |
schedule |
Mapa | Opcjonalny harmonogram okresowy dla tego zadania. Domyślne zachowanie polega na tym, że zadanie jest uruchamiane tylko po wyzwoleniu, klikając 'Uruchom teraz' w panelu zadań albo wysyłając żądanie interfejsu API do runNow . Zobacz harmonogram. |
tags |
Mapa | Mapa tagów skojarzonych z zadaniem. Są one przekazywane do klastra jako tagi klastra dla klastrów zadań i podlegają tym samym ograniczeniom co tagi klastra. Do zadania można dodać maksymalnie 25 tagów. |
tasks |
Kolejność | Lista specyfikacji zadań, które mają być wykonane w ramach tego zlecenia. Zobacz Dodawanie zadań do zadań w pakietach zasobów usługi Databricks. |
timeout_seconds |
Liczba całkowita | Opcjonalny limit czasu stosowany do każdego uruchomienia tego zadania. Wartość oznacza brak limitu 0 czasu. |
trigger |
Mapa | Konfiguracja wyzwalania przebiegu po spełnieniu określonych warunków. Zobacz wyzwalacz. |
webhook_notifications |
Mapa | Kolekcja identyfikatorów powiadomień systemowych do powiadamiania o rozpoczęciu lub ukończeniu tego zadania. Zobacz webhook_notifications. |
Przykłady
W poniższym przykładzie zdefiniowano zadanie z kluczem zasobu hello-job
z jednym zadaniem w notatniku:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
W poniższym przykładzie zdefiniowano zadanie za pomocą notesu SQL:
resources:
jobs:
job_with_sql_notebook:
name: 'Job to demonstrate using a SQL notebook with a SQL warehouse'
tasks:
- task_key: notebook
notebook_task:
notebook_path: ./select.sql
warehouse_id: 799f096837fzzzz4
Aby uzyskać dodatkowe przykłady konfiguracji zadań, zobacz Konfiguracja zadania.
Aby uzyskać informacje na temat definiowania zadań pracy i nadpisywania ustawień pracy, odwołaj się do:
- Dodawanie zadań do zadań w pakietach zasobów usługi Databricks
- Zastępowanie ustawień zadań w pakietach zasobów Databricks
- Nadpisywanie ustawień klastra w pakietach zasobów Databricks
model (starsza wersja)
Type: Map
Zasób dotyczący modelu pozwala na definiowanie starszych modeli w pakietach. Usługa Databricks zaleca zamiast tego korzystanie z zarejestrowanych modeli w Katalogu Unity.
punkt_serwowania_modelu
Type: Map
Zasób model_serving_endpoint umożliwia zdefiniowanie modelu obsługującego punkty końcowe. Zobacz Zarządzanie modelem obsługującym punkty końcowe.
model_serving_endpoints:
<model_serving_endpoint-name>:
<model_serving_endpoint-field-name>: <model_serving_endpoint-field-value>
Klawisz | Typ | Opis |
---|---|---|
ai_gateway |
Mapa | Konfiguracja bramy sztucznej inteligencji dla punktu końcowego obsługującego. UWAGA: Obecnie obsługiwane są tylko zewnętrzne modele i punkty końcowe z konfigurowaną przepływnością. Zobacz ai_gateway. |
config |
Mapa | Podstawowa konfiguracja punktu końcowego obsługującego. Zobacz konfigurację. |
name |
Sznurek | Nazwa obsługującego punktu końcowego. To pole jest wymagane i musi być unikatowe w obszarze roboczym usługi Databricks. Nazwa punktu końcowego może zawierać znaki alfanumeryczne, kreski i podkreślenia. |
permissions |
Kolejność | Model obsługujący uprawnienia punktu końcowego. Zobacz uprawnienia. |
rate_limits |
Kolejność | Przestarzałe. Limity szybkości, które mają być stosowane do punktu końcowego obsługi. Użyj AI Gateway do zarządzania limitami ilościowymi. |
route_optimized |
logiczny | Włącz optymalizację tras dla punktu końcowego obsługi. |
tags |
Kolejność | Tagi, które mają być dołączone do punktu końcowego obsługi i automatycznie propagowane do dzienników rozliczeniowych. Zobacz tagi. |
Przykład
W poniższym przykładzie zdefiniowano punkt końcowy serwowania modelu w Katalogu Unity.
resources:
model_serving_endpoints:
uc_model_serving_endpoint:
name: 'uc-model-endpoint'
config:
served_entities:
- entity_name: 'myCatalog.mySchema.my-ads-model'
entity_version: '10'
workload_size: 'Small'
scale_to_zero_enabled: 'true'
traffic_config:
routes:
- served_model_name: 'my-ads-model-10'
traffic_percentage: '100'
tags:
- key: 'team'
value: 'data science'
przewód
Type: Map
Zasób potoku umożliwia tworzenie deklaratywnych potoków Lakeflow. Aby uzyskać informacje na temat rurociągów, zobacz Lakeflow Deklaratywnych Rurociągów. Aby zapoznać się z samouczkiem korzystającym z szablonu pakietów zasobów Databricks do utworzenia potoku, odwołaj się do Tworzenie deklaratywnych potoków Lakeflow z pakietami zasobów Databricks.
pipelines:
<pipeline-name>:
<pipeline-field-name>: <pipeline-field-value>
Klawisz | Typ | Opis |
---|---|---|
allow_duplicate_names |
logiczny | Jeśli ustawione na false, wdrożenie się nie powiedzie, jeśli nazwa będzie w konflikcie z innym potokiem. |
catalog |
Sznurek | Katalog w Unity Catalog do publikowania danych z tego potoku. Jeśli target zostanie określony, tabele w tym potoku są publikowane w schemacie target w ramach catalog (na przykład catalog .target .table ). Jeśli target nie zostanie określony, żadne dane nie zostaną opublikowane w Unity Catalog. |
channel |
Sznurek | Kanał wydania Lakeflow Deklaratywnych Potoków określający, którą wersję Lakeflow Deklaratywnych Potoków należy używać. |
clusters |
Kolejność | Ustawienia konfiguracji klastra dla tego wdrożenia potoku. Zobacz klaster. |
configuration |
Mapa | Konfiguracja tego wykonania potoku. |
continuous |
logiczny | Określa, czy potok jest ciągły, czy wyzwalany. To zastępuje trigger . |
deployment |
Mapa | Typ wdrożenia tego ciągu technologicznego. Zobacz wdrażanie. |
development |
logiczny | Czy pipeline jest w trybie rozwoju. Wartość domyślna to fałsz. |
dry_run |
logiczny | Czy potok jest potokiem przebiegu suchego. |
edition |
Sznurek | Edycja produktu do zarządzania potokiem. |
event_log |
Mapa | Konfiguracja dziennika zdarzeń dla tego potoku. Zobacz event_log. |
filters |
Mapa | Filtry określające, które pakiety potoków mają zostać uwzględnione w wdrożonym grafie. Zobacz filtry. |
id |
Sznurek | Unikatowy identyfikator tego potoku. |
ingestion_definition |
Mapa | Konfiguracja zarządzanego potoku wprowadzania. Tych ustawień nie można używać z ustawieniami libraries , schema , target lub catalog . Zobacz ingestion_definition. |
libraries |
Kolejność | Biblioteki lub kod wymagany przez to wdrożenie. Zobacz biblioteki. |
name |
Sznurek | Przyjazna nazwa tego pipeline'u. |
notifications |
Kolejność | Ustawienia powiadomień dla tej pipelinii. Zobacz powiadomienia. |
permissions |
Kolejność | Uprawnienia potoku. Zobacz uprawnienia. |
photon |
logiczny | Określa, czy dla tego kanału włączono Photon. |
schema |
Sznurek | Domyślny schemat (baza danych), w którym tabele są odczytywane z lub publikowane. |
serverless |
logiczny | Określa, czy dla tego potoku danych jest włączone przetwarzanie w trybie bezserwerowym. |
storage |
Sznurek | Katalog główny systemu plików DBFS do przechowywania punktów kontrolnych i tabel. |
target |
Sznurek | Docelowy schemat (baza danych) do dodawania tabel w tej ścieżce przetwarzania. Należy określić dokładnie jeden z schema lub target . Aby opublikować w Unity Catalog, określ również wartość catalog . To starsze pole jest przestarzałe na potrzeby tworzenia potoku na rzecz pola schema . |
trigger |
Mapa | Przestarzałe. Który wyzwalacz potoku ma być używany. Użyj continuous zamiast tego. |
Przykład
W poniższym przykładzie zdefiniowano rurkę o kluczu zasobu hello-pipeline
:
resources:
pipelines:
hello-pipeline:
name: hello-pipeline
clusters:
- label: default
num_workers: 1
development: true
continuous: false
channel: CURRENT
edition: CORE
photon: false
libraries:
- notebook:
path: ./pipeline.py
Aby zapoznać się z dodatkowymi przykładami konfiguracji potoku, zobacz Konfiguracja potoku.
quality_monitor (wykaz aparatu Unity)
Type: Map
Zasób quality_monitor umożliwia zdefiniowanie monitora tabeli Unity Catalog. Aby uzyskać informacje o monitorach, zobacz Introduction to Databricks Lakehouse Monitoring.
quality_monitors:
<quality_monitor-name>:
<quality_monitor-field-name>: <quality_monitor-field-value>
Klawisz | Typ | Opis |
---|---|---|
assets_dir |
Sznurek | Katalog do przechowywania zasobów monitorowania (np. pulpit nawigacyjny, tabele metryk). |
baseline_table_name |
Sznurek | Nazwa tabeli bazowej, z której są obliczane metryki dryfu. Kolumny w monitorowanej tabeli powinny być również obecne w tabeli bazowej. |
custom_metrics |
Kolejność | Niestandardowe metryki do obliczenia na monitorowanej tabeli. Mogą to być metryki zagregowane, metryki pochodne (pochodzące z metryk zagregowanych) lub metryki dryfu (porównujące metryki w różnych oknach czasowych). Zobacz custom_metrics. |
inference_log |
Mapa | Konfiguracja monitorowania dzienników wnioskowania. Zobacz inference_log. |
notifications |
Mapa | Ustawienia powiadomień dla monitora. Zobacz powiadomienia. |
output_schema_name |
Sznurek | Schemat, w którym są tworzone tabele metryk wyjściowych. |
schedule |
Mapa | Harmonogram automatycznego aktualizowania i odświeżania tabel metryk. Zobacz harmonogram. |
skip_builtin_dashboard |
logiczny | Czy pominąć tworzenie domyślnego pulpitu nawigacyjnego podsumowującego metryki jakości danych. |
slicing_exprs |
Kolejność | Lista wyrażeń kolumn do podziału danych na potrzeby skupionej analizy. Dane są pogrupowane niezależnie od każdego wyrażenia, co powoduje utworzenie oddzielnego wycinka dla każdego predykatu i jego uzupełnień. W przypadku kolumn o wysokiej kardynalności tylko 100 pierwszych unikatowych wartości według częstotliwości spowoduje wygenerowanie wycinków. |
snapshot |
Mapa | Konfiguracja do monitorowania tabel migawek. |
table_name |
Sznurek | Pełna nazwa tabeli. |
time_series |
Mapa | Konfiguracja monitorowania tabel szeregów czasowych. Zobacz time_series. |
warehouse_id |
Sznurek | Opcjonalny argument określający magazyn na potrzeby tworzenia pulpitu nawigacyjnego. Jeśli nie zostanie określony, zostanie użyty pierwszy uruchomiony magazyn. |
Przykłady
Pełny przykładowy pakiet, który definiuje element quality_monitor
, zobacz pakiet mlops_demo.
W poniższych przykładach zdefiniowano monitory jakości dla InferenceLog, TimeSeriesi typy profilów migawki.
# InferenceLog profile type
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
inference_log:
granularities: [1 day]
model_id_col: model_id
prediction_col: prediction
label_col: price
problem_type: PROBLEM_TYPE_REGRESSION
timestamp_col: timestamp
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
# TimeSeries profile type
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
time_series:
granularities: [30 minutes]
timestamp_col: timestamp
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
# Snapshot profile type
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
snapshot: {}
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
registered_model (wykaz aparatu Unity)
Type: Map
Zasób zarejestrowanego modelu umożliwia definiowanie modeli w katalogu Unity. Aby uzyskać informacje na temat modeli zarejestrowanych w katalogu Unity, zobacz Zarządzanie cyklem życia modelu w katalogu Unity.
registered_models:
<registered_model-name>:
<registered_model-field-name>: <registered_model-field-value>
Klawisz | Typ | Opis |
---|---|---|
catalog_name |
Sznurek | Nazwa wykazu, w którym znajduje się schemat i zarejestrowany model. |
comment |
Sznurek | Komentarz dołączony do zarejestrowanego modelu. |
grants |
Kolejność | Dotacje powiązane z zarejestrowanym modelem. Zobacz granty. |
name |
Sznurek | Nazwa zarejestrowanego modelu. |
schema_name |
Sznurek | Nazwa schematu, w którym znajduje się zarejestrowany model. |
storage_location |
Sznurek | Lokalizacja w chmurze, w której są przechowywane pliki danych wersji modelu. |
Przykład
W poniższym przykładzie zdefiniowano zarejestrowany model w katalogu Unity.
resources:
registered_models:
model:
name: my_model
catalog_name: ${bundle.target}
schema_name: mlops_schema
comment: Registered model in Unity Catalog for ${bundle.target} deployment target
grants:
- privileges:
- EXECUTE
principal: account users
schemat (Unity Catalog)
Type: Map
Typ zasobu schematu umożliwia zdefiniowanie schematów Unity Catalog dla tabel i innych zasobów w przepływach pracy i potokach tworzonych w ramach pakietu. Schemat, inny niż inne typy zasobów, ma następujące ograniczenia:
- Właściciel zasobu schematu jest zawsze użytkownikiem wdrożenia i nie można go zmienić. Jeśli
run_as
zostanie określony w pakiecie, zostanie on zignorowany przez operacje w schemacie. - Dla zasobu schematu są dostępne tylko pola obsługiwane przez odpowiedni obiekt Schemas create API. Na przykład
enable_predictive_optimization
nie jest obsługiwany, ponieważ jest dostępny tylko w aktualizacji API .
schemas:
<schema-name>:
<schema-field-name>: <schema-field-value>
Klawisz | Typ | Opis |
---|---|---|
catalog_name |
Sznurek | Nazwa katalogu nadrzędnego. |
comment |
Sznurek | Opis tekstowy w formie dowolnej podany przez użytkownika. |
grants |
Kolejność | Dotacje związane ze schematem. Zobacz granty. |
name |
Sznurek | Nazwa schematu względem katalogu nadrzędnego. |
properties |
Mapa | Mapa właściwości typu klucz-wartość dołączona do schematu. |
storage_root |
Sznurek | Główny adres URL magazynu dla tabel zarządzanych w schemacie. |
Przykłady
W poniższym przykładzie zdefiniowano potok z kluczem zasobu my_pipeline
, który tworzy schemat Unity Catalog z kluczem my_schema
jako element docelowy.
resources:
pipelines:
my_pipeline:
name: test-pipeline-{{.unique_id}}
libraries:
- notebook:
path: ../src/nb.ipynb
- file:
path: ../src/range.sql
development: true
catalog: ${resources.schemas.my_schema.catalog_name}
target: ${resources.schemas.my_schema.id}
schemas:
my_schema:
name: test-schema-{{.unique_id}}
catalog_name: main
comment: This schema was created by Databricks Asset Bundles.
Mapowanie uprawnień najwyższego poziomu nie jest obsługiwane przez pakiety zasobów usługi Databricks, więc jeśli chcesz ustawić uprawnienia dla schematu, zdefiniuj uprawnienia dla schematu w ramach mapowania schemas
. Aby uzyskać więcej informacji na temat uprawnień, zobacz Pokazywanie, przyznawanie i cofanie przywilejów.
W poniższym przykładzie zdefiniowano schemat Unity Catalog z grantami.
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- SELECT
- principal: my_team
privileges:
- CAN_MANAGE
catalog_name: main
sekret_zakres
Type: Map
Zasób secret_scope umożliwia definiowanie tajnych zakresów w pakiecie. Aby uzyskać informacje o zakresach wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.
secret_scopes:
<secret_scope-name>:
<secret_scope-field-name>: <secret_scope-field-value>
Klawisz | Typ | Opis |
---|---|---|
backend_type |
Sznurek | Typ zaplecza technologicznego, za pomocą którego zostanie utworzony zakres. Jeśli nie zostanie określony, ta wartość domyślna to DATABRICKS . |
keyvault_metadata |
Mapa | Metadane zakresu wpisu tajnego, jeśli element backend_type ma wartość AZURE_KEYVAULT . |
name |
Sznurek | Nazwa zakresu żądana przez użytkownika. Nazwy zakresów są unikatowe. |
permissions |
Kolejność | Uprawnienia, które mają być zastosowane do zakresu tajnego. Uprawnienia są zarządzane za pośrednictwem wpisów ACL tajnych zakresu. Zobacz uprawnienia. |
Przykłady
W poniższym przykładzie zdefiniowano zakres wpisów tajnych, który używa zaplecza magazynu kluczy:
resources:
secret_scopes:
secret_scope_azure:
name: test-secrets-azure-backend
backend_type: 'AZURE_KEYVAULT'
keyvault_metadata:
resource_id: my_azure_keyvault_id
dns_name: my_azure_keyvault_dns_name
W poniższym przykładzie skonfigurowano niestandardową listę ACL przy użyciu zakresów sekretów i zezwoleń.
resources:
secret_scopes:
my_secret_scope:
name: my_secret_scope
permissions:
- user_name: admins
level: WRITE
- user_name: users
level: READ
Aby zobaczyć przykładowy pakiet, który pokazuje, jak zdefiniować zakres tajny oraz zadanie, które odczytuje z niego, przejdź do repozytorium GitHub bundle-examples.
wolumin (Unity Catalog)
Type: Map
Typ zasobu woluminu umożliwia definiowanie i tworzenie woluminów w Unity Catalog jako część pakietu. Podczas wdrażania pakietu z zdefiniowanym woluminem należy pamiętać, że:
- Nie można odwołać się do woluminu w
artifact_path
dla pakietu, dopóki nie będzie on istniał w obszarze roboczym. W związku z tym, jeśli chcesz użyć pakietów zasobów usługi Databricks do utworzenia woluminu, musisz najpierw zdefiniować wolumin w pakiecie, wdrożyć go w celu utworzenia woluminu, a następnie odwołać się do niego wartifact_path
w kolejnych wdrożeniach. - Woluminy w pakiecie nie są poprzedzone prefiksem
dev_${workspace.current_user.short_name}
, jeśli cel wdrożenia ma skonfigurowanymode: development
. Można jednak ręcznie skonfigurować ten prefiks. Zobacz Niestandardowe ustawienia wstępne.
volumes:
<volume-name>:
<volume-field-name>: <volume-field-value>
Klawisz | Typ | Opis |
---|---|---|
catalog_name |
Sznurek | Nazwa katalogu schematu i woluminu. |
comment |
Sznurek | Komentarz dołączony do woluminu. |
grants |
Kolejność | Granty skojarzone z objętością. Zobacz granty. |
name |
Sznurek | Nazwa woluminu. |
schema_name |
Sznurek | Nazwa schematu, w którym znajduje się wolumin. |
storage_location |
Sznurek | Lokalizacja magazynu w chmurze. |
volume_type |
Sznurek | Typ woluminu lub EXTERNAL MANAGED . Wolumin zewnętrzny znajduje się w określonej lokalizacji zewnętrznej. Wolumin zarządzany znajduje się w domyślnej lokalizacji określonej przez schemat nadrzędny lub wykaz nadrzędny lub magazyn metadanych. Zobacz Zarządzane i zewnętrzne woluminy. |
Przykład
Poniższy przykład tworzy wolumin Unity Catalog o kluczu my_volume
:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Przykładowy pakiet uruchamiający zadanie, które zapisuje do pliku w woluminie Unity Catalog, można znaleźć w repozytorium GitHub bundle-examples.
Typowe obiekty
dotacje
Type: Sequence
Klawisz | Typ | Opis |
---|---|---|
principal |
Sznurek | Nazwa głównego podmiotu, któremu zostaną przyznane uprawnienia. |
privileges |
Kolejność | Uprawnienia do przyznania określonemu podmiotowi. |