Compartir a través de


Automatización de la creación y administración de trabajos

En este artículo se muestra cómo empezar a trabajar con herramientas de desarrollo para automatizar la creación y administración de trabajos. Presenta la CLI de Databricks, los SDK de Databricks y la API REST.

Nota

En este artículo se proporcionan ejemplos para crear y administrar trabajos mediante la CLI de Databricks, el SDK de Python de Databricks y la API REST como una introducción sencilla a esas herramientas. Para administrar trabajos mediante programación como parte de CI/CD, utilice Conjuntos de recursos de Databricks (DAB)o el Proveedor de Databricks Terraform.

Comparación de herramientas

En la tabla siguiente se comparan la CLI de Databricks, los SDK de Databricks y la API REST para crear y administrar trabajos mediante programación. Para obtener información sobre todas las herramientas de desarrollo disponibles, consulte Herramientas de desarrollo local.

Herramienta Descripción
CLI de Databricks Acceda a la funcionalidad de Databricks mediante la interfaz de línea de comandos (CLI) de Databricks, que encapsula la API REST. Use la CLI para tareas puntuales, como experimentación, scripting de shell e invocación de la API REST directamente.
SDK de Databricks Desarrolle aplicaciones y cree flujos de trabajo personalizados de Databricks mediante un SDK de Databricks, disponible para Python, Java, Go o R. En lugar de enviar llamadas a la API REST directamente mediante curl o Postman, puede usar un SDK para interactuar con Databricks.
API REST de Databricks Si ninguna de las opciones anteriores funciona para su caso de uso específico, puede usar la API REST de Databricks directamente. Use la API REST directamente para casos de uso como la automatización de procesos en los que un SDK del lenguaje de programación preferido no está disponible actualmente.

Introducción a la CLI de Databricks

Para instalar y configurar la autenticación para la CLI de Databricks, consulte Instalación o actualización de la CLI de Databricks y Autenticación para la CLI de Databricks.

La CLI de Databricks tiene grupos de comandos para las características de Databricks, incluida una para trabajos, que contienen un conjunto de comandos relacionados, que también pueden contener subcomandos. El grupo de comandos jobs permite administrar los trabajos y ejecuciones de trabajos con acciones como create, delete y get. Dado que la CLI encapsula la API REST de Databricks, la mayoría de los comandos de la CLI se asignan a una solicitud de API REST. Por ejemplo, databricks jobs get se asigna a GET/api/2.2/jobs/get.

Para generar información de uso y sintaxis más detallada para el grupo de comandos de trabajos, un comando individual o un subcomando, use la marca h:

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

Ejemplo: Recuperación de un trabajo de Databricks mediante la CLI

Para imprimir información sobre un trabajo individual en un área de trabajo, ejecute el siguiente comando:

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

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

Ejemplo: Creación de un trabajo de Databricks mediante la CLI

En el ejemplo siguiente se usa la CLI de Databricks para crear un trabajo de Databricks. Este trabajo contiene una sola tarea de trabajo que ejecuta el cuaderno especificado. Este cuaderno tiene una dependencia de una versión específica del paquete pyPI de wheel. Para ejecutar esta tarea, el trabajo crea temporalmente un clúster que exporta una variable de entorno denominada PYSPARK_PYTHON. Una vez que se ejecuta el trabajo, se finaliza el clúster.

  1. Copie y pegue el siguiente JSON en un archivo. Para acceder al formato JSON de cualquier trabajo existente, seleccione la opción Ver JSON en la interfaz de usuario de la página de trabajo.

    {
    "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. Ejecute el siguiente comando y reemplace <file-path> por la ruta de acceso y el nombre del archivo que acaba de crear.

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

Introducción al SDK de Databricks

Databricks proporciona SDK que permiten automatizar las operaciones mediante lenguajes de programación populares, como Python, Java y Go. En esta sección se muestra cómo empezar a usar el SDK de Python para crear y administrar trabajos de Databricks.

Puede usar el SDK de Databricks desde el cuaderno de Databricks o desde la máquina de desarrollo local. Si usa su máquina de desarrollo local, asegúrese primero de completar Introducción al SDK de Databricks para Python.

Nota

Si está desarrollando desde un cuaderno de Databricks y utiliza un clúster que emplea Databricks Runtime 12.2 LTS o una versión anterior, debe instalar primero el SDK de Databricks para Python. Consulte Instalación o actualización del SDK de Databricks para Python.

Ejemplo: Creación de un trabajo de Databricks mediante el SDK de Python

El código del cuaderno de ejemplo siguiente crea un trabajo de Databricks que ejecuta un cuaderno existente. Recupera la ruta del cuaderno existente y la configuración de trabajo relacionada con indicaciones.

En primer lugar, asegúrese de que se ha instalado la versión correcta del SDK:

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

A continuación, para crear un trabajo con una tarea de cuaderno, ejecute lo siguiente y responda a las indicaciones:

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

Introducción a la API REST de Databricks

Nota

Databricks recomienda usar la CLI de Databricks y un SDK de Databricks , a menos que esté usando un lenguaje de programación que no cuente con un SDK de Databricks correspondiente.

En el ejemplo siguiente se realiza una solicitud a la API REST de Databricks para recuperar los detalles de un único trabajo. Se supone que las variables de entorno DATABRICKS_HOST y DATABRICKS_TOKEN se han establecido tal como se describe en Realizar la autenticación de tokens de acceso personal de Azure Databricks.

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

Para obtener información sobre el uso de la API REST de Databricks, consulte la documentación de referencia de la API REST de Databricks .

Limpieza

Para eliminar los trabajos que acaba de crear, ejecute databricks jobs delete <job-id> desde la CLI de Databricks o elimine el trabajo directamente desde la interfaz de usuario del área de trabajo de Databricks.

Pasos siguientes