Delen via


Het maken en beheren van taken automatiseren

In dit artikel leest u hoe u aan de slag kunt met ontwikkelhulpprogramma's om het maken en beheren van taken te automatiseren. U maakt kennis met de Databricks CLI, de Databricks SDK's en de REST API.

Notitie

Dit artikel bevat voorbeelden voor het maken en beheren van taken met behulp van de Databricks CLI, de Databricks Python SDK en de REST API als een eenvoudige inleiding tot deze hulpprogramma's. Als u taken programmatisch wilt beheren als onderdeel van CI/CD, gebruikt u Databricks Asset Bundles (DABs) of de Databricks Terraform-provider.

Hulpprogramma's vergelijken

In de volgende tabel worden de Databricks CLI, de Databricks SDK's en de REST API vergeleken voor het programmatisch maken en beheren van taken. Zie Lokale ontwikkelhulpprogramma'svoor meer informatie over alle beschikbare ontwikkelhulpprogramma's.

Werktuig Beschrijving
Databricks CLI Toegang tot Databricks-functionaliteit met behulp van de Databricks-opdrachtregelinterface (CLI), waarmee de REST API wordt verpakt. Gebruik de CLI voor eenmalige taken, zoals experimenten, shellscripting en het rechtstreeks aanroepen van de REST API
Databricks SDKs Ontwikkel toepassingen en maak aangepaste Databricks-werkstromen met behulp van een Databricks SDK, beschikbaar voor Python, Java, Go of R. In plaats van REST API-aanroepen rechtstreeks te verzenden met curl of Postman, kunt u een SDK gebruiken om te communiceren met Databricks.
Databricks REST API Als geen van de bovenstaande opties werkt voor uw specifieke use case, kunt u de Databricks REST API rechtstreeks gebruiken. Gebruik de REST API rechtstreeks voor gebruiksvoorbeelden, zoals het automatiseren van processen waarbij een SDK in de programmeertaal van uw voorkeur momenteel niet beschikbaar is.

Aan de slag met de Databricks CLI

Zie De Databricks CLI installeren of bijwerken en Authenticatie voor de Databricks CLIom authenticatie voor de Databricks CLI te installeren en configureren.

De Databricks CLI bevat opdrachtgroepen voor Databricks-functies, waaronder een voor taken, die een set gerelateerde opdrachten bevatten, die ook subopdrachten kunnen bevatten. Met de opdrachtgroep jobs kunt u uw taken en taakuitvoer beheren met acties zoals create, delete en get. Omdat de CLI de Databricks REST API verpakt, worden de meeste CLI-opdrachten toegewezen aan een REST API-aanvraag. Bijvoorbeeld, databricks jobs get wordt toegewezen aan GET/api/2.2/jobs/get.

Gebruik de vlag h om gedetailleerdere gebruiks- en syntaxisgegevens voor de opdrachtgroep taken, een afzonderlijke opdracht of subopdracht uit te voeren:

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

Voorbeeld: Een Databricks-taak ophalen met behulp van de CLI

Voer de volgende opdracht uit om informatie over een afzonderlijke taak in een werkruimte af te drukken:

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

Met deze opdracht wordt JSON geretourneerd:

{
  "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": {}
  }
}

Voorbeeld: Een Databricks-taak maken met behulp van de CLI

In het volgende voorbeeld wordt de Databricks CLI gebruikt om een Databricks-taak te maken. Deze taak bevat één enkele taak die het opgegeven notebook uitvoert. Dit notebook vereist een specifieke versie van het wheel PyPI-pakket. Als u deze taak wilt uitvoeren, maakt de taak tijdelijk een cluster dat een omgevingsvariabele met de naam PYSPARK_PYTHONexporteert. Nadat de taak is uitgevoerd, wordt het cluster beëindigd.

  1. Kopieer en plak de volgende JSON in een bestand. U kunt de JSON-indeling van een bestaande taak openen door de optie JSON- weergeven te selecteren in de gebruikersinterface van de taakpagina.

    {
    "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. Voer de volgende opdracht uit, waarbij u <file-path> vervangt door het pad en de naam van het bestand dat u zojuist hebt gemaakt.

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

Aan de slag met de Databricks SDK

Databricks biedt SDK's waarmee u bewerkingen kunt automatiseren met populaire programmeertalen zoals Python, Java en Go. In deze sectie wordt beschreven hoe u aan de slag gaat met de Python SDK voor het maken en beheren van Databricks-taken.

U kunt de Databricks SDK gebruiken vanuit uw Databricks-notebook of vanaf uw lokale ontwikkelcomputer. Als u uw lokale ontwikkelcomputer gebruikt, moet u ervoor zorgen dat u eerst Aan de slag gaat met de Databricks SDK voor Python.

Notitie

Als u ontwikkelt vanuit een Databricks-notebook en een cluster gebruikt dat Databricks Runtime 12.2 LTS en lager gebruikt, moet u eerst de Databricks SDK voor Python installeren. Zie De Databricks SDK voor Pythoninstalleren of upgraden.

Voorbeeld: Een Databricks-taak maken met behulp van de Python SDK

De volgende voorbeeldcode voor een notitieblok maakt een Databricks-taak die een bestaand notebook uitvoert. Hiermee wordt met prompts het pad van het bestaande notitieblok en de bijbehorende taakinstellingen opgehaald.

Controleer eerst of de juiste versie van de SDK is geïnstalleerd:

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

Als u vervolgens een taak wilt maken met een notebooktaak, voert u het volgende uit en beantwoordt u de prompts:

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

Aan de slag met de Databricks REST API

Notitie

Databricks raadt aan om de Databricks CLI- en een Databricks SDKte gebruiken, tenzij u een programmeertaal gebruikt die geen bijbehorende Databricks SDK heeft.

In het volgende voorbeeld wordt een aanvraag gedaan bij de Databricks REST API om details voor één taak op te halen. Hierbij wordt ervan uitgegaan dat de omgevingsvariabelen DATABRICKS_HOST en DATABRICKS_TOKEN zijn ingesteld zoals beschreven in Persoonlijke toegangstokenverificatie van Azure Databricksuitvoeren.

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

Raadpleeg de referentiedocumentatie voor de Databricks REST APIvoor meer informatie over het gebruik ervan.

Opschonen

Als u taken wilt verwijderen die u zojuist hebt gemaakt, voert u databricks jobs delete <job-id> uit vanuit de Databricks CLI of verwijdert u de taak rechtstreeks vanuit de gebruikersinterface van de Databricks-werkruimte.

Volgende stappen