Exemplos de configuração de pacotes
Este artigo fornece exemplos de configuração para Databricks ativo Bundles recurso e casos de uso comuns de bundles.
Os exemplos completos de pacotes, descritos na tabela a seguir, estão disponíveis no repositório do GitHub de exemplos de pacotes:
Nome do pacote | Descrição |
---|---|
Um pacote com um AI/BI dashboard e um Job que captura um Snapshot do painel e o envia por e-mail para um assinante | |
Um pacote que define um aplicativo Databricks | |
Um pacote que define e usa um desenvolvimento (clusters todo-propósito | |
Um pacote que define um escopo secreto e um trabalho com uma tarefa que lê esse escopo | |
Um pacote que define e usa um Job com várias dependências de roda | |
Um pacote com vários Job com execução Job tarefa | |
Um pacote com um trabalho que usa uma tarefa do SQL Notebook | |
Um pacote que define um esquema do Unity Catalog e um pipeline que o utiliza | |
Um pacote que usa um pacote de roda privado de um trabalho | |
Um pacote que cria um | |
Um pacote que usa serverless compute para executar um trabalho | |
Um pacote que inclui arquivos localizados fora do diretório raiz do pacote. | |
Um pacote que define e usa uma tarefa Spark JAR | |
Um pacote que grava um arquivo em um volume do Unity Catalog |
Pacotes de cenários
Esta seção contém exemplos de configuração que demonstram o uso de mapeamentos de pacotes de nível superior. Consulte a referência de configuração.
Pacote que faz o upload de um arquivo JAR para o Unity Catalog
O senhor pode especificar os volumes Unity Catalog como um caminho de artefato para que todos os artefatos, como arquivos JAR e arquivos de roda, sejam carregados nos volumes Unity Catalog. O pacote de exemplo a seguir cria e faz upload de um arquivo JAR para o Unity Catalog. Para obter informações sobre o mapeamento artifact_path
, consulte artifact_path. Para obter informações sobre artifacts
, consulte artifacts.
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
Job configuração
Esta seção contém exemplos de configuração de trabalhos. Para obter detalhes sobre a configuração do trabalho, consulte Trabalho.
Job que usa serverless compute
Databricks ativo Os bundles suportam o Job que executa no serverless compute. Veja a execução do seu LakeFlow Jobs with serverless compute for fluxo de trabalho. Para configurar isso, o senhor pode omitir a configuração clusters
para um trabalho com uma tarefa de notebook ou pode especificar um ambiente como mostrado nos exemplos abaixo. Para Python script, Python wheel e dbt tarefa, environment_key
é necessário para serverless compute. Veja 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
Job com vários arquivos de roda
As configurações do exemplo a seguir definem um pacote que contém um trabalho com vários arquivos *.whl
.
# 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
Job 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
Job em um programa
Os exemplos a seguir mostram a configuração de um trabalho que é executado em um programador. Para obter informações sobre o Job programar e os acionadores, consulte Automatização do Job com programar e acionadores.
Essa configuração define um trabalho que é executado diariamente em um horário específico:
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 do trabalho:
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 o site serverless compute
Databricks ativo Os bundles suportam o pipeline que executa no serverless compute. Para configurar isso, defina a configuração do pipeline serverless
como true
. O exemplo de configuração a seguir define um pipeline que executa em serverless compute e um Job que aciona um refresh 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}