Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Databricks Varlık Paketleri özellikleri ve ortak paket kullanım örnekleri için örnek yapılandırma sağlanır.
Aşağıdaki tabloda özetlenen eksiksiz paket örnekleri, paket örnekleri GitHub deposunda mevcuttur:
| Paket adı | Açıklama |
|---|---|
| app_with_database | OLTP Postgres veritabanı tarafından yedeklenen Databricks uygulaması içeren paket |
| dashboard_nyc_taxi | AI/BI panosu ve panonun anlık görüntüsünü yakalayan bir görev ve bu görüntüyü aboneye e-posta ile gönderen bir paket |
| database_with_catalog | OLTP veritabanı örneğini ve veritabanı kataloğunu tanımlayan paket |
| databricks_app | Databricks Uygulamasını tanımlayan paket |
| geliştirme_kümesi | Geliştirme (tüm amaçlı) kümeyi tanımlayan ve kullanan bir paket |
| job_read_secret | Gizli kapsamı tanımlayan ve bu kapsamdan okuma yapan bir göreve sahip olan bir işi içeren paket |
| birden fazla tekerlekli iş | Birden çok tekerlek bağımlılığına sahip bir işi tanımlayan ve kullanan paket |
| iş_çalışma_ile_çalıştırma_görevleri | Birden çok görevi içeren ve iş görevlerini çalıştıran bir paket |
| job_with_sql_notebook | SQL not defteri görevi kullanan bir işi içeren paket |
| pipeline with schema | Unity Kataloğu şemasını ve bunu kullanan bir işlem hattını tanımlayan paket |
| özel_teker_paketleri | bir işten özel tekerlek paketi kullanan paket |
| python_wheel_poetry | Şiir ile bir whl oluşturan paket |
| sunucusuz iş | İşi çalıştırmak için sunucusuz işlem kullanan paket |
| paylaşım_dosyaları_paketler_üzerinden | Paket kök dizini dışında bulunan dosyaları içeren bir paket. |
| spark_jar_task | Spark JAR görevini tanımlayan ve kullanan paket |
| işten hacme yaz | Unity Kataloğu birimine dosya yazan paket |
Paket senaryoları
Bu bölüm, üst düzey paket eşlemelerini kullanmayı gösteren yapılandırma örnekleri içerir. Bkz. Yapılandırma referansı.
Unity Kataloğu'na JAR dosyası yükleyen Paketi
Jar dosyaları ve tekerlek dosyaları gibi tüm yapıtların Unity Kataloğu birimlerine yüklenmesi için Unity Kataloğu birimlerini yapıt yolu olarak belirtebilirsiniz. Aşağıdaki örnek paket, bir JAR dosyasını derleyip Unity Kataloğu'na yükler. Eşleme hakkında artifact_path bilgi için bkz. artifact_path. hakkında artifactsbilgi için bkz. yapıtlar.
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
İş yapılandırması
Bu bölüm, iş yapılandırma örneklerini içerir. İş yapılandırma ayrıntıları için bkz. iş.
Sunucusuz işlem kullanan iş
Databricks Varlık Paketleri sunucusuz işlem üzerinde çalışan işleri destekler. İş akışları için bkz. Lakeflow İşlerinizi sunucusuz işlemle çalıştırma. Bunu yapılandırmak için, not defteri görevi olan bir işin clusters ayarını atlayabilir veya aşağıdaki örneklerde gösterildiği gibi bir ortam belirtebilirsiniz. Python betiği, Python tekerleği ve dbt görevleri için sunucusuz işlem için environment_key gereklidir.
Bkz. 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:
environment_version: '2'
dependencies:
- my-library
Birden çok tekerlek dosyası içeren iş
Aşağıdaki örnek yapılandırmalar, birden çok *.whl dosya içeren bir iş içeren bir paketi tanımlar.
# 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
Parametrelere sahip iş
Aşağıdaki örnek yapılandırma, parametreleri olan bir işi tanımlar. İşleri parametreleştirme hakkında daha fazla bilgi için bkz. İşleri parametreleştirme.
resources:
jobs:
job_with_parameters:
name: job_with_parameters
tasks:
- task_key: task_a
spark_python_task:
python_file: ../src/file.py
parameters:
- '--param1={{ job.parameters.param1 }}'
- '--param2={{ job.parameters.param2 }}'
new_cluster:
node_type_id: i3.xlarge
num_workers: 1
spark_version: 14.3.x-scala2.12
parameters:
- name: param1
default: value1
- name: param2
default: value1
Bu parametreler çalışma zamanında iş parametreleri'nebundle rungeçirilerek ayarlanabilir, örneğin:
databricks bundle run -- --param1=value2 --param2=value2
requirements.txt dosyası kullanan iş
Aşağıdaki örnek yapılandırma, requirements.txt dosyası kullanan bir işi tanımlar.
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
Zamanlamaya göre iş
Aşağıdaki örneklerde, bir zamanlamaya göre çalışan işler için yapılandırma gösterilmektedir. İş zamanlamaları ve tetikleyicileri hakkında bilgi için bkz. Zamanlamalar ve tetikleyicilerle işleri otomatikleştirme.
Bu yapılandırma, belirtilen bir zamanda günlük olarak çalışan bir işi tanımlar:
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
Bu yapılandırmada, iş son çalıştırıldıktan bir hafta sonra çalışır:
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
İşlem hattı yapılandırması
Bu bölümde işlem hattı yapılandırma örnekleri yer alır. İşlem hattı yapılandırma bilgileri için bkz. işlem hattı.
Sunucusuz işlem kullanan işlem hattı
Databricks Varlık Paketleri sunucusuz işlem üzerinde çalışan işlem hatlarını destekler. Bunu yapılandırmak için işlem hattı serverless ayarını olarak trueayarlayın. Aşağıdaki örnek yapılandırma, bağımlılıkların yüklü olduğu sunucusuz işlem üzerinde çalışan bir işlem hattını ve işlem hattının saatte bir yenilenmesini tetikleyen bir işi tanımlar.
# A pipeline that runs on serverless compute
resources:
pipelines:
my_pipeline:
name: my_pipeline
target: ${bundle.environment}
serverless: true
environment:
dependencies:
- 'dist/*.whl'
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}