Sdílet prostřednictvím


Prostředky Databricks Asset Bundles

Databricks Asset Bundles umožňují specifikovat informace o prostředcích Azure Databricks používaných balíčkem v mapování resources v konfiguraci Asset Bundles. Prohlédněte si mapování prostředků a referenční klíč k prostředkům .

Tento článek popisuje podporované typy prostředků pro sady a obsahuje podrobnosti a příklad pro každý podporovaný typ. Další příklady najdete v tématu Příklady konfigurace sady.

Rada

Pokud chcete generate YAML pro jakýkoli existující prostředek, použijte příkaz databricks bundle generate. Viz Generate konfigurační soubor sady.

podporované prostředky

Následující table uvádí podporované typy prostředků pro balíčky. Některé prostředky je možné vytvořit tak, že je definujete v sadě a nasadíte sadu a některé prostředky podporují odkazování pouze na existující prostředek, který se má zahrnout do sady.

Prostředky se definují pomocí odpovídající rozhraní REST API Databricks datové části požadavku na vytvoření objektu, where podporovaných polí objektu vyjádřených jako YAML jsou podporované vlastnosti prostředku. Odkazy na dokumentaci pro datové zátěže jednotlivých prostředků jsou uvedeny v table.

Rada

Příkaz databricks bundle validate vrátí upozornění, pokud se v konfiguračních souborech sady nacházejí neznámé vlastnosti prostředku.

Zdroj Vytvořit podporu Odpovídající objekt rozhraní REST API
clusteru objekt clusteru
řídicí panel objekt řídicího panelu
experiment Experimentální objekt
úlohy objekt úlohy
model (starší verze) Model (starší verze) objekt
koncový bod pro poskytování modelu model obsluhující objekt koncového bodu
kanálu [Objekt potrubí]](https://docs.databricks.com/api/azure/workspace/pipelines/create)
quality_monitor Objekt pro monitorování kvality
zaregistrovaný_model (Unity Catalog) Zaregistrovaný modelový objekt
schema (Unity Catalog) objektu
svazek (Unity Catalog) objekt svazku

shluk

Prostředek clusteru definuje univerzální cluster.

Příklad

Následující příklad vytvoří cluster s názvem my_cluster a nastaví ho jako cluster pro spuštění poznámkového bloku v 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"

palubní deska

Prostředek řídicího panelu umožňuje spravovat řídicí panely AI/BI v sadě. Informace o řídicích panelech naleznete v Dashboards.

Příklad

Následující příklad zahrnuje a nasazuje ukázkový dashboard NYC Taxi Trip Analysis do pracovního prostoru 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}

Pokud k úpravě řídicího panelu použijete uživatelské rozhraní, nebudou změny provedené prostřednictvím uživatelského rozhraní použity u souboru JSON řídicího panelu v místní sadě, pokud ho explicitně update pomocí bundle generate. Pomocí možnosti --watch můžete průběžně dotazovat a načítat změny na dashboardu. Viz Generate konfigurační soubor sady.

Pokud se navíc pokusíte nasadit sadu obsahující soubor JSON řídicího panelu, který se liší od souboru JSON ve vzdáleném pracovním prostoru, dojde k chybě. Pokud chcete vynutit nasazení a přepsání řídicího panelu ve vzdáleném pracovním prostoru místním pracovním prostorem, použijte možnost --force. Viz Nasazení sady.

experiment

Prostředek experimentu umožňuje definovat experimenty MLflow v balíčku. Informace o experimentech MLflow najdete v tématu Uspořádání trénovacích běhů pomocí experimentů MLflow.

Příklad

Následující příklad definuje experiment, který můžou zobrazit všichni uživatelé:

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

práce

Zdroje pro úlohy vám umožňují definovat úlohy a jejich příslušné úkoly ve vašem balíčku. Informace o úlohách najdete v tématu Plánování a orchestrace pracovních postupů. Kurz, který k vytvoření úlohy používá šablonu Sady prostředků Databricks, najdete v tématu Vývoj úlohy v Azure Databricks pomocí sad prostředků Databricks.

