Automatyzowanie tworzenia zadań i zarządzania nimi
W tym artykule pokazano, jak rozpocząć pracę z narzędziami deweloperskich w celu zautomatyzowania tworzenia zadań i zarządzania nimi. Przedstawia interfejs wiersza polecenia Databricks, zestawy SDK Databricks oraz interfejs API REST.
Notatka
Ten artykuł zawiera przykłady tworzenia zadań i zarządzania nimi przy użyciu interfejsu wiersza polecenia usługi Databricks, zestawu SDK języka Python usługi Databricks i interfejsu API REST jako łatwego wprowadzenia do tych narzędzi. Aby programowo zarządzać zadaniami w ramach ciągłej integracji/ciągłego wdrażania, użyj pakietów zasobów Databricks (DAB) lub dostawcę Databricks Terraform.
Porównanie narzędzi
W poniższej tabeli porównaliśmy interfejs wiersza polecenia usługi Databricks, zestawy SDK usługi Databricks i interfejs API REST do programowego tworzenia zadań i zarządzania nimi. Aby dowiedzieć się więcej o wszystkich dostępnych narzędziach deweloperskich, zobacz Lokalne narzędzia programistyczne.
Narzędzie | Opis |
---|---|
interfejs wiersza polecenia (CLI) Databricks | Uzyskaj dostęp do funkcji usługi Databricks przy użyciu interfejsu wiersza polecenia usługi Databricks, który opakowuje interfejs API REST. Użyj interfejsu wiersza polecenia dla jednorazowych zadań, takich jak przeprowadzanie eksperymentów, tworzenie skryptów powłoki i bezpośrednie korzystanie z API REST. |
zestawów SDK usługi Databricks | Twórz aplikacje i twórz niestandardowe przepływy pracy usługi Databricks przy użyciu zestawu SDK usługi Databricks dostępnego dla języków Python, Java, Go lub R. Zamiast wysyłać wywołania interfejsu API REST bezpośrednio przy użyciu narzędzia curl lub Postman, możesz użyć zestawu SDK do interakcji z usługą Databricks. |
Databricks API REST | Jeśli żadna z powyższych opcji nie będzie działać dla konkretnego przypadku użycia, możesz bezpośrednio użyć interfejsu API REST usługi Databricks. Użyj interfejsu API REST bezpośrednio w przypadku przypadków użycia, takich jak automatyzacja procesów, w których zestaw SDK w preferowanym języku programowania nie jest obecnie dostępny. |
Rozpocznij pracę z interfejsem wiersza polecenia usługi Databricks
Aby zainstalować i skonfigurować uwierzytelnianie dla Databricks CLI, zobacz Instalowanie lub aktualizowanie Databricks CLI i Uwierzytelnianie dla Databricks CLI.
Interfejs wiersza polecenia usługi Databricks zawiera grupy poleceń dla funkcji usługi Databricks, w tym jeden dla zadań, które zawierają zestaw powiązanych poleceń, które mogą również zawierać polecenia podrzędne. Grupa poleceń jobs
umożliwia zarządzanie zadaniami i przebiegami zadań za pomocą akcji, takich jak create
, delete
i get
. Ponieważ CLI obsługuje interfejs API REST usługi Databricks, większość poleceń CLI odpowiada na żądania interfejsu API REST. Na przykład databricks jobs get
mapuje GET/api/2.2/jobs/get
.
Aby uzyskać bardziej szczegółowe informacje o użyciu i składni dotyczące grupy poleceń jobs, pojedynczego polecenia lub podpolecenia, użyj flagi h
:
databricks jobs -h
databricks jobs <command-name> -h
databricks jobs <command-name> <subcommand-name> -h
Przykład: odzyskiwanie zadania Databricks przy użyciu interfejsu wiersza poleceń
Aby wydrukować informacje o pojedynczym zadaniu w obszarze roboczym, uruchom następujące polecenie:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
To polecenie zwraca kod JSON:
{
"created_time":1730983530082,
"creator_user_name":"someone@example.com",
"job_id":478701692316314,
"run_as_user_name":"someone@example.com",
"settings": {
"email_notifications": {
"no_alert_for_skipped_runs":false
},
"format":"MULTI_TASK",
"max_concurrent_runs":1,
"name":"job_name",
"tasks": [
{
"email_notifications": {},
"notebook_task": {
"notebook_path":"/Workspace/Users/someone@example.com/directory",
"source":"WORKSPACE"
},
"run_if":"ALL_SUCCESS",
"task_key":"success",
"timeout_seconds":0,
"webhook_notifications": {}
},
{
"depends_on": [
{
"task_key":"success"
}
],
"disable_auto_optimization":true,
"email_notifications": {},
"max_retries":3,
"min_retry_interval_millis":300000,
"notebook_task": {
"notebook_path":"/Workspace/Users/someone@example.com/directory",
"source":"WORKSPACE"
},
"retry_on_timeout":false,
"run_if":"ALL_SUCCESS",
"task_key":"fail",
"timeout_seconds":0,
"webhook_notifications": {}
}
],
"timeout_seconds":0,
"webhook_notifications": {}
}
}
Przykład: tworzenie zadania usługi Databricks przy użyciu interfejsu wiersza polecenia
W poniższym przykładzie użyto interfejsu wiersza polecenia usługi Databricks do utworzenia zadania usługi Databricks. To zadanie zawiera jedno zadanie, które uruchamia określony notatnik. Ten notatnik ma zależność od określonej wersji pakietu PyPI wheel
. Aby uruchomić to zadanie, zadanie tymczasowo tworzy klaster, który eksportuje zmienną środowiskową o nazwie PYSPARK_PYTHON
. Po uruchomieniu zadania klaster zostanie wyłączony.
Skopiuj i wklej następujący kod JSON do pliku. Aby uzyskać dostęp do formatu JSON dowolnego istniejącego zadania, wybierz opcję Wyświetl kod JSON w interfejsie użytkownika strony zadania.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }
Uruchom następujące polecenie, zastępując
<file-path>
ścieżką i nazwą właśnie utworzonego pliku.databricks jobs create --json @<file-path>
Rozpocznij korzystanie z zestawu SDK Databricks
Usługa Databricks udostępnia zestawy SDK, które umożliwiają automatyzowanie operacji przy użyciu popularnych języków programowania, takich jak Python, Java i Go. W tej sekcji pokazano, jak rozpocząć korzystanie z zestawu SDK języka Python do tworzenia zadań usługi Databricks i zarządzania nimi.
Możesz użyć zestawu SDK usługi Databricks z notesu Databricks lub swojej lokalnej stacji roboczej. Jeśli używasz lokalnej maszyny programistycznej, upewnij się, że najpierw ukończysz Wprowadzenie do zestawu SDK Databricks dla języka Python.
Notatka
Jeśli programujesz z poziomu notesu usługi Databricks i używasz klastra korzystającego z środowiska Databricks Runtime 12.2 LTS i poniżej, najpierw musisz zainstalować zestaw SDK usługi Databricks dla języka Python. Zobacz Instalowanie lub uaktualnianie zestawu SDK usługi Databricks dla języka Python.
Przykład: tworzenie zadania usługi Databricks przy użyciu zestawu SDK języka Python
Poniższy przykładowy kod notatnika tworzy zadanie Databricks, które uruchamia istniejący notatnik. Pobiera ścieżkę istniejącego notatnika i powiązane ustawienia zadania z poleceniami.
Najpierw upewnij się, że zainstalowano poprawną wersję zestawu SDK:
%pip install --upgrade databricks-sdk==0.40.0
%restart_python
Następnie, aby utworzyć zadanie z wykorzystaniem notatnika, wykonaj następujące polecenie i odpowiedz na monity:
from databricks.sdk.service.jobs import JobSettings as Job
from databricks.sdk import WorkspaceClient
job_name = input("Provide a short name for the job, for example, my-job: ")
notebook_path = input("Provide the workspace path of the notebook to run, for example, /Users/someone@example.com/my-notebook: ")
task_key = input("Provide a unique key to apply to the job's tasks, for example, my-key: ")
test_sdk = Job.from_dict(
{
"name": job_name ,
"tasks": [
{
"task_key": task_key,
"notebook_task": {
"notebook_path": notebook_path,
"source": "WORKSPACE",
},
},
],
}
)
w = WorkspaceClient()
j = w.jobs.create(**test_sdk.as_shallow_dict())
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Rozpocznij korzystanie z interfejsu API REST usługi Databricks
Notatka
Databricks zaleca używanie interfejsu wiersza polecenia Databricks i Databricks SDK, chyba że używasz języka programowania, który nie ma odpowiedniego Databricks SDK.
Poniższy przykład wysyła żądanie do interfejsu API REST usługi Databricks w celu pobrania szczegółów pojedynczego zadania. Przyjęto założenie, że zmienne środowiskowe DATABRICKS_HOST
i DATABRICKS_TOKEN
zostały ustawione zgodnie z opisem w Wykonywanie uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Aby uzyskać informacje na temat korzystania z interfejsu API REST usługi Databricks, zobacz dokumentację interfejsu API REST usługi Databricks.
Czyszczenie
Aby usunąć wszystkie utworzone zadania, uruchom databricks jobs delete <job-id>
z interfejsu wiersza polecenia usługi Databricks lub usuń zadanie bezpośrednio z interfejsu użytkownika obszaru roboczego usługi Databricks.
Następne kroki
- Aby dowiedzieć się więcej na temat Databricks CLI, zobacz Co to jest Databricks CLI? i Polecenia Databricks CLI, aby dowiedzieć się o innych grupach poleceń.
- Aby dowiedzieć się więcej na temat zestawu SDK usługi Databricks, zobacz Use SDK with Azure Databricks (Używanie zestawów SDK z usługą Azure Databricks).
- Aby dowiedzieć się więcej na temat ciągłej integracji/ciągłego wdrażania przy użyciu usługi Databricks, zobacz Pakiety zasobów usługi Databricks i Databricks Terraform provider i Terraform CDKTF dla Databricks.
- Aby zapoznać się z kompleksowym omówieniem wszystkich narzędzi deweloperskich, zobacz Lokalne narzędzia programistyczne.