Partager via


Automatiser la création et la gestion des travaux

Cet article explique comment bien démarrer avec les outils de développement pour automatiser la création et la gestion des travaux. Il vous présente l’interface CLI Databricks, les Kits de développement logiciel (SDK) Databricks et l’API REST.

Remarque

Cet article fournit des exemples de création et de gestion de travaux à l’aide de l’interface CLI Databricks, du Kit de développement logiciel (SDK) Python Databricks et de l’API REST en guise d’introduction facile à ces outils. Pour gérer les travaux par programmation dans le cadre de CI/CD, utilisez des ensembles de ressources Databricks (DABs) ou le fournisseur Databricks Terraform.

Comparer les outils

Le tableau suivant compare l’interface CLI Databricks, les Kits de développement logiciel (SDK) Databricks et l’API REST pour créer et gérer des travaux par programmation. Pour en savoir plus sur tous les outils de développement disponibles, consultez outils de développement locaux.

Outil Description
Interface CLI Databricks Accédez à la fonctionnalité Databricks à l’aide de l’interface de ligne de commande Databricks (CLI), qui encapsule l’API REST. Utilisez l’interface CLI pour les tâches ponctuelles telles que l’expérimentation, le script d’interpréteur de commandes et l’appel direct de l’API REST
SDK Databricks Développez des applications et créez des flux de travail Databricks personnalisés à l’aide d’un Kit de développement logiciel (SDK) Databricks, disponible pour Python, Java, Go ou R. Au lieu d’envoyer des appels d’API REST directement à l’aide de curl ou Postman, vous pouvez utiliser un KIT de développement logiciel (SDK) pour interagir avec Databricks.
API REST Databricks Si aucune des options ci-dessus ne fonctionne pour votre cas d’usage spécifique, vous pouvez utiliser directement l’API REST Databricks. Utilisez directement l’API REST pour les cas d’usage tels que l’automatisation des processus où un KIT DE développement logiciel (SDK) dans votre langage de programmation préféré n’est pas disponible actuellement.

Pour commencer avec le Databricks CLI

Pour installer et configurer l’authentification pour l’interface CLI Databricks, consultez Installer ou mettre à jour l’interface CLI Databricks et Authentification pour l’interface CLI Databricks.

L’interface CLI Databricks dispose de groupes de commandes pour les fonctionnalités Databricks, y compris l’une pour les travaux, qui contiennent un ensemble de commandes associées, qui peuvent également contenir des sous-commandes. Le groupe de commandes jobs vous permet de gérer vos travaux et exécutions de travaux avec des actions telles que create, delete et get. Étant donné que l’interface CLI encapsule l’API REST Databricks, la plupart des commandes CLI sont mappées à une requête d’API REST. Par exemple, databricks jobs get correspond à GET/api/2.2/jobs/get.

Pour générer des informations d’utilisation et de syntaxe plus détaillées pour le groupe de commandes de travaux, une commande individuelle ou une sous-commande, utilisez l’indicateur h :

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

Exemple : Récupérer un travail Databricks à l’aide de l’interface CLI

Pour imprimer des informations sur un travail individuel dans un espace de travail, exécutez la commande suivante :

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

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

Exemple : Créer un travail Databricks à l’aide de l’interface CLI

L’exemple suivant utilise l’interface CLI Databricks pour créer un travail Databricks. Ce travail contient une tâche de travail unique qui exécute le bloc-notes spécifié. Ce notebook est dépendant d’une version spécifique du package PyPI wheel. Pour exécuter cette tâche, le travail crée temporairement un cluster qui exporte une variable d’environnement nommée PYSPARK_PYTHON. Une fois le travail exécuté, le cluster est arrêté.

  1. Copiez et collez le code JSON suivant dans un fichier. Vous pouvez accéder au format JSON de toute tâche existante en sélectionnant l’option Afficher le JSON dans l’interface utilisateur de la page de tâches.

    {
    "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. Exécutez la commande suivante, en remplaçant <file-path> par le chemin d’accès et le nom du fichier que vous venez de créer.

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

Bien démarrer avec le Kit de développement logiciel (SDK) Databricks

Databricks fournit des kits SDK qui vous permettent d’automatiser des opérations à l’aide de langages de programmation populaires tels que Python, Java et Go. Cette section vous montre comment commencer à utiliser le Kit de développement logiciel (SDK) Python pour créer et gérer des travaux Databricks.

Vous pouvez utiliser le Kit de développement logiciel (SDK) Databricks à partir de votre notebook Databricks ou de votre ordinateur de développement local. Si vous utilisez votre ordinateur de développement local, assurez-vous d’abord d’effectuer la prise en main du kit de développement logiciel (SDK) Databricks pour Python.

Remarque

Si vous développez à partir d’un notebook Databricks et que vous utilisez un cluster qui utilise Databricks Runtime 12.2 LTS et ci-dessous, vous devez d’abord installer le Kit de développement logiciel (SDK) Databricks pour Python. Consultez Installer ou mettre à niveau le Kit de développement logiciel (SDK) Databricks pour Python.

Exemple : Créer un travail Databricks à l’aide du Kit de développement logiciel (SDK) Python

L’exemple de code de notebook suivant crée un travail Databricks qui exécute un notebook existant. Il récupère le chemin d’accès du notebook existant et les paramètres de travail associés via des invites.

Tout d’abord, vérifiez que la version correcte du Kit de développement logiciel (SDK) a été installée :

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

Ensuite, pour créer un emploi avec une tâche de notebook, suivez les instructions suivantes, en répondant aux invites :

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

Prise en main de l’API REST Databricks

Remarque

Databricks recommande d’utiliser l’interface CLI Databricks et un SDK Databricks, sauf si vous utilisez un langage de programmation qui ne dispose pas de SDK Databricks correspondant.

L’exemple suivant envoie une requête à l’API REST Databricks pour récupérer les détails d’un seul travail. Il part du principe que les variables d’environnement DATABRICKS_HOST et DATABRICKS_TOKEN ont été définies comme décrit dans Effectuer l’authentification par jeton d’accès personnel Azure Databricks.

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

Pour plus d’informations sur l’utilisation de l’API REST Databricks, consultez la documentation de référence de l’API REST Databricks.

Nettoyer

Pour supprimer les travaux que vous venez de créer, exécutez databricks jobs delete <job-id> à partir de l’interface CLI Databricks ou supprimez le travail directement à partir de l’interface utilisateur de l’espace de travail Databricks.

Étapes suivantes