Příklad

Následující příklad definuje úlohu s klíčem zdroje hello-job s jedním úkolem poznámkového bloku:

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

Informace o definování úloh a přepsání nastavení úloh naleznete v tématu Přidání úkolů do úloh v sadách prostředků Databricks, Přepsání nastavení úloh v sadě prostředků Databricksa Přepsání nastavení clusteru v sadě prostředků Databricks.

model (starší verze)

Modelový zdroj umožňuje definovat starší modely v balíčcích. Databricks doporučuje místo toho používat zaregistrované modely Unity Catalog.

koncový bod pro obsluhu modelu

Prostředek model_serving_endpoint umožňuje definovat model obsluhující koncové body. Viz Správa modelů obsluhujících koncové body.

Příklad

Následující příklad definuje koncový bod obsluhy modelu Unity Catalog:

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"

monitor kvality (Unity Catalog)

Prostředek quality_monitor umožňuje definovat Unity Catalogtable monitor. Informace o monitorování najdete v tématu Monitorování kvality modelu a stavu koncového bodu.

Příklad

Následující příklad definuje monitorování kvality:

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

registrovaný_model (Unity Catalog)

Registrovaný zdroj modelu umožňuje definovat modely v Unity Catalog. Informace o zaregistrovaných modelech Unity Catalognaleznete v tématu Správa životního cyklu modelu v Unity Catalog.

Příklad

Následující příklad definuje registrovaný model v 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

potrubí

Zdroj potrubí umožňuje vytvoření potrubí Delta Live Tables. Informace o pipelinech najdete v tématu Co je Delta Live Tables?. Kurz, který k vytvoření kanálu používá šablonu Sady prostředků Databricks, najdete v tématu Vývoj kanálů Delta Live Tables pomocí sad prostředků Databricks.

Příklad

Následující příklad definuje pipeline s klíčem prostředku 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)

Typ prostředku schema umožňuje definovat schémata Unity Catalog pro tables a další prostředky v pracovních postupech a pipelinech vytvořených jako součást balíčku. schema, který se liší od jiných typů prostředků, má následující omezení:

  • Vlastníkem prostředku schema je vždy uživatel nasazení a nelze ho změnit. Pokud je v sadě zadán run_as, operace na schemaho budou ignorovat.
  • Pro prostředek jsou k dispozici pouze pole podporovaná odpovídajícími objekty schémat pro vytvoření rozhraní API. Například není podporován, protože je k dispozici pouze v rozhraní API.

Příklady

Následující příklad definuje kanál s klíčem prostředku my_pipeline, který vytvoří Unity Catalogschema s klíčem my_schema jako cílový klíč.

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.

Sady prostředků Databricks nepodporují mapování grantů nejvyšší úrovně, takže pokud chcete set granty pro schema, definujte granty pro schema v mapování schemas. Další informace o grantech naleznete v tématu Zobrazit, granta revoke oprávnění.

Následující příklad definuje Unity Catalogschema s granty:

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

díl (Unity Catalog)

Typ prostředku "volume" vám umožňuje definovat a vytvářet Catalogvolumes v Unity jako součást jednoho balíčku. Při nasazování sady s definovaným svazkem mějte na paměti, že:

  • Na svazek nelze odkazovat v balíčku artifact_path, dokud neexistuje v pracovním prostoru. Proto pokud chcete k vytvoření svazku použít sady prostředků Databricks, musíte nejprve definovat svazek v sadě, poté ho nasadit, aby byl svazek vytvořen, a pak na něj odkazovat v rámci artifact_path při následných nasazeních.
  • Volumes v sadě nejsou opatřeny předponou dev_${workspace.current_user.short_name}, pokud je cíl nasazení nakonfigurován na mode: development. Tuto předponu ale můžete nakonfigurovat ručně. Viz Vlastní předvolby.

Příklad

Následující příklad vytvoří svazek Unity Catalog s klíčem my_volume:

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

Příklad balíku, který spouští úlohu zapisující do souboru ve svazku Unity Catalog, najdete v úložišti GitHub "bundle-examples" .