Delen via


Databricks Asset Bundles resources

Met Databricks Asset Bundles kunt u informatie opgeven over de Azure Databricks-resources die door de bundel worden gebruikt in de resources-koppeling in de bundelconfiguratie. Zie bronnen in kaart brengen en bronnen met een belangrijke verwijzing.

Dit artikel bevat een overzicht van ondersteunde resourcetypen voor bundels en bevat details en een voorbeeld voor elk ondersteund type. Zie Bundelconfiguratievoorbeeldenvoor meer voorbeelden.

Tip (only if context indicates that it refers to a suggestion or advice)

Om YAML te generate voor een bestaande resource, gebruikt u de opdracht databricks bundle generate. Zie Generate een bundelconfiguratiebestand.

Ondersteunde bronnen

De volgende table bevat ondersteunde resourcetypen voor bundels. Sommige resources kunnen worden gemaakt door ze te definiëren in een bundel en de bundel te implementeren. Sommige resources ondersteunen alleen het verwijzen naar een bestaande resource die in de bundel moet worden opgenomen.

Resources worden gedefinieerd met behulp van de bijbehorende Databricks REST API nettolading voor het maken van bewerkingsaanvragen van het object, where de ondersteunde velden van het object, uitgedrukt als YAML, de ondersteunde eigenschappen van de resource zijn. Koppelingen naar documentatie voor de bijbehorende payloads van elke resource worden vermeld in de table.

Tip (only if context indicates that it refers to a suggestion or advice)

De databricks bundle validate opdracht retourneert waarschuwingen als onbekende resource-eigenschappen worden gevonden in bundelconfiguratiebestanden.

Hulpbron Ondersteuning maken Bijbehorend REST API-object
cluster cluster-object
instrumentenpaneel Dashboard-object
experiment Experiment-object
taak taakobject
model (verouderd) Modelobject (verouderd)
model_serving_endpoint (modelbedieningsendpoint) model voor eindpuntobjecten
pijplijn [Pijplijnobject]](https://docs.databricks.com/api/azure/workspace/pipelines/create)
quality_monitor kwaliteitsmonitorobject
geregistreerd_model (Unity Catalog) geregistreerde modelobjecten
schema (Unity Catalog) Schema object
volume (Unity Catalog) volumeobject

groep

De clusterresource definieert een cluster voor alle doeleinden.

Voorbeeld

In het volgende voorbeeld wordt een cluster met de naam my_cluster gemaakt en ingesteld als het cluster dat moet worden gebruikt om het notebook uit te voeren in 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"

instrumentenpaneel

Met de dashboardresource kunt u AI/BI-dashboards in een bundel beheren. Zie Dashboardsvoor informatie over AI/BI-dashboards.

Voorbeeld

Het volgende voorbeeld bevat en implementeert het voorbeeld NYC Taxi Trip Analysis dashboard in de Databricks-werkruimte.

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}

Als u de gebruikersinterface gebruikt om het dashboard te wijzigen, worden wijzigingen die via de gebruikersinterface zijn aangebracht, niet toegepast op het JSON-dashboardbestand in de lokale bundel, tenzij u het expliciet update met behulp van bundle generate. U kunt de optie --watch gebruiken om continu wijzigingen in het dashboard te peilen en op te halen. Zie Generate een bundelconfiguratiebestand.

Als u bovendien probeert een bundel te implementeren die een JSON-dashboardbestand bevat dat anders is dan het bestand in de externe werkruimte, treedt er een fout op. Gebruik de optie --force om de implementatie te forceren en het dashboard in de externe werkruimte met die van de lokale werkruimte te overschrijven. Zie Een bundel implementeren.

experiment

De experimentresource stelt u in staat MLflow-experimenten in een bundel te definiëren. Zie Trainingsuitvoeringen organiseren met MLflow-experimentenvoor meer informatie over MLflow-experimenten.

Voorbeeld

In het volgende voorbeeld wordt een experiment gedefinieerd dat alle gebruikers kunnen bekijken:

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

baan

Met de jobresource kunt u banen en de bijbehorende taken in uw bundel definiëren. Zie Werkstromen plannen en organiserenvoor meer informatie over taken. Zie Een taak ontwikkelen in Azure Databricks met behulp van Databricks Asset Bundlesvoor een zelfstudie die gebruikmaakt van een Databricks Asset Bundles-sjabloon om een taak te maken.

Voorbeeld

In het volgende voorbeeld wordt een job gedefinieerd met de resourcesleutel hello-job en bevat deze één notebooktaak.

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

