Aracılığıyla paylaş


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
İş 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 Databricks uygulaması tanımlar. Databricks Uygulamaları hakkında bilgi için bkz. Databricks Uygulamaları nedir?.

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 generatekullanarak 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 , Databricks Varlık Paketleri'de iş görevleri ayarlarını geçersiz kılma ve Databricks Varlık Paketleriküme ayarlarını geçersiz kılma.

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 modeli tanımlamanızı sağlar. bkz. uç noktaları sunan modeli yönetme.

Ö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-pipelinekaynak 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 şemaları tanımlamanızı sağlar. Diğer kaynak türlerinden farklı bir şema aşağıdaki sınırlamalara sahiptir:

  • 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ımlarda artifact_path'a referans vermeniz gerekir.
  • Dağıtım hedefi dev_${workspace.current_user.short_name} yapılandırıldığında, paket içindeki birimler mode: 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_volumeile 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.