Automatizar a criação e o gerenciamento de trabalho
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 do Databricks Python e a API REST como uma introdução fácil a essas ferramentas. Para gerenciar trabalhos programaticamente como parte do CI/CD, use os Pacotes de Ativos do Databricks (DABs) ou o provedor 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 locais.
Ferramenta | Descrição |
---|---|
CLI do Databricks | Acesse a funcionalidade do Databricks usando a CLI (interface de linha de comando) do Databricks, que encapsula a API REST. Use a CLI para tarefas pontuais, como experimentação, script de shell e invocação direta da API REST |
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 à API REST diretamente usando curl ou Postman, você pode usar um SDK para interagir com o Databricks. |
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 automatizar processos em que um SDK em sua linguagem de programação preferencial 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 as seções 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 trabalho 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 de API REST. Por exemplo, databricks jobs get
mapeia para GET/api/2.2/jobs/get
.
Para gerar informações de uso e sintaxe mais detalhadas para o grupo de comandos de trabalhos, 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 workspace, 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 do 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 de trabalho que executa o notebook especificado. Este notebook tem uma dependência de uma versão específica do pacote PyPI wheel
. Para executar essa tarefa, o trabalho cria temporariamente um cluster que exporta uma variável de ambiente chamada PYSPARK_PYTHON
. Depois que o trabalho for executado, o cluster será encerrado.
Copie e cole o JSON a seguir em um arquivo. Você pode acessar o formato JSON de qualquer trabalho existente selecionando a opção Exibir JSON na interface do usuário da página de 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" } } ] }
Execute o comando a seguir, substituindo
<file-path>
pelo caminho e o 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 do seu bloco de anotações do Databricks ou do computador de desenvolvimento local. Se você estiver usando seu computador de desenvolvimento local, primeiro conclua Introdução ao SDK do Databricks para Python.
Observação
Se você estiver desenvolvendo a partir de um notebook do Databricks e estiver usando um cluster que usa o Databricks Runtime 12.2 LTS e, abaixo, deverá instalar o SDK do Databricks para Python primeiro. Consulte Instalar ou atualizar o SDK do Databricks para Python.
Exemplo: criar um trabalho do Databricks usando o SDK do Python
O código do notebook de exemplo a seguir cria um trabalho do Databricks que executa um notebook existente. Ele recupera o caminho do notebook existente e as configurações de trabalho associadas a solicitações.
Primeiro, verifique se 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 às solicitações:
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 usar a CLI do Databricks e um SDK do Databricks, a menos que você esteja usando 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 a autenticação do 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.
Limpar
Para excluir todos os 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 workspace do Databricks.
Próximas etapas
- Para saber mais sobre a CLI do Databricks, consulte O que é a CLI do Databricks? e os comandos da CLI do Databricks para saber mais 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 o Databricks, confira Pacotes de Ativos do Databricks, Provedor do Databricks Terraform e CDKTF do Terraform para Databricks.
- Para obter uma visão geral abrangente de todas as ferramentas de desenvolvedor, consulte Ferramentas de desenvolvimento locais.