Condividi tramite


Automatizzare la creazione e la gestione dei lavori

Questo articolo illustra come iniziare a usare gli strumenti di sviluppo per automatizzare la creazione e la gestione dei processi. Presenta l'interfaccia della riga di comando di Databricks, gli SDK di Databricks e l'API REST.

Nota

Questo articolo fornisce esempi per la creazione e la gestione di processi tramite l'interfaccia della riga di comando di Databricks, Databricks Python SDK e l'API REST come semplice introduzione a tali strumenti. Per gestire i processi a livello di codice come parte di CI/CD, usare i Databricks Asset Bundles (DAB) o il Databricks Terraform provider .

Confrontare gli strumenti

La tabella seguente confronta l'interfaccia della riga di comando di Databricks, gli SDK di Databricks e l'API REST per la creazione e la gestione dei processi a livello di codice. Per informazioni su tutti gli strumenti di sviluppo disponibili, vedere Strumenti di sviluppo locali.

Strumento Descrizione
dell'interfaccia della riga di comando di Databricks Accedere alle funzionalità di Databricks usando l'interfaccia della riga di comando di Databricks, che esegue il wrapping dell'API REST. Usare l'interfaccia della riga di comando per attività occasionali, ad esempio sperimentazione, script della shell e richiamare direttamente l'API REST
SDK di Databricks Sviluppare applicazioni e creare flussi di lavoro di Databricks personalizzati usando un SDK di Databricks, disponibile per Python, Java, Go o R. Anziché inviare chiamate API REST direttamente usando curl o Postman, è possibile usare un SDK per interagire con Databricks.
api REST di Databricks Se nessuna delle opzioni precedenti funziona per un caso d'uso specifico, è possibile usare direttamente l'API REST di Databricks. Usare direttamente l'API REST per casi d'uso come l'automazione dei processi in cui non è attualmente disponibile un SDK nel linguaggio di programmazione preferito.

Introduzione all'interfaccia della riga di comando di Databricks

Per installare e configurare l'autenticazione per l'interfaccia della riga di comando di Databricks, vedere Installare o aggiornare l'interfaccia della riga di comando di Databricks e l'autenticazione per l'interfaccia della riga di comando di Databricks.

L'interfaccia della riga di comando di Databricks include gruppi di comandi per le funzionalità di Databricks, tra cui uno per i processi, che contengono un set di comandi correlati, che possono contenere anche sottocomandi. Il gruppo di comandi jobs consente di gestire i processi e le esecuzioni dei processi con azioni quali create, delete e get. Poiché l'interfaccia della riga di comando incapsula l'API REST di Databricks, la maggior parte dei comandi dell'interfaccia della riga di comando corrispondono a una richiesta API REST. Ad esempio, databricks jobs get corrisponde a GET/api/2.2/jobs/get.

Per ottenere informazioni più dettagliate sull'utilizzo e sulla sintassi per il gruppo di comandi dei processi, un singolo comando o un sottocomando, usare il flag h:

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

Esempio: Recuperare un processo di Databricks usando l'interfaccia della riga di comando

Per stampare informazioni su un singolo processo in un'area di lavoro, eseguire il comando seguente:

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

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

Esempio: Creare un processo di Databricks usando la CLI

L'esempio seguente usa l'interfaccia della riga di comando di Databricks per creare un processo di Databricks. Questo processo contiene una singola attività lavorativa che esegue il notebook specificato. Questo notebook ha una dipendenza da una versione specifica del pacchetto PyPI wheel. Per eseguire questa attività, il processo crea temporaneamente un cluster che esporta una variabile di ambiente denominata PYSPARK_PYTHON. Dopo l'esecuzione del processo, il cluster viene terminato.

  1. Copiare e incollare il codice JSON seguente in un file. È possibile accedere al formato JSON di qualsiasi processo esistente selezionando l'opzione Visualizza JSON dall'interfaccia utente della pagina del processo.

    {
    "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. Eseguire il comando seguente, sostituendo <file-path> con il percorso e il nome del file appena creato.

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

Introduzione a Databricks SDK

Databricks offre SDK che consentono di automatizzare le operazioni usando linguaggi di programmazione comuni, ad esempio Python, Java e Go. Questa sezione illustra come iniziare a usare Python SDK per creare e gestire processi di Databricks.

È possibile usare Databricks SDK dal notebook di Databricks o dal computer di sviluppo locale. Se stai utilizzando la tua macchina di sviluppo locale, assicurati di completare per prima cosa Introduzione all'SDK di Databricks per Python.

Nota

Se si sviluppa da un notebook di Databricks e si usa un cluster che usa Databricks Runtime 12.2 LTS e versioni successive, è prima necessario installare Databricks SDK per Python. Consultare Installare o aggiornare il Databricks SDK per Python.

Esempio: Creare un processo di Databricks utilizzando il Python SDK

Il codice del notebook di esempio seguente crea un processo di Databricks che esegue un notebook esistente. Recupera il percorso del notebook esistente e le impostazioni dell'attività correlate con i prompt.

Assicurarsi prima di tutto che sia stata installata la versione corretta dell'SDK:

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

Successivamente, per creare un processo con un'attività notebook, eseguire le operazioni seguenti, rispondendo alle richieste:

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

Introduzione all'API REST di Databricks

Nota

Databricks consiglia di usare la CLI di Databricks e un SDK di Databricks, a meno che non si utilizzi un linguaggio di programmazione che non abbia un SDK Databricks corrispondente.

L'esempio seguente invia una richiesta all'API REST di Databricks per recuperare i dettagli per un singolo processo. Si presuppone che le variabili di ambiente DATABRICKS_HOST e DATABRICKS_TOKEN siano state impostate come descritto in Eseguire l'autenticazione del token di accesso personale di Azure Databricks.

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

Per informazioni sull'uso dell'API REST di Databricks, vedere la documentazione di riferimento dell'API REST di Databricks .

Pulire

Per eliminare tutti i processi appena creati, eseguire databricks jobs delete <job-id> dall'interfaccia della riga di comando di Databricks o eliminare il processo direttamente dall'interfaccia utente dell'area di lavoro di Databricks.

Passaggi successivi