Bagikan melalui


Sumber daya Paket Aset Databricks

Bundel Aset Databricks memungkinkan Anda menentukan informasi tentang sumber daya Azure Databricks yang digunakan oleh bundel dalam pemetaan resources di dalam konfigurasi bundel. Lihat pemetaan sumber daya dan referensi kunci sumber daya .

Artikel ini menguraikan jenis sumber daya yang didukung untuk bundel dan menyediakan detail dan contoh untuk setiap jenis yang didukung. Untuk contoh tambahan, lihat contoh konfigurasi Bundel .

Tips

Untuk menghasilkan YAML untuk sumber daya yang ada, gunakan perintah databricks bundle generate. Lihat Buat file konfigurasi bundel.

Sumber daya yang didukung

Tabel berikut mencantumkan jenis sumber daya yang didukung untuk bundel. Beberapa sumber daya dapat dibuat dengan menentukannya dalam bundel dan menyebarkan bundel, dan beberapa sumber daya hanya mendukung referensi sumber daya yang ada untuk disertakan dalam bundel.

Sumber daya didefinisikan menggunakan payload permintaan operasi pembuatan objek Databricks REST API yang sesuai, di mana kolom yang didukung oleh objek, yang diekspresikan sebagai YAML, adalah properti sumber daya yang didukung. Tautan ke dokumentasi untuk setiap payload terkait sumber daya tercantum dalam tabel.

Tips

Perintah databricks bundle validate mengembalikan peringatan jika properti sumber daya yang tidak diketahui ditemukan dalam file konfigurasi bundel.

Sumber daya Membuat layanan bantuan Objek REST API yang sesuai
aplikasi objek Aplikasi
kluster objek Kluster
dasbor objek Dasbor
eksperimen objek eksperimen
pekerjaan objek pekerjaan
model (warisan) Model objek (warisan)
titik_akhir_penyajian_model Model yang melayani objek titik akhir
pipeline objek Alur
pemantau_kualitas objek monitor kualitas
model_terdaftar (Katalog Unity) objek model terdaftar
skema (Katalog Unity) Skema objek
volume (Katalog Unity) objek Volume

aplikasi

Sumber daya aplikasi mendefinisikan aplikasi Databricks. Untuk informasi tentang Aplikasi Databricks, lihat Apa itu Aplikasi Databricks?.

Tips

Anda dapat menginisialisasi bundel dengan aplikasi Streamlit Databricks menggunakan perintah berikut:

databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app

Untuk menambahkan aplikasi, tentukan bidang objek yang menentukan aplikasi, serta yang berikut ini:

  • source_code_path - Jalur lokal ./app kode sumber aplikasi Databricks. Bidang ini diperlukan.
  • config - Perintah konfigurasi aplikasi dan variabel lingkungan. Anda dapat menggunakan ini untuk menentukan target penyebaran aplikasi yang berbeda.

Contoh

Contoh berikut membuat aplikasi bernama my_app yang mengelola tugas yang dibuat oleh bundel:

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'

Untuk bundel contoh aplikasi Databricks lengkap, lihat repositori GitHub bundel-contoh.

kluster

Sumber daya kluster mendefinisikan sebuah kluster serbaguna .

Contoh

Contoh berikut membuat kluster bernama my_cluster dan mengatur yang sebagai kluster yang akan digunakan untuk menjalankan buku catatan di my_job:

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'

dasbor

Sumber daya dasbor memungkinkan Anda mengelola dasbor AI/BI dalam bundel. Untuk informasi tentang dasbor AI/BI, lihat dasbor .

Contoh

Contoh berikut mencakup dan menerapkan dasbor sampel Analisis Perjalanan Taksi NYC ke ruang kerja Databricks.

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}

Jika Anda menggunakan UI untuk memodifikasi dasbor, modifikasi yang dilakukan melalui UI tidak diterapkan ke file JSON dasbor di bundel lokal kecuali Anda secara eksplisit memperbaruinya menggunakan bundle generate. Anda dapat menggunakan opsi --watch untuk terus menjalankan polling dan mendapatkan perubahan pada dasbor. Lihat Buat file konfigurasi bundel.

Selain itu, jika Anda mencoba menyebarkan bundel yang berisi file JSON dasbor yang berbeda dari yang ada di ruang kerja jarak jauh, kesalahan akan terjadi. Untuk memaksakan penerapan dan menimpa dasbor di ruang kerja remote dengan dasbor lokal, gunakan opsi --force. Lihat Menyebarkan bundel.

eksperimen

Sumber daya eksperimen memungkinkan Anda mendefinisikan eksperimen MLflow dalam satu bundel. Untuk informasi tentang eksperimen MLflow, lihat Mengatur eksekusi pelatihan dengan eksperimen MLflow.

Contoh

Contoh berikut mendefinisikan eksperimen yang dapat dilihat semua pengguna:

resources:
  experiments:
    experiment:
      name: my_ml_experiment
      permissions:
        - level: CAN_READ
          group_name: users
      description: MLflow experiment used to track runs

pekerjaan

Sumber daya pekerjaan memungkinkan Anda menentukan pekerjaan dan tugas yang sesuai dalam bundel Anda. Untuk informasi tentang tugas, lihat Ringkasan orkestrasi di Databricks . Untuk tutorial yang menggunakan templat Bundel Aset Databricks untuk membuat pekerjaan, lihat Mengembangkan pekerjaan di Azure Databricks menggunakan Bundel Aset Databricks.

