Databricks Varlık Paketleri kaynakları
Databricks Varlık Paketleri, paket yapılandırmasındaki resources
eşlemesinde paket tarafından kullanılan Azure Databricks kaynakları hakkında bilgi belirtmenize olanak tanır. Bkz. kaynak haritalama ve kaynak anahtar referansı.
Bu makalede, paketler için desteklenen kaynak türleri özetlenmektedir ve desteklenen her tür için ayrıntılar ve bir örnek sağlanmaktadır. Ek örnekler için bkz. Paket yapılandırma örnekleri.
Bahşiş
Var olan herhangi bir kaynak için YAML oluşturmak için databricks bundle generate
komutunu kullanın. bkz. Paket yapılandırma dosyası oluşturma.
Desteklenen kaynaklar
Aşağıdaki tabloda, paketler için desteklenen kaynak türleri listelenmiştir. Bazı kaynaklar bir pakette tanımlanıp paket dağıtılarak oluşturulabilir ve bazı kaynaklar yalnızca pakete dahil edilecek mevcut bir kaynağa başvurmayı destekler.
Kaynaklar, Databricks REST API nesnesinin oluşturma işlemine ait istek yükü kullanılarak tanımlanır; bu durumda, nesnenin desteklenen alanları YAML formatında ifade edilmekte olup, bunlar kaynağın desteklenen özellikleridir. Her kaynağın ilgili yükleri için belgelerin bağlantıları tabloda listelenmiştir.
Bahşiş
databricks bundle validate
komutu, paket yapılandırma dosyalarında bilinmeyen kaynak özellikleri bulunursa uyarılar döndürür.
Kaynak | Destek oluştur | Karşılık gelen REST API nesnesi |
---|---|---|
uygulama | ✓ | uygulama nesnesi |
kümesi | ✓ | küme nesnesi |
pano | pano nesnesi | |
deneme |
✓ | Deneme nesnesi |
iş | ✓ | İş nesnesi |
modeli (eski) | ✓ | Model (eski) nesnesi |
model_serving_uç_noktası | ✓ | uç nokta nesnesi sunan Modeli |
işlem hattı | ✓ | İşlem Hattı nesnesi |
kalite_gözlemcisi | ✓ | Kalite izleyici nesnesi |
kayıtlı_model (Unity Kataloğu) | ✓ | Kayıtlı model nesnesi |
schema (Unity Kataloğu) | ✓ | Şema nesnesi |
hacim (Unity Kataloğu) | ✓ | Hacim nesnesi |
uygulaması
Uygulama kaynağı,bir
Bahşiş
Aşağıdaki komutu kullanarak Streamlit Databricks uygulamasıyla bir paket başlatabilirsiniz:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Uygulama eklemek için, uygulamayı tanımlayan nesne alanlarını ve aşağıdakileri belirtin:
-
source_code_path
- Databricks uygulama kaynak kodunun./app
yerel yolu. Bu alan gereklidir. -
config
- Uygulama yapılandırma komutları ve ortam değişkenleri. Farklı uygulama dağıtım hedefleri belirtmek için bunu kullanabilirsiniz.
Örnek
Aşağıdaki örnek, paket tarafından oluşturulan bir işi yöneten my_app
adlı bir uygulama oluşturur:
resources:
jobs:
# Define a job in the bundle
hello_world:
name: hello_world
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
environment_key: default
environments:
- environment_key: default
spec:
client: '1'
# Define an app that manages the job in the bundle
apps:
job_manager:
name: 'job_manager_app'
description: 'An app which manages a job created by this bundle'
# The location of the source code for the app
source_code_path: ../src/app
# The configuration for running the app
config:
command:
- flask
- --app
- app
- run
- --debug
env:
- name: JOB_ID
value: ${resources.jobs.hello_world.id}
# The resources in the bundle which this app has access to. This binds the resource in the app with the DABs resource.
resources:
- name: 'app-job'
job:
id: ${resources.jobs.hello_world.id}
permission: 'CAN_MANAGE_RUN'
Databricks uygulama örneği paketinin tamamı için bkz. paket örnekleri GitHub deposu.
kümesi
Küme kaynağı, çok amaçlı bir kümetanımlar.
Örnek
Aşağıdaki örnek, my_cluster
adlı bir küme oluşturur ve not defterini my_job
çalıştırmak için kullanılacak küme olarak ayarlar:
bundle:
name: clusters
resources:
clusters:
my_cluster:
num_workers: 2
node_type_id: 'i3.xlarge'
autoscale:
min_workers: 2
max_workers: 7
spark_version: '13.3.x-scala2.12'
spark_conf:
'spark.executor.memory': '2g'
jobs:
my_job:
tasks:
- task_key: test_task
notebook_task:
notebook_path: './src/my_notebook.py'
panosu
"Pano kaynağı, AI/BI panolarını toplu olarak bir pakette yönetmenize olanak tanır." AI/BI panoları hakkında bilgi için bkz. Panolar.
Örnek
Aşağıdaki örnek, Databricks çalışma alanına örnek NYC Taxi Trip Analysis panosunu dağıtır ve ekler.
resources:
dashboards:
nyc_taxi_trip_analysis:
display_name: 'NYC Taxi Trip Analysis'
file_path: ../src/nyc_taxi_trip_analysis.lvdash.json
warehouse_id: ${var.warehouse_id}
Panoyu değiştirmek için kullanıcı arabirimini kullanırsanız, kullanıcı arabirimi aracılığıyla yapılan değişiklikler, bundle generate
kullanarak açıkça güncelleştirmediğiniz sürece yerel paketteki pano JSON dosyasına uygulanmaz. Panodaki değişiklikleri sürekli yoklayıp almak için --watch
seçeneğini kullanabilirsiniz. bkz. Paket yapılandırma dosyası oluşturma.
Ayrıca, uzak çalışma alanında bulunandan farklı bir pano JSON dosyası içeren bir paket dağıtmaya çalışırsanız bir hata oluşur. Yerel çalışma alanındaki panoyu uzak çalışma alanına yükleyip üzerine yazmayı zorunlu kılmak için --force
seçeneğini kullanın. Bkz. bir paketi dağıtma işlemi.
deneyi
Deneme kaynağı, bir paket içinde MLflow denemeleri tanımlamanızı sağlar. MLflow denemeleri hakkında bilgi için bkz.MLflow denemeleriyle eğitim çalıştırmalarını düzenleme
Örnek
Aşağıdaki örnek, tüm kullanıcıların görüntüleyebileceği bir denemeyi tanımlar:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
görevi
İş kaynağı, işleri ve bunların ilgili görevlerini paketinizde tanımlamanıza olanak tanır. İşler hakkında bilgi için, Databricks'teki orkestrasyona genel bakışa bkz. İş oluşturmak için Databricks Varlık Paketleri şablonunu kullanan bir öğretici için bkz. Databricks Varlık Paketlerikullanarak Azure Databricks'te iş geliştirme.
Örnek
Aşağıdaki örnek, bir not defteri göreviyle hello-job
kaynak anahtarına sahip bir işi tanımlar:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
İş görevlerini tanımlama ve iş ayarlarını geçersiz kılma hakkında bilgi için bkz. Databricks Varlık Paketleriişlere görev ekleme
modeli (eski)
Model kaynağı, paketlerdeki eski modelleri tanımlamanızı sağlar. Databricks bunun yerine Unity Catalog kayıtlı modellerini kullanmanızı önerir.
model_dağıtım_uç_noktası
model_serving_endpoint kaynağı,uç noktaları sunan
Örnek
Aşağıdaki örnek, uç nokta sunan bir Unity Kataloğu modelini tanımlar:
resources:
model_serving_endpoints:
uc_model_serving_endpoint:
name: 'uc-model-endpoint'
config:
served_entities:
- entity_name: 'myCatalog.mySchema.my-ads-model'
entity_version: '10'
workload_size: 'Small'
scale_to_zero_enabled: 'true'
traffic_config:
routes:
- served_model_name: 'my-ads-model-10'
traffic_percentage: '100'
tags:
- key: 'team'
value: 'data science'
kalite_monitörü (Unity Kataloğu)
quality_monitor kaynağı, bir Unity Catalog tablo izleyicisitanımlamanızı sağlar. Monitörler hakkında bilgi için bkz. Monitör modeli kalitesi ve uç nokta sağlığı.
Örnek
Aşağıdaki örnek bir kalite izleyicisi tanımlar:
resources:
quality_monitors:
my_quality_monitor:
table_name: dev.mlops_schema.predictions
output_schema_name: ${bundle.target}.mlops_schema
assets_dir: /Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
inference_log:
granularities: [1 day]
model_id_col: model_id
prediction_col: prediction
label_col: price
problem_type: PROBLEM_TYPE_REGRESSION
timestamp_col: timestamp
schedule:
quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
timezone_id: UTC
kayıtlı_model (Unity Kataloğu)
Kayıtlı model kaynağı, Unity Kataloğu'nda modelleri tanımlamanızı sağlar. Unity Kataloğu'nda kayıtlı modellerhakkında bilgi için, Unity Kataloğu'nda model yaşam döngüsünü yönetme bölümüne bakın.
Örnek
Aşağıdaki örnek, Unity Kataloğu'nda kayıtlı bir modeli tanımlar:
resources:
registered_models:
model:
name: my_model
catalog_name: ${bundle.target}
schema_name: mlops_schema
comment: Registered model in Unity Catalog for ${bundle.target} deployment target
grants:
- privileges:
- EXECUTE
principal: account users
işlem hattı
İşlem hattı kaynağı, DLT işlem hatları oluşturmanıza olanak tanır. İşlem hatları hakkında bilgi almak için bkz: DLT nedir?. İşlem hattı oluşturmak için Databricks Varlık Paketleri şablonunu kullanan bir öğretici için bkz. Databricks Varlık Paketleri ile DLT işlem hatları geliştirme.
Örnek
Aşağıdaki örnek, hello-pipeline
kaynak anahtarına sahip bir işlem hattını tanımlar:
resources:
pipelines:
hello-pipeline:
name: hello-pipeline
clusters:
- label: default
num_workers: 1
development: true
continuous: false
channel: CURRENT
edition: CORE
photon: false
libraries:
- notebook:
path: ./pipeline.py
şeması (Unity Kataloğu)
Şema kaynak türü, bir paketin parçası olarak oluşturulan iş akışlarınızda ve işlem hatlarınızda tablolar ve diğer varlıklar için Unity Kataloğu
- Bir şema kaynağının sahibi her zaman dağıtım kullanıcısıdır ve değiştirilemez. Şayet
run_as
pakette belirtilmişse, şema üzerindeki işlemler tarafından yoksayılacaktır. - Şema kaynağında yalnızca karşılık gelen Schemas nesnesi oluşturma API' tarafından desteklenen alanlar kullanılabilir. Örneğin,
enable_predictive_optimization
yalnızca güncelleştirme API'si'de kullanılabilir olduğundan desteklenmez.
Örnekler
Aşağıdaki örnek, kaynak anahtarı my_pipeline
ile, anahtar my_schema
'i hedef alarak bir Unity Kataloğu şeması oluşturan bir işlem hattı tanımlar.
resources:
pipelines:
my_pipeline:
name: test-pipeline-{{.unique_id}}
libraries:
- notebook:
path: ./nb.sql
development: true
catalog: main
target: ${resources.schemas.my_schema.id}
schemas:
my_schema:
name: test-schema-{{.unique_id}}
catalog_name: main
comment: This schema was created by DABs.
En üst düzey atama eşlemesi Databricks Varlık Paketleri tarafından desteklenmez, bu nedenle bir şema için izinler ayarlamak istiyorsanız, schemas
eşlemesi içinde şema için izinleri tanımlayın. Daha fazla bilgi için bkz. İzinleri gösterme, tanıma ve iptal etme.
Aşağıdaki örnek, grants içeren bir Unity Kataloğu şemasını tanımlar:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- SELECT
- principal: my_team
privileges:
- CAN_MANAGE
catalog_name: main
hacim (Unity Kataloğu)
Birim kaynak türü, Unity Catalog'da birimlerini bir paketin parçası olarak tanımlamanıza ve oluşturmanıza olanak tanır. Tanımlanmış bir birim içeren bir paket dağıtırken şunları unutmayın:
- Çalışma alanında var olana kadar bir hacme, paketin
artifact_path
'ında başvurulamaz. Bu nedenle, Databricks Varlık Paketleri'ni kullanarak birimi oluşturmak istiyorsanız, öncelikle birimi pakette tanımlamanız, birimi oluşturmak için dağıtmanız ve ardından sonraki dağıtımlardaartifact_path
'a referans vermeniz gerekir. - Dağıtım hedefi
dev_${workspace.current_user.short_name}
yapılandırıldığında, paket içindeki birimlermode: development
ön eki ile eklenmez. Ancak, bu ön eki el ile yapılandırabilirsiniz. Bkz. Özel ön ayarlar.
Örnek
Aşağıdaki örnek, anahtar my_volume
ile bir Unity Kataloğu birimi oluşturur:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Unity Kataloğu birimindeki bir dosyaya yazma işlemi yapan bir işi çalıştıran örnek bir paket için, paket-örnekleri GitHub deposuna bakın.