Sdílet prostřednictvím


Automatizace vytváření a správy úloh

V tomto článku se dozvíte, jak začít s vývojářskými nástroji automatizovat vytváření a správu úloh. Seznámí vás s rozhraním příkazového řádku Databricks, sadami SDK Databricks a rozhraním REST API.

Poznámka

Tento článek obsahuje příklady pro vytváření a správu úloh pomocí rozhraní příkazového řádku Databricks, sady Databricks Python SDK a rozhraní REST API jako snadného úvodu k těmto nástrojům. Pokud chcete úlohy spravovat prostřednictvím kódu programu jako součást CI/CD, použijte sady prostředků Databricks (DABs) nebo poskytovatele Databricks Terraformu.

Porovnání nástrojů

Následující tabulka porovnává rozhraní příkazového řádku Databricks, sady SDK Databricks a rozhraní REST API pro programové vytváření a správu úloh. Další informace o všech dostupných vývojářských nástrojích najdete v tématu místní vývojové nástroje.

Nástroj Popis
rozhraní příkazového řádku Databricks Získejte přístup k funkcím Databricks pomocí příkazového řádku Databricks (CLI), který obaluje rozhraní REST API. Použití rozhraní příkazového řádku pro jednorázové úlohy, jako jsou experimentování, skriptování prostředí a přímé vyvolání rozhraní REST API
Databricks SDKs Vyvíjejte aplikace a vytvářejte vlastní pracovní postupy Databricks pomocí sady Databricks SDK, která je k dispozici pro Python, Javu, Go nebo R. Místo přímého odesílání volání rozhraní REST API pomocí nástroje curl nebo Postman můžete k interakci s Databricks použít sadu SDK.
rozhraní REST API Databricks Pokud pro váš konkrétní případ použití nefunguje žádná z výše uvedených možností, můžete přímo použít rozhraní REST API Databricks. Rozhraní REST API použijte přímo pro případy použití, jako je automatizace procesů, kdy sada SDK v preferovaném programovacím jazyce není aktuálně dostupná.

Začínáme s rozhraním příkazového řádku Databricks

Informace o instalaci a konfiguraci ověřování pro rozhraní příkazového řádku Databricks najdete v tématu Instalace nebo aktualizace rozhraní příkazového řádku Databricks a ověřování pro rozhraní příkazového řádku Databricks.

Rozhraní příkazového řádku Databricks obsahuje skupiny příkazů pro funkce Databricks, včetně jedné pro úlohy, které obsahují sadu souvisejících příkazů, které můžou také obsahovat dílčí příkazy. Skupina příkazů jobs umožňuje spravovat úlohy a spouštění úloh pomocí akcí, jako jsou create, delete a get. Protože CLI využívá Databricks REST API, většina jeho příkazů je mapována na požadavky tohoto API. Například databricks jobs get mapuje na GET/api/2.2/jobs/get.

Pokud chcete zobrazit podrobnější informace o využití a syntaxi pro skupinu příkazů úloh, jednotlivé příkazy nebo podpříkazy, použijte příznak h:

  • databricks jobs -h
  • databricks jobs <command-name> -h
  • databricks jobs <command-name> <subcommand-name> -h

Příklad: Načtení úlohy Databricks pomocí rozhraní příkazového řádku

Pokud chcete vytisknout informace o jednotlivých úlohách v pracovním prostoru, spusťte následující příkaz:

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

Tento příkaz vrátí 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": {}
  }
}

Příklad: Vytvoření úlohy Databricks pomocí rozhraní příkazového řádku

Následující příklad používá rozhraní příkazového řádku Databricks k vytvoření úlohy Databricks. Tato úloha obsahuje jediný úkol, který spouští zadaný poznámkový blok. Tento poznámkový blok je závislý na konkrétní verzi balíčku wheel PyPI. Pro spuštění této úlohy úloha dočasně vytvoří cluster, který exportuje proměnnou prostředí s názvem PYSPARK_PYTHON. Po spuštění úlohy se cluster ukončí.

  1. Zkopírujte a vložte následující JSON do souboru. K formátu JSON libovolné existující úlohy se dostanete tak, že v uživatelském rozhraní stránky úlohy vyberete možnost Zobrazit json.

    {
    "name": "My hello notebook job",
    "tasks": [
        {
        "task_key": "my_hello_notebook_task",
        "notebook_task": {
            "notebook_path": "/Workspace/Users/someone@example.com/hello",
            "source": "WORKSPACE"
        }
        }
    ]
    }
    
  2. Spusťte následující příkaz a nahraďte <file-path> cestou a názvem souboru, který jste právě vytvořili.

    databricks jobs create --json @<file-path>
    

Začínáme se sadou nástrojů Databricks SDK

Databricks poskytuje sady SDK, které umožňují automatizovat operace pomocí oblíbených programovacích jazyků, jako jsou Python, Java a Go. V této části se dozvíte, jak začít používat sadu Python SDK k vytváření a správě úloh Databricks.

Databricks SDK můžete použít pro Databricks notebook nebo pro místní vývojový počítač. Pokud používáte místní vývojový počítač, ujistěte se, že jste nejprve dokončili Začínáme se sadou Databricks SDK pro Python.

Poznámka

Pokud vyvíjíte z poznámkového bloku Databricks a používáte cluster, který používá Databricks Runtime 12.2 LTS a níže, musíte nejprve nainstalovat sadu Databricks SDK pro Python. Viz Instalace nebo upgrade nástroje Databricks SDK pro Python.

Příklad: Vytvoření úlohy Databricks pomocí sady Python SDK

Následující příklad kódu poznámkového bloku vytvoří úlohu Databricks, která spustí existující poznámkový blok. Načte cestu existujícího poznámkového bloku a související nastavení úlohy s výzvami.

Nejprve se ujistěte, že je nainstalovaná správná verze sady SDK:

%pip install --upgrade databricks-sdk==0.40.0
%restart_python

Chcete-li vytvořit úlohu v poznámkovém bloku, spusťte následující příkaz a zodpovězte otázky:

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

Začínáme s rozhraním Databricks REST API

Poznámka

Databricks doporučuje používat Databricks CLI a Databricks SDK, pokud nepoužíváte programovací jazyk, který nemá odpovídající Databricks SDK.

Následující příklad odešle do rozhraní REST API Databricks požadavek na načtení podrobností pro jednu úlohu. Předpokládá se, že proměnné prostředí DATABRICKS_HOST a DATABRICKS_TOKEN byly nastaveny, jak je popsáno v části Provedení ověřování pomocí osobního přístupového tokenu Azure Databricks.

$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
     --header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
     --data '{ "job": "11223344" }'

Informace o použití rozhraní DATAbricks REST API najdete v referenční dokumentaci k rozhraní REST API služby Databricks.

Odklidit

Pokud chcete odstranit právě vytvořené úlohy, spusťte databricks jobs delete <job-id> z rozhraní příkazového řádku Databricks nebo odstraňte úlohu přímo z uživatelského rozhraní pracovního prostoru Databricks.

Další kroky