Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece exemplos de configuração para recursos do Databricks Asset Bundles e casos de uso comuns do bundle.
Exemplos completos de pacotes, descritos na tabela a seguir, estão disponíveis no repositório GitHub de exemplos de pacotes:
Nome do pacote | Descrição |
---|---|
dashboard_nyc_taxi | Um pacote com um painel de IA/BI e um trabalho que captura um instantâneo do painel e o envia por e-mail para um assinante |
databricks_app | Um pacote que define um aplicativo Databricks |
cluster de desenvolvimento | Um pacote que define e usa um cluster de desenvolvimento (para todos os fins) |
job_read_secret | Um pacote que define um escopo secreto e um trabalho com uma tarefa que lê a partir dele |
trabalho_com_várias_rodas | Um pacote que define e utiliza uma tarefa com várias dependências de wheel |
tarefa_de_execution_job | Um pacote com vários trabalhos com tarefas de execução |
job_with_sql_notebook | Um pacote com um trabalho que usa uma tarefa do notebook SQL |
pipeline_with_schema | Um pacote que define um esquema do Unity Catalog e um pipeline que o usa |
private_wheel_packages | Um pacote que usa um pacote de roda particular de um trabalho |
python_wheel_poetry | Um pacote que constrói um whl com Poesia |
tarefa sem servidor | Um pacote que usa computação sem servidor para executar um trabalho |
partilhar_ficheiros_entre_conjuntos | Um pacote que inclui arquivos localizados fora do diretório raiz do pacote. |
spark_jar_task | Um pacote que define e usa uma tarefa JAR do Spark |
escrever_de_tarefa_para_volume | Um pacote que grava um arquivo em um volume do Catálogo Unity |
Cenários de agrupamento
Esta seção contém exemplos de configuração que demonstram o uso de mapeamentos de pacote de nível superior. Consulte Referência de configuração.
Bundle que carrega um arquivo JAR no Unity Catalog
Você pode especificar volumes do Catálogo Unity como um caminho de artefato para que todos os artefatos, como arquivos JAR e wheel files, sejam carregados nos volumes do Catálogo Unity. O pacote de exemplo a seguir cria e carrega um arquivo JAR no Unity Catalog. Para obter informações sobre o artifact_path
mapeamento, consulte artifact_path. Para obter informações sobre artifacts
, consulte artefatos.
bundle:
name: jar-bundle
workspace:
host: https://myworkspace.cloud.databricks.com
artifact_path: /Volumes/main/default/my_volume
artifacts:
my_java_code:
path: ./sample-java
build: 'javac PrintArgs.java && jar cvfm PrintArgs.jar META-INF/MANIFEST.MF PrintArgs.class'
files:
- source: ./sample-java/PrintArgs.jar
resources:
jobs:
jar_job:
name: 'Spark Jar Job'
tasks:
- task_key: SparkJarTask
new_cluster:
num_workers: 1
spark_version: '14.3.x-scala2.12'
node_type_id: 'i3.xlarge'
spark_jar_task:
main_class_name: PrintArgs
libraries:
- jar: ./sample-java/PrintArgs.jar
Configuração do trabalho
Esta seção contém exemplos de configuração de trabalho. Para obter detalhes sobre a configuração do trabalho, consulte trabalho.
Trabalho que usa computação sem servidor
Os Databricks Asset Bundles suportam trabalhos executados em computação sem servidor. Consulte Executar seus trabalhos do Lakeflow com computação sem servidor para fluxos de trabalho. Para configurar isso, você pode omitir a configuração de clusters
para um trabalho com uma tarefa de bloco de anotações ou pode especificar um ambiente, conforme mostrado nos exemplos abaixo. Para tarefas de script Python, roda Python e dbt, environment_key
é necessário para computação sem servidor. Consulte environment_key.
# A serverless job (no cluster definition)
resources:
jobs:
serverless_job_no_cluster:
name: serverless_job_no_cluster
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: notebook_task
notebook_task:
notebook_path: ../src/notebook.ipynb
# A serverless job (environment spec)
resources:
jobs:
serverless_job_environment:
name: serverless_job_environment
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
# The key that references an environment spec in a job.
# https://docs.databricks.com/api/workspace/jobs/create#tasks-environment_key
environment_key: default
# A list of task execution environment specifications that can be referenced by tasks of this job.
environments:
- environment_key: default
# Full documentation of this spec can be found at:
# https://docs.databricks.com/api/workspace/jobs/create#environments-spec
spec:
client: '1'
dependencies:
- my-library
Trabalho com vários arquivos de roda
As configurações de exemplo a seguir definem um pacote que contém um trabalho com vários *.whl
arquivos.
# job.yml
resources:
jobs:
example_job:
name: 'Example with multiple wheels'
tasks:
- task_key: task
spark_python_task:
python_file: ../src/call_wheel.py
libraries:
- whl: ../my_custom_wheel1/dist/*.whl
- whl: ../my_custom_wheel2/dist/*.whl
new_cluster:
node_type_id: i3.xlarge
num_workers: 0
spark_version: 14.3.x-scala2.12
spark_conf:
'spark.databricks.cluster.profile': 'singleNode'
'spark.master': 'local[*, 4]'
custom_tags:
'ResourceClass': 'SingleNode'
# databricks.yml
bundle:
name: job_with_multiple_wheels
include:
- ./resources/job.yml
workspace:
host: https://myworkspace.cloud.databricks.com
artifacts:
my_custom_wheel1:
type: whl
build: poetry build
path: ./my_custom_wheel1
my_custom_wheel2:
type: whl
build: poetry build
path: ./my_custom_wheel2
targets:
dev:
default: true
mode: development
Trabalho que usa um arquivo requirements.txt
O exemplo de configuração a seguir define um trabalho que usa um arquivo requirements.txt.
resources:
jobs:
job_with_requirements_txt:
name: 'Example job that uses a requirements.txt file'
tasks:
- task_key: task
job_cluster_key: default
spark_python_task:
python_file: ../src/main.py
libraries:
- requirements: /Workspace/${workspace.file_path}/requirements.txt
Trabalhar dentro de um cronograma
Os exemplos a seguir mostram a configuração para trabalhos executados em uma agenda. Para obter informações sobre agendas e gatilhos de trabalho, consulte Automatizando trabalhos com agendas e gatilhos.
Essa configuração define um trabalho que é executado diariamente em um horário especificado:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
schedule:
quartz_cron_expression: '0 0 8 * * ?' # daily at 8am
timezone_id: UTC
pause_status: UNPAUSED
Nessa configuração, o trabalho é executado uma semana após a última execução:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
trigger:
pause_status: UNPAUSED
periodic:
interval: 1
unit: WEEKS
Configuração do pipeline
Esta seção contém exemplos de configuração de pipeline. Para obter informações sobre a configuração do pipeline, consulte pipeline.
Pipeline que usa computação sem servidor
Os Databricks Asset Bundles suportam pipelines que são executados em computação sem servidor. Para configurar isto, defina o parâmetro do pipeline serverless
como true
. O exemplo de configuração a seguir define um pipeline que é executado em computação sem servidor e um trabalho que dispara uma atualização do pipeline a cada hora.
# A pipeline that runs on serverless compute
resources:
pipelines:
my_pipeline:
name: my_pipeline
target: ${bundle.environment}
serverless: true
catalog: users
libraries:
- notebook:
path: ../src/my_pipeline.ipynb
configuration:
bundle.sourcePath: /Workspace/${workspace.file_path}/src
# This defines a job to refresh a pipeline that is triggered every hour
resources:
jobs:
my_job:
name: my_job
# Run this job once an hour.
trigger:
periodic:
interval: 1
unit: HOURS
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.my_pipeline.id}