Automatize a criação e o gerenciamento de empregos
Este artigo mostra como começar a usar ferramentas de desenvolvedor para automatizar a criação e o gerenciamento de trabalhos. Ele apresenta a CLI do Databricks, os SDKs do Databricks e a API REST.
Observação
Este artigo fornece exemplos para criar e gerenciar trabalhos usando a CLI do Databricks, o SDK Python do Databricks e a API REST como uma introdução fácil a essas ferramentas. Para gerir trabalhos de forma programática no âmbito de CI/CD, utilize os Databricks Asset Bundles (DABs) ou o fornecedor Databricks Terraform .
Comparar ferramentas
A tabela a seguir compara a CLI do Databricks, os SDKs do Databricks e a API REST para criar e gerenciar trabalhos programaticamente. Para saber mais sobre todas as ferramentas de desenvolvedor disponíveis, consulte Ferramentas de desenvolvimento local.
Ferramenta | Descrição |
---|---|
da CLI do Databricks | Acesse a funcionalidade Databricks usando a interface de linha de comando (CLI) Databricks, que encapsula a API REST. Use a CLI para tarefas pontuais, como experimentação, shell script e invocar a API REST diretamente |
SDKs do Databricks | Desenvolva aplicativos e crie fluxos de trabalho personalizados do Databricks usando um SDK do Databricks, disponível para Python, Java, Go ou R. Em vez de enviar chamadas de API REST diretamente usando curl ou Postman, você pode usar um SDK para interagir com o Databricks. |
da API REST do Databricks | Se nenhuma das opções acima funcionar para seu caso de uso específico, você poderá usar a API REST do Databricks diretamente. Use a API REST diretamente para casos de uso, como a automação de processos em que um SDK em sua linguagem de programação preferida não está disponível no momento. |
Introdução à CLI do Databricks
Para instalar e configurar a autenticação para a CLI do Databricks, consulte Instalar ou atualizar a CLI do Databricks e Autenticação para a CLI do Databricks.
A CLI do Databricks tem grupos de comandos para recursos do Databricks, incluindo um para trabalhos, que contêm um conjunto de comandos relacionados, que também podem conter subcomandos. O grupo de comandos jobs
permite que você gerencie seus trabalhos e execuções de trabalhos com ações como create
, delete
e get
. Como a CLI encapsula a API REST do Databricks, a maioria dos comandos da CLI é mapeada para uma solicitação da API REST. Por exemplo, databricks jobs get
mapeia para GET/api/2.2/jobs/get
.
Para obter informações mais detalhadas de uso e sintaxe para o grupo de comandos jobs, um comando individual ou 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 Databricks usando a CLI
Para imprimir informações sobre um trabalho individual em um espaço de trabalho, execute o seguinte comando:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
Este 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 Databricks usando a CLI
O exemplo a seguir usa a CLI do Databricks para criar um trabalho do Databricks. Este trabalho contém uma única tarefa que executa o notebook especificado. Este notebook tem uma dependência de uma versão específica do pacote wheel
PyPI. Para executar essa tarefa, o trabalho cria temporariamente um cluster que exporta uma variável de ambiente chamada PYSPARK_PYTHON
. Depois que o trabalho é executado, o cluster é encerrado.
Copie e cole o JSON a seguir em um arquivo. Você pode acessar o formato JSON de qualquer tarefa existente selecionando a opção Ver JSON na interface da tarefa.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }
Execute o seguinte comando, substituindo
<file-path>
pelo caminho e nome do arquivo que você acabou de criar.databricks jobs create --json @<file-path>
Introdução ao SDK do Databricks
O 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 SDK do Python para criar e gerenciar trabalhos do Databricks.
Você pode usar o SDK do Databricks a partir do seu notebook Databricks ou da sua máquina de desenvolvimento local. Se você estiver usando sua máquina de desenvolvimento local, certifique-se de concluir primeiro Introdução ao SDK do Databricks para Python.
Observação
Se você estiver desenvolvendo a partir de um notebook Databricks e estiver usando um cluster que usa o Databricks Runtime 12.2 LTS e inferior, você deve instalar o SDK do Databricks para Python primeiro. Consulte Instalar ou atualizar o SDK do Databricks para Python.
Exemplo: Criar um trabalho Databricks usando o Python SDK
O código de bloco de anotações de exemplo a seguir cria um trabalho Databricks que executa um bloco de anotações existente. Recupera o caminho do caderno existente e as definições de trabalho relacionadas usando prompts.
Primeiro, certifique-se de que a versão correta do SDK foi instalada:
%pip install --upgrade databricks-sdk==0.40.0
%restart_python
Em seguida, para criar um trabalho 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")
Introdução à API REST do Databricks
Observação
O Databricks recomenda o uso da CLI do Databricks e de um SDK do Databricks , a menos que esteja a usar uma linguagem de programação que não tenha um SDK do Databricks correspondente.
O exemplo a seguir faz uma solicitação à API REST do Databricks 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 Executar autenticação de token de acesso pessoal do Azure Databricks.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Para obter informações sobre como usar a API REST do Databricks, consulte a documentação de referência da API REST do Databricks.
Limpeza
Para excluir quaisquer trabalhos que você acabou de criar, execute databricks jobs delete <job-id>
da CLI do Databricks ou exclua o trabalho diretamente da interface do usuário do espaço de trabalho do Databricks.
Próximos passos
- Para saber mais sobre a CLI do Databricks, consulte O que é a CLI do Databricks? e Comandos da CLI do Databricks para aprender sobre outros grupos de comandos.
- Para saber mais sobre o SDK do Databricks, consulte Usar SDKs com o Azure Databricks.
- Para saber mais sobre CI/CD usando Databricks, consulte Databricks Asset Bundles e Databricks Terraform provider e Terraform CDKTF for Databricks.
- Para obter uma visão geral abrangente de todas as ferramentas de desenvolvedor, consulte Ferramentas de desenvolvimento local.