Dela via


Automatisera skapandet och hanteringen av jobb

Den här artikeln visar hur du kommer igång med utvecklarverktyg för att automatisera skapandet och hanteringen av jobb. Den introducerar dig för Databricks CLI, Databricks SDK:er och REST-API:et.

Not

Den här artikeln innehåller exempel på hur du skapar och hanterar jobb med Databricks CLI, Databricks Python SDK och REST API som en enkel introduktion till dessa verktyg. Om du vill hantera jobb programmatiskt som en del av CI/CD använder du Databricks Asset Bundles (DAB) eller Databricks Terraform-providern.

Jämför verktyg

I följande tabell jämförs Databricks CLI, Databricks SDK:er och REST-API:et för att programmatiskt skapa och hantera jobb. Mer information om alla tillgängliga utvecklarverktyg finns i Lokala utvecklingsverktyg.

Verktyg Beskrivning
Databricks CLI Få åtkomst till Databricks-funktioner med hjälp av Databricks kommandoradsgränssnitt (CLI), som omsluter REST-API:et. Använd CLI för engångsaktiviteter, till exempel experimentering, shell-skript och att anropa REST-API:et direkt
Databricks SDK Utveckla program och skapa anpassade Databricks-arbetsflöden med hjälp av en Databricks SDK som är tillgänglig för Python, Java, Go eller R. I stället för att skicka REST API-anrop direkt med curl eller Postman kan du använda en SDK för att interagera med Databricks.
Databricks REST API Om inget av ovanstående alternativ fungerar för ditt specifika användningsfall kan du använda Databricks REST API direkt. Använd REST API direkt för användningsfall, till exempel automatisera processer där en SDK i önskat programmeringsspråk inte är tillgängligt för närvarande.

Kom igång med Databricks CLI

Information om hur du installerar och konfigurerar autentisering för Databricks CLI finns i Installera eller uppdatera Databricks CLI- och -autentisering för Databricks CLI-.

Databricks CLI har kommandogrupper för Databricks-funktioner, inklusive en för jobb, som innehåller en uppsättning relaterade kommandon, som också kan innehålla underkommandon. Med kommandogruppen jobs kan du hantera jobb och jobbkörningar med åtgärder som create, delete och get. Eftersom CLI omsluter Databricks REST API mappar de flesta CLI-kommandon till en REST API-begäran. Till exempel mappar databricks jobs get till GET/api/2.2/jobs/get.

Om du vill mata ut mer detaljerad användnings- och syntaxinformation för jobbkommandogruppen, ett enskilt kommando eller underkommando använder du flaggan h:

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

Exempel: Hämta ett Databricks-jobb med hjälp av CLI

Om du vill skriva ut information om ett enskilt jobb på en arbetsyta kör du följande kommando:

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

Det här kommandot returnerar 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": {}
  }
}

Exempel: Skapa ett Databricks-jobb med hjälp av CLI

I följande exempel används Databricks CLI för att skapa ett Databricks-jobb. Detta jobb innehåller en enda aktivitet som kör den angivna anteckningsboken. Den här notebook-filen är beroende av en viss version av wheel PyPI-paketet. För att köra den här uppgiften skapar jobbet tillfälligt ett kluster som exporterar en miljövariabel med namnet PYSPARK_PYTHON. När jobbet har körts avslutas klustret.

  1. Kopiera och klistra in följande JSON i en fil. Du kan komma åt JSON-formatet för ett befintligt jobb genom att välja alternativet Visa JSON- från jobbsidans användargränssnitt.

    {
    "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. Kör följande kommando och ersätt <file-path> med sökvägen och namnet på filen som du nyss skapade.

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

Kom igång med Databricks SDK

Databricks tillhandahåller SDK:er som gör att du kan automatisera åtgärder med hjälp av populära programmeringsspråk som Python, Java och Go. Det här avsnittet visar hur du kommer igång med Python SDK för att skapa och hantera Databricks-jobb.

Du kan använda Databricks SDK från din Databricks-notebook-fil eller från din lokala utvecklingsdator. Om du använder din lokala utvecklingsdator måste du först slutföra Kom igång med Databricks SDK för Python.

Not

Om du utvecklar från en Databricks-notebook-fil och använder ett kluster som använder Databricks Runtime 12.2 LTS och nedan måste du först installera Databricks SDK för Python. Se Installera eller uppgradera Databricks SDK för Python.

Exempel: Skapa ett Databricks-jobb med hjälp av Python SDK

Följande exempel på notebook-kod skapar ett Databricks-jobb som kör en befintlig notebook-fil. Den hämtar sökvägen till den befintliga notebook-filen och relaterade jobbinställningar med hjälp av vägledning.

Kontrollera först att rätt version av SDK:et har installerats:

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

Nästa steg, för att skapa ett jobb med en anteckningsblockuppgift, kör följande och svara på frågorna:

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

Kom igång med Databricks REST API

Not

Databricks rekommenderar att du använder Databricks CLI- och en Databricks SDK, såvida du inte använder ett programmeringsspråk som inte har någon motsvarande Databricks SDK.

I följande exempel skickas en begäran till Databricks REST API för att hämta information för ett enda jobb. Det förutsätter att miljövariablerna DATABRICKS_HOST och DATABRICKS_TOKEN har angetts enligt beskrivningen i Utföra personlig åtkomsttokenautentisering i Azure Databricks.

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

Information om hur du använder Databricks REST API finns i referensdokumentationen Databricks REST API.

Rensa

Om du vill ta bort jobb som du nyss skapade kör du databricks jobs delete <job-id> från Databricks CLI eller tar bort jobbet direkt från databricks-arbetsytans användargränssnitt.

Nästa steg