다음을 통해 공유


Databricks 자산 번들 리소스

Databricks 자산 번들을 사용하면 번들 구성의 resources 매핑에서 번들에서 사용하는 Azure Databricks 리소스에 대한 정보를 지정할 수 있습니다. 리소스 매핑리소스 키 참조를 확인하세요.

이 문서에서는 번들에 대해 지원되는 리소스 종류를 간략하게 설명하고 지원되는 각 유형에 대한 세부 정보 및 예제를 제공합니다. 추가 예제는 번들 구성 예제참조하세요.

Tip

기존 리소스에 대한 YAML을 생성하려면 databricks bundle generate 명령을 사용합니다. 번들 구성 파일생성을 참조하세요.

지원되는 리소스

다음 표에서는 번들에 대해 지원되는 리소스 종류를 나열합니다. 일부 리소스는 번들에 정의하고 번들을 배포하여 만들 수 있으며, 일부 리소스는 번들에 포함할 기존 자산을 참조해야만 만들 수 있습니다.

리소스는 해당 Databricks REST API 개체의 만들기 작업 요청 페이로드를 사용하여 정의됩니다. 여기서 YAML로 표현된 개체의 지원되는 필드는 리소스의 지원되는 속성입니다. 각 리소스의 해당 페이로드에 대한 설명서에 대한 링크가 표에 나열됩니다.

Tip

databricks bundle validate 명령은 번들 구성 파일에서 알 수 없는 리소스 속성이 발견되면 경고를 반환합니다.

Resource 해당 REST API 개체
app 앱 개체
cluster 클러스터 개체
dashboard 대시보드 개체
experiment 실험 개체
job 작업 개체
모델(레거시) Model(레거시) 개체
model_serving_endpoint 모델 제공 엔드포인트 객체
pipeline 파이프라인 개체
quality_monitor 품질 모니터 개체
registered_model(Unity 카탈로그) 등록된 모델 개체
스키마(Unity Catalog) 스키마 개체
secret_scope 비밀 스코프 객체
볼륨 (유니티 카탈로그) 볼륨 개체

Type: Map

앱 리소스는 Databricks 앱을 정의합니다. Databricks 앱에 대한 자세한 내용은 Databricks 앱을 참조하세요.

앱을 추가하려면 필요한 앱을 포함하여 앱을 정의할 설정을 지정합니다 source_code_path.

Tip

다음 명령을 사용하여 Streamlit Databricks 앱을 통해 번들을 초기화할 수 있습니다.

databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
apps:
  <app-name>:
    <app-field-name>: <app-field-value>
Key Type Description
budget_policy_id String 앱의 예산 정책 ID입니다.
config Map Deprecated. 대신 app.yaml 파일에서 앱 구성 명령 및 환경 변수를 정의합니다. Databricks 앱 구성을 참조하세요.
description String 앱에 대한 설명입니다.
name String 앱의 이름입니다. 이름에는 소문자 영숫자 및 하이픈만 포함되어야 합니다. 작업 영역 내에서 고유해야 합니다.
permissions Sequence 앱의 권한입니다. 사용 권한을 참조 하세요.
resources Sequence 앱의 컴퓨트 리소스. apps.name.resources를 참조하세요.
source_code_path String ./app Databricks 앱 소스 코드의 로컬 경로입니다. 이 필드는 필수입니다.
user_api_scopes Sequence 사용자 API 범위입니다.

apps.name.resources

Type: Sequence

앱의 컴퓨팅 리소스입니다.

Key Type Description
description String 앱 리소스에 대한 설명입니다.
job Map 사용할 작업 리소스를 식별하는 설정입니다. resources.job을 참조하세요.
name String 앱 리소스의 이름입니다.
secret Map 비밀 설정입니다. resources.secret을 참조하세요.
serving_endpoint Map 사용할 서비스 엔드포인트 리소스를 식별하는 설정입니다. resources.serving_endpoint 참조하세요.
sql_warehouse Map 사용할 웨어하우스 리소스를 식별하는 설정입니다. resources.sql_warehouse를 참조하세요.

Example

다음 예제에서는 번들로 만든 작업을 관리하는 my_app 앱을 만듭니다.

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 resources in the bundle which this app has access to. This binds the resource in the app with the bundle resource.
      resources:
        - name: 'app-job'
          job:
            id: ${resources.jobs.hello_world.id}
            permission: 'CAN_MANAGE_RUN'

해당 app.yaml 앱을 실행하기 위한 구성을 정의합니다.

command:
  - flask
  - --app
  - app
  - run
  - --debug
env:
  - name: JOB_ID
    valueFrom: 'app-job'

전체 Databricks 앱 예제 번들은 번들 예제 GitHub 리포지토리를 참조하세요.

클러스터

Type: Map

클러스터 리소스는 클러스터를 정의합니다.

