Automatizar a criação e o gerenciamento de trabalhos

Este artigo mostra ao senhor como começar a usar as ferramentas de desenvolvedor para automatizar a criação e o gerenciamento de trabalhos. Ele apresenta ao senhor a CLI da Databricks, os SDKs da Databricks e a API REST.

Observação

Este artigo fornece exemplos de criação e gerenciamento de trabalhos usando o Databricks CLI, o Databricks Python SDK e o REST API como uma introdução fácil a essas ferramentas. Para gerenciar programaticamente o Job como parte de CI/CD, use Databricks ativo Bundles (DABs) ou o provedorDatabricks Terraform .

Compare ferramentas

A tabela a seguir compara o Databricks CLI, os SDKs do Databricks e o REST API para criar e gerenciar trabalhos de forma programática. Para saber mais sobre todas as ferramentas disponíveis para desenvolvedores, consulte Ferramentas para desenvolvedores.

Ferramenta

Descrição

CLI do Databricks

Acesse a funcionalidade do Databricks usando a interface de linha de comando (CLI) do Databricks, que envolve a API REST. Use o CLI para tarefas pontuais, como experimentação, criação de scripts shell e invocação direta do REST API

SDKs da Databricks

Desenvolva aplicativos e crie Databricks fluxos de trabalho personalizados usando um Databricks SDK, disponível para Python, Java, Go ou R. Em vez de enviar REST API chamadas diretamente usando curl ou Postman, o senhor pode usar um SDK para interagir com Databricks.

API REST da Databricks

Se nenhuma das opções acima funcionar para seu caso de uso específico, o senhor pode usar a API REST da Databricks diretamente. Use a API REST diretamente para casos de uso, como a automação de processos em que um SDK na linguagem de programação de sua preferência não está disponível no momento.

Começar com o site Databricks CLI

Para instalar e configurar a autenticação para a CLI da Databricks, consulte Instalar ou atualizar a CLI da Databricks e Autenticação para a CLI da Databricks.

O site Databricks CLI tem grupos de comandos para Databricks recurso, incluindo um para Job, que contém um conjunto de comandos relacionados, que também podem conter subcomandos. O grupo de comando jobs permite que o senhor gerencie o trabalho e a execução do trabalho com ações como create, delete e get. Como o CLI envolve o Databricks REST API, a maioria dos CLI comando mapeia para uma solicitação REST API . Por exemplo, databricks jobs get mapeia para GET/api/2.2/jobs/get.

Para gerar informações mais detalhadas sobre o uso e a sintaxe do grupo de comandos do trabalho, de um comando individual ou de um subcomando, use o sinalizador h:

  • databricks jobs -h

  • databricks jobs <command-name> -h

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

Exemplo: Recuperar um trabalho do site Databricks usando o CLI

Para imprimir informações sobre um trabalho individual em um site workspace, execute o seguinte comando:

$ databricks jobs get <job-id>

databricks jobs get 478701692316314

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

Exemplo: Criar um trabalho no site Databricks usando o CLI

O exemplo a seguir usa o Databricks CLI para criar um trabalho Databricks. Esse Job contém uma única tarefa de Job que executa o Notebook especificado. Este Notebook depende de uma versão específica do pacote wheel PyPI. Para executar essa tarefa, o Job cria temporariamente um clustering que exporta uma variável de ambiente chamada PYSPARK_PYTHON. Após a execução do trabalho, o clustering é encerrado.

  1. Copie e cole o seguinte JSON em um arquivo. O senhor pode acessar o formato JSON de qualquer trabalho existente selecionando a opção view JSON na UI da página do trabalho.

    {
    "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. execute o seguinte comando, substituindo <file-path> pelo caminho e nome do arquivo que o senhor acabou de criar.

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

Começar com o site Databricks SDK

A Databricks fornece SDKs que permitem automatizar operações usando linguagens de programação populares, como Python, Java e Go. Esta seção mostra como começar a usar o Python SDK para criar e gerenciar o Databricks Job.

O senhor pode usar o Databricks SDK do Notebook Databricks ou do computador de desenvolvimento local. Se o senhor estiver usando seu computador de desenvolvimento local, certifique-se de concluir primeiro o Get começar com o Databricks SDK para Python.

Observação

Se estiver desenvolvendo a partir de um notebook Databricks e estiver usando um clustering que utilize Databricks Runtime 12.2 LTS e abaixo, será necessário instalar primeiro o Databricks SDK para Python. Consulte Instalar ou atualizar o Databricks SDK para Python.

Exemplo: Criar um trabalho Databricks usando o Python SDK

O código do Notebook de exemplo a seguir cria um trabalho Databricks que executa um Notebook existente. Ele recupera o caminho do Notebook existente e as configurações de trabalho relacionadas com prompts.

Primeiro, certifique-se de que a versão correta do SDK tenha sido instalada:

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

Em seguida, para criar um Job com uma tarefa de Notebook, execute o seguinte, respondendo aos 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")

Comece a trabalhar com o Databricks REST API

Observação

A Databricks recomenda usar o Databricks CLI e um Databricks SDK, a menos que o senhor esteja usando uma linguagem de programação que não tenha um Databricks SDK correspondente.

O exemplo a seguir faz uma solicitação ao site Databricks REST API para recuperar detalhes de um único trabalho. Ele pressupõe que as variáveis de ambiente DATABRICKS_HOST e DATABRICKS_TOKEN foram definidas conforme descrito em Perform Databricks personal access tokens authentication.

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

Para obter informações sobre o uso do site Databricks REST API , consulte a documentação de referênciaDatabricks REST API .

Limpe

Para excluir um trabalho que o senhor acabou de criar, execute databricks jobs delete <job-id> no site Databricks CLI ou exclua o trabalho diretamente da interface do usuário Databricks workspace .

Próximos passos