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 |
---|---|
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 |
|
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. |
|
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.
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" } } ] }
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
Para saber mais sobre o Databricks CLI, consulte What is the Databricks CLI? e Databricks CLI comando para saber mais sobre outros grupos de comando.
Para saber mais sobre o SDK da Databricks, consulte Usar SDKs com a Databricks.
Para saber mais sobre CI/CD usando Databricks, consulte Databricks ativo Bundles e Databricks Terraform provider e Terraform CDKTF for Databricks.
Para uma visão geral abrangente de todas as ferramentas para desenvolvedores, consulte Ferramentas para desenvolvedores.