clusters:
  <cluster-name>:
    <cluster-field-name>: <cluster-field-value>
Key Type Description
apply_policy_default_values Boolean true로 설정하면 정책의 고정 및 기본값이 생략된 필드에 사용됩니다. false로 설정하면 정책의 고정 값만 적용됩니다.
autoscale Map 부하에 따라 클러스터를 자동으로 확장 및 축소하는 데 필요한 매개 변수입니다. 자동 크기 조정을 참조하세요.
autotermination_minutes Integer 지정된 시간(분) 동안 비활성 상태인 경우 클러스터를 자동으로 종료합니다. 설정하지 않으면 이 클러스터가 자동으로 종료되지 않습니다. 지정된 경우 임계값은 10분에서 10000분 사이여야 합니다. 사용자는 자동 종료를 명시적으로 사용하지 않도록 설정하기 위해 이 값을 0으로 설정할 수도 있습니다.
aws_attributes Map Amazon Web Services에서 실행되는 클러스터와 관련된 특성입니다. 클러스터를 만들 때 지정하지 않으면 기본값 집합이 사용됩니다. aws_attributes 참조하세요.
azure_attributes Map Microsoft Azure에서 실행되는 클러스터와 관련된 특성입니다. 클러스터를 만들 때 지정하지 않으면 기본값 집합이 사용됩니다. azure_attributes 참조하세요.
cluster_log_conf Map Spark 로그를 장기 스토리지 대상으로 배달하기 위한 구성입니다. cluster_log_conf 참조하세요.
cluster_name String 사용자가 요청한 클러스터 이름입니다. 고유할 필요는 없습니다. 만들 때 지정하지 않으면 클러스터 이름은 빈 문자열이 됩니다.
custom_tags Map 클러스터 리소스를 위한 추가 태그. Databricks는 default_tags 외에도 모든 클러스터 리소스(예: AWS 인스턴스 및 EBS 볼륨)에 이러한 태그를 지정합니다. custom_tags 참조하세요.
data_security_mode String 클러스터에서 데이터에 액세스할 때 사용할 데이터 거버넌스 모델입니다. data_security_mode 참조하세요.
docker_image Map 사용자 지정 Docker 이미지입니다. docker_image 참조하세요.
driver_instance_pool_id String 클러스터 드라이버에 대한 인스턴스 풀의 선택적 ID가 속합니다. 드라이버 풀이 할당되지 않은 경우 풀 클러스터는 id(instance_pool_id)가 있는 인스턴스 풀을 사용합니다.
driver_node_type_id String Spark 드라이버의 노드 형식입니다. 이 필드는 선택 사항입니다. 설정되지 않은 경우 드라이버 노드 형식은 위에서 정의한 값과 동일한 값으로 node_type_id 설정됩니다. virtual_cluster_size 설정된 경우 이 필드는 node_type_id 함께 설정하면 안 됩니다. driver_node_type_id, node_type_id 및 virtual_cluster_size 모두 지정되면 driver_node_type_id 및 node_type_id 우선합니다.
enable_elastic_disk Boolean 로컬 스토리지 자동 크기 조정: 사용하도록 설정하면 Spark 작업자가 디스크 공간이 부족할 때 이 클러스터는 추가 디스크 공간을 동적으로 확보합니다. 이 기능을 사용하려면 특정 AWS 권한이 올바르게 작동해야 합니다. 자세한 내용은 사용자 가이드를 참조하세요.
enable_local_disk_encryption Boolean 클러스터 VM의 로컬 디스크에서 LUKS를 사용하도록 설정할지 여부
gcp_attributes Map Google Cloud Platform에서 실행되는 클러스터와 관련된 특성입니다. 클러스터를 만들 때 지정하지 않으면 기본값 집합이 사용됩니다. gcp_attributes 참조하세요.
init_scripts Sequence init 스크립트를 저장하기 위한 구성입니다. 어떤 수의 목적지도 지정할 수 있습니다. 스크립트는 제공된 순서대로 순차적으로 실행됩니다. init_scripts 참조하세요.
instance_pool_id String 클러스터가 속한 인스턴스 풀의 선택적 ID입니다.
is_single_node Boolean 이 필드는 다음과 같은 경우에만 kind = CLASSIC_PREVIEW사용할 수 있습니다. true로 설정하면, Databricks는 자동으로 단일 노드와 관련된 custom_tags, spark_conf, num_workers를 설정합니다.
kind String 이 컴퓨팅 사양에서 설명하는 컴퓨팅 종류입니다.
node_type_id String 이 필드는 단일 값을 통해 이 클러스터의 각 Spark 노드에서 사용할 수 있는 리소스를 인코딩합니다. 예를 들어, Spark 노드는 메모리 또는 컴퓨팅 집약적 워크로드에 대해 프로비저닝되고 최적화될 수 있습니다. 사용 가능한 노드 형식 목록은 :method:clusters/listNodeTypes API 호출을 사용하여 검색할 수 있습니다.
num_workers Integer 이 클러스터에 있어야 하는 작업자 노드의 수입니다. 클러스터에는 총 num_workers 1개 이상의 Spark 노드에 대해 하나의 Spark 드라이버 및 num_workers 실행기가 있습니다.
permissions Sequence 클러스터 권한입니다. 사용 권한을 참조 하세요.
policy_id String 해당하는 경우 클러스터를 만드는 데 사용되는 클러스터 정책의 ID입니다.
runtime_engine String 클러스터의 런타임 엔진을 STANDARD 또는 PHOTON 중에서 결정합니다.
single_user_name String data_security_mode 경우 단일 사용자 이름 SINGLE_USER
spark_conf Map 선택적 사용자 지정 Spark 구성 키-값 쌍 집합을 포함하는 개체입니다. 사용자는 추가 JVM 옵션 문자열을 각각 통해 spark.driver.extraJavaOptionsspark.executor.extraJavaOptions 드라이버 및 실행기에 전달할 수도 있습니다. spark_conf 참조하세요.
spark_env_vars Map 선택적 사용자 지정 환경 변수 키-값 쌍 집합을 포함하는 개체입니다.
spark_version String 클러스터의 Spark 버전(예: 3.3.x-scala2.11 사용 가능한 Spark 버전 목록은 :method:clusters/sparkVersions API 호출을 사용하여 검색할 수 있습니다.
ssh_public_keys Sequence 이 클러스터의 각 Spark 노드에 추가될 SSH 공개 키 콘텐츠입니다. 해당 프라이빗 키를 사용하여 포트ubuntu에서 사용자 이름으로 2200 로그인할 수 있습니다. 최대 10 개의 키를 지정할 수 있습니다.
use_ml_runtime Boolean 이 필드는 다음과 같은 경우에만 kind = CLASSIC_PREVIEW사용할 수 있습니다. effective_spark_versionspark_version (DBR 릴리스), 이 필드 use_ml_runtime, 그리고 node_type_id가 gpu 노드인지 여부에 따라 결정됩니다.
workload_type Map 클러스터 워크로드 유형에 대해 표시되는 클러스터 특성입니다. workload_type 참조하세요.

Examples

다음 예제에서는 Databricks Runtime 15.4 LTS 및 클러스터 정책을 사용하여 현재 사용자에 대한 전용(단일 사용자) 클러스터를 만듭니다.

resources:
  clusters:
    my_cluster:
      num_workers: 0
      node_type_id: 'i3.xlarge'
      driver_node_type_id: 'i3.xlarge'
      spark_version: '15.4.x-scala2.12'
      spark_conf:
        'spark.executor.memory': '2g'
      autotermination_minutes: 60
      enable_elastic_disk: true
      single_user_name: ${workspace.current_user.userName}
      policy_id: '000128DB309672CA'
      enable_local_disk_encryption: false
      data_security_mode: SINGLE_USER
      runtime_engine": STANDARD

이 예제에서는 간단한 클러스터 my_cluster를 만들고, 이를 my_job에서 Notebook을 실행하기 위한 클러스터로 설정합니다.

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'
          existing_cluster_id: ${resources.clusters.my_cluster.id}

대시보드

Type: Map

대시보드 리소스를 사용하면 AI/BI 대시보드를 번들로 관리할 수 있습니다. AI/BI 대시보드에 대한 자세한 내용은 대시보드참조하세요.

Note

대시보드 Git 지원과 함께 Databricks 자산 번들을 사용하는 경우 대시보드가 파일로 동기화되지 않도록 동기화 매핑을 추가하여 중복 대시보드가 생성되지 않도록 합니다.

sync:
  exclude:
    - src/*.lvdash.json
dashboards:
  <dashboard-name>:
    <dashboard-field-name>: <dashboard-field-value>
Key Type Description
display_name String 대시보드의 표시 이름입니다.
etag String 대시보드의 "etag"입니다. 대시보드가 마지막으로 읽은 이후 수정되지 않았는지 확인하기 위해 업데이트에 선택적으로 제공할 수 있습니다.
file_path String 파일 이름을 포함하여 대시보드 자산의 로컬 경로입니다. 내보낸 대시보드에는 항상 파일 확장 .lvdash.json명이 있습니다.
permissions Sequence 대시보드 권한입니다. 사용 권한을 참조 하세요.
serialized_dashboard Any serialize된 문자열 형식의 대시보드 내용입니다.
warehouse_id String 대시보드를 실행하는 데 사용되는 웨어하우스 ID입니다.

Example

예시는 NYC Taxi Trip Analysis 대시보드를 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}

UI를 사용하여 대시보드를 수정하는 경우 bundle generate사용하여 명시적으로 업데이트하지 않는 한 UI를 통해 수정한 내용은 로컬 번들의 대시보드 JSON 파일에 적용되지 않습니다. --watch 옵션을 사용하여 대시보드에 대한 변경 내용을 지속적으로 폴링하고 검색할 수 있습니다. 번들 구성 파일생성을 참조하세요.

또한 원격 작업 영역에 있는 것과 다른 대시보드 JSON 파일이 포함된 번들을 배포하려고 하면 오류가 발생합니다. 원격 작업 영역의 대시보드를 로컬 대시보드로 강제로 배포하고 덮어쓰려면 --force 옵션을 사용합니다. 번들 배포를 참조하세요.

실험

Type: Map

실험 리소스를 사용하면 패키지에 MLflow 실험을 정의할 수 있습니다. MLflow 실험과 관련된 정보를 얻으려면 MLflow 실험을 사용하여 학습 실행을 구성하는 방법을 참조하세요.

experiments:
  <experiment-name>:
    <experiment-field-name>: <experiment-field-value>
Key Type Description
artifact_location String 실험의 아티팩트가 저장되는 위치입니다.
name String 실험을 식별하는 식별 이름입니다.
permissions Sequence 실험에 대한 권한입니다. 사용 권한을 참조 하세요.
tags Sequence 추가 메타데이터 키-값 쌍들. 태그를 참조하세요.

Example

다음 예제에서는 모든 사용자가 볼 수 있는 실험을 정의합니다.

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

작업

Type: Map

번들에서 작업과 해당 작업에 연결된 태스크를 정의할 수 있도록 작업 리소스를 사용하십시오. 작업에 대한 자세한 내용은 Lakeflow 작업을 참조하세요. Databricks 자산 번들 템플릿을 사용하여 작업을 만드는 자습서는 Databricks 자산 번들을 사용하여 작업 개발을 참조하세요.

jobs:
  <job-name>:
    <job-field-name>: <job-field-value>
Key Type Description
budget_policy_id String 이 작업에 사용할 사용자 지정 예산 정책의 ID입니다. 지정하지 않으면 작업을 만들거나 수정할 때 기본 예산 정책이 적용될 수 있습니다. 이 워크로드에서 사용하는 예산 정책을 참조 effective_budget_policy_id 하세요.
continuous Map 이 작업에 대한 선택적 연속 속성입니다. 연속 속성은 항상 하나의 실행이 실행되도록 합니다. schedulecontinuous 중 하나만 사용할 수 있습니다. 연속을 참조하십시오.
deployment Map 외부 원본에서 관리하는 작업에 대한 배포 정보입니다. 배포를 참조하세요.
description String 작업에 대한 선택적 설명입니다. 최대 길이는 UTF-8 인코딩에서 27700자입니다.
edit_mode String 작업 편집 모드는 UI_LOCKED 또는 EDITABLE 중 하나입니다.
email_notifications Map 이 작업의 실행이 시작되거나 완료될 때와 이 작업이 삭제될 때 알림을 수신하는 선택적 전자 메일 주소 집합입니다. email_notifications 참조하세요.
environments Sequence 이 작업의 서버리스 작업에서 참조할 수 있는 작업 실행 환경 사양 목록입니다. 서버리스 작업에는 환경이 있어야 합니다. 서버리스 Notebook 작업의 경우 Notebook 환경 패널에서 환경에 액세스할 수 있습니다. 다른 서버리스 작업의 경우 작업 설정에서 environment_key 사용하여 작업 환경을 지정해야 합니다. 환경을 참조하세요.
format String 작업의 형식입니다.
git_source Map 태스크에서 사용하는 소스 코드를 포함하는 원격 Git 리포지토리에 대한 선택적 사양입니다.
중요하다: 로컬 상대 경로가 git_source Git 리포지토리의 동일한 콘텐츠를 가리키지 않을 수 있으며 번들은 배포된 작업이 배포된 로컬 복사본과 동일한 콘텐츠를 포함할 것으로 예상하므로 번들에 대해 설정된 source 필드와 작업 GIT 필드는 권장되지 않습니다.
대신 리포지토리를 로컬로 복제하고 이 리포지토리 내에서 번들 프로젝트를 설정하여 작업의 원본이 작업 영역이 되도록 합니다.
health Map 이 작업에 대해 정의할 수 있는 선택적 건강 규칙 집합입니다. 건강을 참조하세요.
job_clusters Sequence 이 작업의 태스크에서 공유하고 다시 사용할 수 있는 작업 클러스터 사양 목록입니다. 클러스터를 참조하세요.
max_concurrent_runs Integer 선택적으로 허용되는 작업의 최대 동시 실행 수입니다. 동일한 작업의 여러 실행을 동시에 실행할 수 있도록 하려면 이 값을 설정합니다. max_concurrent_runs 참조하세요.
name String 작업에 대한 선택적 이름입니다. 최대 길이는 UTF-8 인코딩에서 4096바이트입니다.
notification_settings Map 이 작업에 대해 각각 email_notificationswebhook_notifications 에 알림을 보낼 때 사용되는 선택적 알림 설정입니다. notification_settings 참조하세요.
parameters Sequence 작업 수준 매개 변수 정의입니다. 매개 변수를 참조하세요.
performance_target String PerformanceTarget은 서버리스에서 실행의 성능 또는 비용 효율성을 정의합니다.
permissions Sequence 작업 권한 사용 권한을 참조 하세요.
queue Map 작업의 큐 설정입니다. 큐를 참조 하세요.
run_as Map 쓰기 전용 설정입니다. 작업이 실행되는 사용자 또는 서비스 주체를 지정합니다. 지정하지 않으면 작업이 작업을 만든 사용자로 실행됩니다. user_name 또는 service_principal_name 중 하나를 지정해야 합니다. 그렇지 않으면 오류가 throw됩니다. Databricks Asset Bundles 워크플로대한 실행 ID 지정을 참조하세요.
schedule Map 이 작업에 대한 선택적 정기 일정입니다. 기본 동작은 작업 UI에서 "지금 실행"을 클릭하거나 API 요청을 전송하여 트리거될 때만 작업이 실행된다는 것입니다 runNow. 일정을 참조하세요.
tags Map 작업과 연결된 태그의 맵입니다. 이러한 태그는 작업 클러스터에 대한 클러스터 태그로 클러스터에 전달되며 클러스터 태그와 동일한 제한 사항이 적용됩니다. 최대 25개의 태그를 작업에 추가할 수 있습니다.
tasks Sequence 이 작업에서 실행할 작업 사양 목록입니다. Databricks 자산 번들에서 작업에 태스크 추가하기.
timeout_seconds Integer 이 작업의 각 실행에 적용되는 선택적 시간 제한입니다. 값은 0 시간 제한이 없음을 의미합니다.
trigger Map 특정 조건이 충족될 때 실행을 트리거하는 구성입니다. 트리거를 참조하십시오.
webhook_notifications Map 이 작업의 실행이 시작되거나 완료될 때 알릴 시스템 알림 ID의 컬렉션입니다. webhook_notifications 참조하세요.

Examples

다음 예제에서는 리소스 키 hello-job을 사용하여 하나의 노트북 작업을 포함한 작업을 정의합니다.

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

다음 예제에서는 SQL Notebook을 사용하여 작업을 정의합니다.

resources:
  jobs:
    job_with_sql_notebook:
      name: 'Job to demonstrate using a SQL notebook with a SQL warehouse'
      tasks:
        - task_key: notebook
          notebook_task:
            notebook_path: ./select.sql
            warehouse_id: 799f096837fzzzz4

추가 작업 구성 예제는 작업 구성을 참조하세요.

작업 태스크 정의 및 작업 설정 재정의에 대한 자세한 내용은 다음을 참조하세요.

모델(레거시)

Type: Map

모델 리소스를 사용하면 번들에 레거시 모델을 정의할 수 있습니다. Databricks는 대신 Unity 카탈로그에 등록된 모델을 사용하는 것이 좋습니다.

모델_서빙_엔드포인트

Type: Map

model_serving_endpoint 리소스를 사용하면 엔드포인트제공하는 모델을 정의할 수 있습니다. 모델 서빙 엔드포인트 관리를 참조하세요.

model_serving_endpoints:
  <model_serving_endpoint-name>:
    <model_serving_endpoint-field-name>: <model_serving_endpoint-field-value>
Key Type Description
ai_gateway Map 서비스 엔드포인트에 대한 AI 게이트웨이 구성입니다. 참고: 외부 모델 및 프로비전된 처리량 엔드포인트만 현재 지원됩니다. ai_gateway 참조하세요.
config Map 서비스 엔드포인트의 핵심 구성입니다. 구성을 참조하세요.
name String 제공 엔드포인트의 이름입니다. 이 필드는 필수이며 Databricks 작업 영역에서 고유해야 합니다. 엔드포인트 이름은 영숫자 문자, 대시 및 밑줄로 구성됩니다.
permissions Sequence 엔드포인트의 권한을 제공하는 모델입니다. 사용 권한을 참조 하세요.
rate_limits Sequence Deprecated. 서비스 엔드포인트에 적용할 속도 제한입니다. AI 게이트웨이를 사용하여 속도 제한을 관리합니다.
route_optimized Boolean 서비스 엔드포인트에 대한 경로 최적화를 사용하도록 설정합니다.
tags Sequence 서비스 엔드포인트에 연결되고 청구 로그에 자동으로 전파될 태그입니다. 태그를 참조하세요.

Example

다음 예제에서는 엔드포인트를 제공하는 Unity 카탈로그 모델을 정의합니다.

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'

파이프라인

Type: Map

파이프라인 리소스를 사용하면 Lakeflow 선언적 파이프라인 파이프라인을 만들 수 있습니다. 파이프라인에 대한 자세한 내용은 Lakeflow 선언적 파이프라인을 참조하세요. Databricks 자산 번들 템플릿을 사용하여 파이프라인을 만드는 자습서는 Databricks 자산 번들을 사용하여 Lakeflow 선언적 파이프라인 개발을 참조하세요.

pipelines:
  <pipeline-name>:
    <pipeline-field-name>: <pipeline-field-value>
Key Type Description
allow_duplicate_names Boolean false이면 이름이 다른 파이프라인의 이름과 충돌하는 경우 배포가 실패합니다.
catalog String 이 파이프라인에서 데이터를 게시하기 위한 Unity 카탈로그의 일환인 카탈로그입니다. 지정된 경우, 이 파이프라인의 테이블은 target 내부의 target 스키마에 게시됩니다(예를 들어, catalog.catalog.target). 지정하지 않으면 target Unity 카탈로그에 데이터가 게시되지 않습니다.
channel String 사용할 Lakeflow 선언적 파이프라인 버전을 지정하는 Lakeflow 선언적 파이프라인 릴리스 채널입니다.
clusters Sequence 이 파이프라인 배포에 대한 클러스터 설정입니다. 클러스터를 참조하세요.
configuration Map 이 파이프라인 실행에 대한 구성입니다.
continuous Boolean 파이프라인이 지속적인지 또는 트리거되는지 여부입니다. 이것은 trigger을 대체합니다.
deployment Map 이 파이프라인의 배포 유형입니다. 배포를 참조하세요.
development Boolean 파이프라인이 개발 모드에 있는지 확인하는 것입니다. 기본값은 false입니다.
dry_run Boolean 파이프라인이 건식 실행 파이프라인인지 여부입니다.
edition String 파이프라인 제품 버전입니다.
environment Map 서버리스 컴퓨팅에 종속성을 설치하는 데 사용되는 이 파이프라인의 환경 사양입니다. 이 키는 Databricks CLI 버전 0.258 이상에서만 지원됩니다.
event_log Map 이 파이프라인에 대한 이벤트 로그 구성입니다. event_log 참조하세요.
filters Map 배포된 그래프에 포함할 파이프라인 패키지를 결정하는 필터입니다. 필터를 참조하세요.
id String 이 파이프라인의 고유 식별자입니다.
ingestion_definition Map 관리되는 수집 파이프라인에 대한 구성입니다. 이러한 설정은 libraries, schema, target 또는 catalog 설정과 함께 사용할 수 없습니다. ingestion_definition 참조하세요.
libraries Sequence 이 배포에 필요한 라이브러리 또는 코드입니다. 라이브러리를 참조하세요.
name String 이 파이프라인의 친숙한 이름입니다.
notifications Sequence 이 파이프라인에 대한 알림 설정입니다. 알림을 참조하세요.
permissions Sequence 파이프라인의 권한 사용 권한을 참조 하세요.
photon Boolean 이 파이프라인에 Photon을 사용할 수 있는지 여부입니다.
schema String 테이블을 읽거나 게시하는 기본 스키마(데이터베이스)입니다.
serverless Boolean 이 파이프라인에 대해 서버리스 컴퓨팅을 사용할 수 있는지 여부입니다.
storage String 검사점 및 테이블을 저장하기 위한 DBFS 루트 디렉터리입니다.
target String 이 파이프라인의 테이블을 추가할 대상 스키마(데이터베이스)입니다. 정확히 하나 schema 또는 target 지정해야 합니다. Unity 카탈로그 catalog에 게시하려면, catalog도 지정하십시오. 이 레거시 필드는 schema 필드가 파이프라인 생성에 더 적합하여 사용이 중지되었습니다.
trigger Map Deprecated. 어느 파이프라인 트리거를 사용할지. continuous를 대신 사용하세요.

Example

다음 예제에서는 리소스 키 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

추가 파이프라인 구성 예제는 파이프라인 구성을 참조하세요.

품질_모니터(Unity 카탈로그)

Type: Map

quality_monitor 리소스를 사용하면 Unity 카탈로그 테이블 모니터를 정의할 수 있습니다. 모니터에 대한 자세한 내용은 Databricks Lakehouse 모니터링 소개를 참조하세요.

quality_monitors:
  <quality_monitor-name>:
    <quality_monitor-field-name>: <quality_monitor-field-value>
Key Type Description
assets_dir String 모니터링 자산(예: 대시보드, 메트릭 테이블)을 저장할 디렉터리입니다.
baseline_table_name String 드리프트 메트릭이 계산되는 기준 테이블의 이름입니다. 모니터링되는 테이블의 열은 반드시 기준 테이블에 모두 존재해야 합니다.
custom_metrics Sequence 모니터링되는 테이블에서 계산할 사용자 지정 메트릭입니다. 이러한 메트릭은 집계 메트릭, 파생 메트릭(이미 계산된 집계 메트릭에서) 또는 드리프트 메트릭(시간 기간 간 메트릭 비교)일 수 있습니다. custom_metrics 참조하세요.
inference_log Map 유추 로그를 모니터링하기 위한 구성입니다. inference_log 참조하세요.
notifications Map 모니터에 대한 알림 설정입니다. 알림을 참조하세요.
output_schema_name String 출력 메트릭 테이블이 만들어지는 스키마입니다.
schedule Map 메트릭 테이블을 자동으로 업데이트하고 새로 고치는 일정입니다. 일정을 참조하세요.
skip_builtin_dashboard Boolean 데이터 품질 메트릭을 요약하는 기본 대시보드 만들기를 건너뛸지 여부입니다.
slicing_exprs Sequence 대상 분석을 위해 데이터를 조각화할 열 식 목록입니다. 데이터는 각 표현별로 독립적으로 그룹화되므로, 각 술어와 그 보충에 대해 별도의 조각이 생성됩니다. 높은 카디널리티 열의 경우 상위 100개 고유 값만 빈도별로 조각이 생성됩니다.
snapshot Map 스냅샷 테이블 모니터링을 위한 구성입니다.
table_name String 테이블의 전체 이름입니다.
time_series Map 시계열 테이블을 모니터링하기 위한 구성입니다. time_series 참조하세요.
warehouse_id String 대시보드 만들기를 위해 웨어하우스를 지정하는 선택적 인수입니다. 지정하지 않으면 첫 번째 실행 웨어하우스가 사용됩니다.

Examples

을 정의하는 전체 예제 번들은 quality_monitormlops_demo 번들을 참조하세요.

다음 예제에서는 InferenceLog, TimeSeries스냅샷 프로필 형식에 대한 품질 모니터를 정의합니다.

# InferenceLog profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/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
# TimeSeries profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      time_series:
        granularities: [30 minutes]
        timestamp_col: timestamp
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC
# Snapshot profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      snapshot: {}
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC

등록된_모델(Unity 카탈로그)

Type: Map

등록된 모델 리소스를 사용하면 Unity 카탈로그에서 모델을 정의할 수 있습니다. Unity 카탈로그에서 등록된 모델에 대한 자세한 내용은 모델 수명 주기 관리를 참조하세요.

registered_models:
  <registered_model-name>:
    <registered_model-field-name>: <registered_model-field-value>
Key Type Description
catalog_name String 스키마와 등록된 모델이 있는 카탈로그의 이름입니다.
comment String 등록된 모델에 첨부된 주석입니다.
grants Sequence 등록된 모델과 연관된 보조금입니다. 보조금을 참조하세요.
name String 등록된 모델의 이름입니다.
schema_name String 등록된 모델이 있는 스키마의 이름입니다.
storage_location String 모델 버전 데이터 파일이 저장되는 클라우드의 스토리지 위치입니다.

Example

다음 예제에서는 Unity 카탈로그에 등록된 모델을 정의합니다.

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

스키마(Unity Catalog)

Type: Map

스키마 리소스 유형을 사용하면 번들의 일부로 생성된 워크플로 및 파이프라인의 테이블 및 기타 자산에 대한 Unity 카탈로그 스키마을 정의할 수 있습니다. 다른 리소스 종류와 다른 스키마에는 다음과 같은 제한 사항이 있습니다.

schemas:
  <schema-name>:
    <schema-field-name>: <schema-field-value>
Key Type Description
catalog_name String 부모 카탈로그의 이름입니다.
comment String 사용자가 제공한 자유 형식 텍스트 설명입니다.
grants Sequence 스키마와 연결된 권한 부여입니다. 보조금을 참조하세요.
name String 부모 카탈로그를 기준으로 하는 스키마의 이름입니다.
properties Map 스키마에 연결된 키-값 속성의 맵입니다.
storage_root String 스키마 내의 관리 테이블에 대한 스토리지 루트 URL입니다.

Examples

다음 예제에서는 리소스 키 my_pipeline을(를) 사용하여 파이프라인을 정의하고, 키 my_schema을(를) 대상으로 하여 Unity 카탈로그 스키마를 만듭니다.

resources:
  pipelines:
    my_pipeline:
      name: test-pipeline-{{.unique_id}}
      libraries:
        - notebook:
            path: ../src/nb.ipynb
        - file:
            path: ../src/range.sql
      development: true
      catalog: ${resources.schemas.my_schema.catalog_name}
      target: ${resources.schemas.my_schema.id}

  schemas:
    my_schema:
      name: test-schema-{{.unique_id}}
      catalog_name: main
      comment: This schema was created by Databricks Asset Bundles.

최상위 권한 부여 매핑은 Databricks 자산 번들에서 지원되지 않으므로 스키마에 대한 권한을 설정하려면 schemas 매핑 내에서 스키마에 대한 권한을 정의합니다. 권한 부여에 대한 자세한 내용은 권한 표시, 부여 및 해지참조하세요.

다음 예제에서는 권한 부여를 사용하여 Unity 카탈로그 스키마를 정의합니다.

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

시크릿_스코프

Type: Map

secret_scope 리소스를 사용하면 번들에서 비밀 범위를 정의할 수 있습니다. 비밀 범위에 대한 자세한 내용은 비밀 관리를 참조하세요.

secret_scopes:
  <secret_scope-name>:
    <secret_scope-field-name>: <secret_scope-field-value>
Key Type Description
backend_type String 범위가 생성될 때 사용할 백엔드 유형. 지정하지 않으면 기본값은 .입니다 DATABRICKS.
keyvault_metadata Map 비밀 범위의 메타데이터는 backend_typeAZURE_KEYVAULT인 경우입니다.
name String 사용자가 요청한 범위 이름입니다. 범위 이름은 고유합니다.
permissions Sequence 비밀 범위에 적용할 권한 설정입니다. 권한은 비밀 범위 ACL을 통해 관리됩니다. 사용 권한을 참조 하세요.

Examples

다음 예제에서는 키 보관소 백엔드를 사용하는 비밀 범위를 정의합니다.

resources:
  secret_scopes:
    secret_scope_azure:
      name: test-secrets-azure-backend
      backend_type: 'AZURE_KEYVAULT'
      keyvault_metadata:
        resource_id: my_azure_keyvault_id
        dns_name: my_azure_keyvault_dns_name

다음 예제에서는 비밀 범위 및 권한을 사용하여 사용자 지정 ACL을 설정합니다.

resources:
  secret_scopes:
    my_secret_scope:
      name: my_secret_scope
      permissions:
        - user_name: admins
          level: WRITE
        - user_name: users
          level: READ

번들 내에서 비밀 범위를 정의하고 이 범위에서 읽는 작업을 포함하는 작업을 설정하는 방법을 보여주는 예제 번들은 bundle-examples GitHub 리포지토리를 참조하세요.

볼륨(Unity 카탈로그)

Type: Map

볼륨 리소스 유형을 사용하여 번들의 일부로 Unity 카탈로그의 볼륨을 정의하고 생성할 수 있습니다. 볼륨이 정의된 번들을 배포하는 경우 다음 사항에 유의하세요.

  • 작업 영역에 볼륨이 존재하기 전까지 artifact_path에서 번들에 대한 참조가 불가능합니다. 따라서 Databricks 자산 번들을 사용하여 볼륨을 만들려면 먼저 번들 내에서 볼륨을 정의하고 그것을 배포하여 볼륨을 생성한 후, 후속 배포에서 artifact_path를 참조해야 합니다.
  • 배포 대상이 dev_${workspace.current_user.short_name}로 설정된 경우, 번들에 있는 볼륨에 mode: development 접두사가 추가되지 않습니다. 그러나 이 접두사를 수동으로 구성할 수 있습니다. 사용자 지정 사전 설정참조하세요.
volumes:
  <volume-name>:
    <volume-field-name>: <volume-field-value>
Key Type Description
catalog_name String 스키마와 볼륨의 카탈로그 이름입니다.
comment String 볼륨에 첨부된 주석입니다.
grants Sequence 볼륨과 연결된 권한 부여입니다. 보조금을 참조하세요.
name String 볼륨의 이름입니다.
schema_name String 볼륨이 있는 스키마의 이름입니다.
storage_location String 클라우드의 스토리지 위치입니다.
volume_type String 볼륨 유형은 EXTERNAL 또는 MANAGED 중 하나입니다. 외부 볼륨은 지정된 외부 위치에 있습니다. 관리되는 볼륨은 부모 스키마 또는 부모 카탈로그 또는 메타스토어로 지정된 기본 위치에 있습니다. 관리되는 볼륨과 외부 볼륨을 참조하세요.

Example

다음 예제에서는 키 my_volume_id사용하여 Unity 카탈로그 볼륨을 만듭니다.

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

Unity 카탈로그 볼륨의 파일에 기록하는 작업을 실행하는 예제 번들을 보려면 번들 예제 GitHub 리포지토리를 참고하세요.

일반적인 물건

grants

Type: Sequence

Key Type Description
principal String 권한이 부여될 사용자의 이름입니다.
privileges Sequence 지정된 엔터티에 부여할 수 있는 권한.