Zie Taken toevoegen aan taken in Databricks Asset Bundles, Taaktaken overschrijven in Databricks Asset Bundlesen Clusterinstellingen overschrijven in Databricks Asset Bundlesvoor informatie over het definiëren van taaktaken.

model (verouderd)

Met de modelresource kunt u in bundels verouderde modellen definiëren. Databricks raadt u aan Unity Cataloggeregistreerde modellen te gebruiken.

modelbedieningspunt

Met de model_serving_endpoint resource kunt u model voor eindpunten definiëren. Zie Model beheren voor eindpunten.

Voorbeeld

In het volgende voorbeeld wordt een eindpunt voor een Unity-Catalog-model gedefinieerd:

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"

quality_monitor (Unity Catalog)

Met de resource quality_monitor kunt u een Unity-monitor Catalogtabledefiniëren. Zie Modelkwaliteit en eindpuntstatus bewakenvoor meer informatie over monitors.

Voorbeeld

In het volgende voorbeeld wordt een kwaliteitsmonitor gedefinieerd:

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

geregistreerd_model (Unity Catalog)

Met de geregistreerde modelresource kunt u modellen definiëren in Unity Catalog. Zie Levenscyclus van modellen beheren in Unity voor informatie over modellendie zijn geregistreerd door Unity .

Voorbeeld

In het volgende voorbeeld wordt een geregistreerd model gedefinieerd in 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

pijpleiding

Met de pijplijnresource kunt u Delta Live Tablespijplijnen maken. Voor informatie over pijplijnen, zie Wat is Delta Live Tables?. Zie Delta Live-Tables-pijplijnen ontwikkelen met Databricks Asset Bundlesvoor een zelfstudie waarin de sjabloon Databricks Asset Bundles wordt gebruikt om een pijplijn te maken.

Voorbeeld

In het volgende voorbeeld wordt een pijplijn gedefinieerd met de resource-sleutel 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

schema (Unity Catalog)

Met het schema resourcetype kunt u Unity Catalog-schema's definiëren voor tables en andere assets in uw werkstromen en pijplijnen die zijn gemaakt als onderdeel van een bundel. Een schema, in tegenstelling tot andere resourcetypen, heeft de volgende beperkingen:

  • De eigenaar van een schema resource is altijd de implementatiegebruiker en kan niet worden gewijzigd. Als run_as in de bundel is opgegeven, zullen bewerkingen op de schemadeze negeren.
  • Alleen velden die worden ondersteund door het bijbehorende Schemas-object voor de aanmaak van API zijn beschikbaar voor de schema resource. enable_predictive_optimization wordt bijvoorbeeld niet ondersteund omdat deze alleen beschikbaar is op de update API-.

Voorbeelden

In het volgende voorbeeld wordt een pijplijn gedefinieerd met de resourcesleutel my_pipeline waarmee een Unity-Catalogschema wordt gemaakt met de sleutel my_schema als doel:

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.

Een toewijzing voor subsidies op topniveau wordt niet ondersteund door Databricks Asset Bundles, dus als u set subsidies voor een schemawilt configureren, definieert u de subsidies voor de schema binnen de toewijzing van schemas. Voor meer informatie over subsidies, zie Weergeven, grant, en revoke privileges.

In het volgende voorbeeld wordt een Unity-Catalogschema met subsidies gedefinieerd:

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

volume (Unity Catalog)

Met het volumeresourcetype kunt u Unity-Catalogvolumes definiëren en maken als onderdeel van een bundel. Wanneer u een bundel implementeert met een volume dat is gedefinieerd, moet u er rekening mee houden dat:

  • Er kan niet naar een volume worden verwezen in de artifact_path voor de bundel voordat het in de werkruimte aanwezig is. Dus als u Databricks Asset Bundles wilt gebruiken om het volume te maken, moet u eerst het volume in de bundel definiëren, implementeren om het volume te maken en vervolgens in de artifact_path in volgende implementaties ernaar verwijzen.
  • Volumes in de bundel worden niet met het voorvoegsel dev_${workspace.current_user.short_name} geëxpandeerd wanneer het implementatiedoel mode: development is geconfigureerd. U kunt dit voorvoegsel echter handmatig configureren. Zie Aangepaste voorinstellingen.

Voorbeeld

In het volgende voorbeeld wordt een Unity-Catalog-volume gemaakt met de sleutel my_volume:

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

Zie de GitHub-opslagplaats voor een voorbeeldbundel die een taak uitvoert die naar een bestand schrijft in het Unity Catalog-volume.