Pular para o conteúdo principal

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.

nota

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 do CI/CD, use o Databricks ativo Bundles 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 de desenvolvimento disponíveis, consulte Ferramentas de desenvolvimento local.

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, shell criação de scripts 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:

Bash
$ databricks jobs get <job-id>

databricks jobs get 478701692316314

Esse comando retorna JSON:

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.

    JSON
    {
    "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.

    Bash
    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 estiver usando seu computador de desenvolvimento local, certifique-se de concluir primeiro o Get começar com o Databricks SDK para Python.

nota

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:

Python
%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:

Python
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

nota

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.

Bash
$ 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óximas etapas