Contoh

Contoh berikut mendefinisikan pekerjaan dengan kunci sumber daya hello-job dengan satu tugas buku catatan:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          notebook_task:
            notebook_path: ./hello.py

Untuk informasi tentang menentukan tugas pekerjaan dan mengesampingkan pengaturan pekerjaan, lihat Menambahkan tugas ke pekerjaan di Bundel Aset Databricks, Mengganti pengaturan tugas pekerjaan di Bundel Aset Databricks, dan Menimpa pengaturan kluster di Bundel Aset Databricks.

model (warisan)

Sumber daya model memungkinkan Anda menentukan model lama dalam bentuk bundel. Databricks menyarankan Anda untuk menggunakan model yang terdaftar di Unity Catalog sebagai gantinya.

titik_akhir_penyajian_model

Sumber daya model_serving_endpoint memungkinkan Anda menentukan model yang melayani titik akhir. Lihat Kelola titik akhir penyajian model.

Contoh

Contoh berikut mendefinisikan model Unity Catalog yang melayani titik akhir:

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'

pemantau_kualitas (Katalog Unity)

Sumber daya quality_monitor memungkinkan Anda untuk mendefinisikan sebuah monitor tabel dalam Unity Catalog. Untuk informasi tentang monitor, lihat Kualitas model monitor dan kesehatan titik akhir.

Contoh

Contoh berikut mendefinisikan monitor kualitas:

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

model_terdaftar (Katalog Unity)

Sumber daya model terdaftar memungkinkan Anda menentukan model di Unity Catalog. Untuk informasi mengenai model terdaftardi Unity Catalog , lihat Mengelola siklus hidup model di Unity Catalog.

Contoh

Contoh berikut mendefinisikan model terdaftar di Unity Catalog:

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

alur

Sumber daya jalur memungkinkan Anda membuat jalur DLT . Untuk informasi tentang jalur, lihat Apa itu DLT?. Untuk tutorial yang menggunakan templat Bundel Aset Databricks untuk membuat alur, lihat Mengembangkan alur DLT dengan Bundel Aset Databricks.

Contoh

Contoh berikut mendefinisikan alur dengan kunci sumber daya hello-pipeline:

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

skema (Katalog Unity)

Jenis sumber daya skema dapat memungkinkan Anda menentukan skema Unity Catalog untuk tabel dan aset lainnya dalam alur kerja dan jalur pemrosesan yang dibuat sebagai bagian dari suatu bundel. Skema, berbeda dari jenis sumber daya lainnya, memiliki batasan berikut:

  • Pemilik sumber daya skema selalu menjadi pengguna penyebaran, dan tidak dapat diubah. Jika run_as ditentukan dalam bundel, itu akan diabaikan oleh operasi pada skema.
  • Hanya bidang yang didukung oleh API pembuatan objek Skema yang sesuai yang tersedia untuk sumber daya skema. Misalnya, enable_predictive_optimization tidak didukung karena hanya tersedia di API pembaruan .

Contoh

Contoh berikut mendefinisikan alur dengan kunci sumber daya my_pipeline yang membuat skema Unity Catalog dengan kunci my_schema sebagai target:

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.

Pemetaan pemberian tingkat atas tidak didukung oleh Bundel Aset Databricks, jadi jika Anda ingin mengatur pemberian untuk sebuah skema, tentukan pemberian tersebut dalam pemetaan schemas. Untuk informasi selengkapnya tentang pemberian, lihat Tampilkan, berikan, dan cabut hak istimewa.

Contoh berikut mendefinisikan skema Unity Catalog dengan hibah:

resources:
  schemas:
    my_schema:
      name: test-schema
      grants:
        - principal: users
          privileges:
            - SELECT
        - principal: my_team
          privileges:
            - CAN_MANAGE
      catalog_name: main

volume (Katalog Unity)

Jenis sumber daya volume memungkinkan Anda menentukan dan membuat volume Unity Catalog sebagai bagian dari bundel. Saat menyebarkan bundel dengan volume yang ditentukan, perhatikan bahwa:

  • Volume tidak dapat direferensikan dalam artifact_path untuk bundel hingga ada di ruang kerja. Oleh karena itu, jika Anda ingin menggunakan Bundel Aset Databricks untuk membuat volume, Anda harus terlebih dahulu menentukan volume dalam bundel, menyebarkannya untuk membuat volume, lalu mereferensikannya di artifact_path dalam penyebaran berikutnya.
  • Volume-volume dalam bundel tidak diawali dengan awalan dev_${workspace.current_user.short_name} ketika target penyebaran dikonfigurasi dengan mode: development. Namun, Anda dapat mengonfigurasi awalan ini secara manual. Lihat preset kustom .

Contoh

Contoh berikut membuat volume Katalog Unity dengan kunci my_volume:

resources:
  volumes:
    my_volume:
      catalog_name: main
      name: my_volume
      schema_name: my_schema

Untuk contoh bundel yang menjalankan tugas yang menulis ke sebuah file di volume Unity Catalog, lihat repositori GitHub bundle-examples .