Aracılığıyla paylaş


Hedef ayarlarıyla geçersiz kıl

Bu sayfada, Databricks Varlık Paketleri'nde hedef ayarlarla üst düzey ayarların nasıl geçersiz kılındığı veya birleştirdiği açıklanır. Paket ayarları hakkında bilgi için bkz. Databricks Varlık Paketi yapılandırması.

Artifakt ayarlarını geçersiz kılma ayarı

En üst düzey artifacts eşlemedeki yapıt ayarlarını, bir eşlemedeki targets yapıt ayarlarıyla geçersiz kılabilirsiniz, örneğin:

# ...
artifacts:
  <some-unique-programmatic-identifier-for-this-artifact>:
    # Artifact settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    artifacts:
      <the-matching-programmatic-identifier-for-this-artifact>:
        # Any more artifact settings to join with the settings from the
        # matching top-level artifacts mapping.

Herhangi bir yapıt ayarı hem üst düzey artifacts eşlemede hem targets de aynı yapıt için eşlemede tanımlanmışsa, eşlemedeki targets ayar üst düzey artifacts eşlemedeki ayardan önceliklidir.

Örnek 1: Yalnızca üst düzey yapıt eşlemesinde tanımlanan yapıt ayarları

Bunun pratikte nasıl çalıştığını göstermek için, aşağıdaki örnekte, path yapıtın tüm ayarlarını tanımlayan üst düzey artifacts eşlemede tanımlanır:

# ...
artifacts:
  my-artifact:
    type: whl
    path: ./my_package
# ...

Bu örnek için çalıştırdığınızda databricks bundle validate , sonuçta elde edilen grafik şöyledir:

{
  "...": "...",
  "artifacts": {
    "my-artifact": {
      "type": "whl",
      "path": "./my_package",
      "...": "..."
    }
  },
  "...": "..."
}

Örnek 2: Birden çok ekipman eşlemesinde tanımlanan çakışan ekipman ayarları

Bu örnekte, path hem en üst düzey artifacts eşlemesinde hem de artifacts içindeki targets eşlemesinde tanımlanır. Bu örnekte, path içindeki artifacts eşlemesi, yapıtın ayarlarını tanımlamak için, en üst düzeydeki targets eşlemesine göre önceliklidir path:

# ...
artifacts:
  my-artifact:
    type: whl
    path: ./my_package

targets:
  dev:
    artifacts:
      my-artifact:
        path: ./my_other_package
    # ...

Bu örnek için çalıştırdığınızda databricks bundle validate , sonuçta elde edilen grafik şöyledir:

{
  "...": "...",
  "artifacts": {
    "my-artifact": {
      "type": "whl",
      "path": "./my_other_package",
      "...": "..."
    }
  },
  "...": "..."
}

Küme ayarları geçersiz kılmaları

Hedef için iş veya işlem hattı kümesi ayarlarını geçersiz kılabilir veya bu ayarlara katılabilirsiniz.

İşler için, iş kümesi ayarlarını, job_cluster_key en üst düzey eşlemede iş tanımı içinde kullanarak tanımlayın ve resources eşlemedeki iş kümesi ayarlarıyla birleştirintargets:

# ...
resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      # ...
      job_clusters:
        - job_cluster_key: <some-unique-programmatic-identifier-for-this-key>
          new_cluster:
            # Cluster settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <the-matching-programmatic-identifier-for-this-job>:
          # ...
          job_clusters:
            - job_cluster_key: <the-matching-programmatic-identifier-for-this-key>
              # Any more cluster settings to join with the settings from the
              # resources mapping for the matching top-level job_cluster_key.
          # ...

Herhangi bir küme ayarı hem üst düzey resources eşlemede hem targets de aynı job_cluster_keyiçin eşlemede tanımlanırsa, eşlemedeki targets ayar üst düzey resources eşlemedeki ayardan önceliklidir.

Lakeflow Spark Deklaratif İşlem Hatları için, en üst düzey label eşlemedeki küme ayarlarını bir resources eşlemedeki küme ayarları ile birleştirmek için, targets küme ayarları içinde kullanın, örneğin:

# ...
resources:
  pipelines:
    <some-unique-programmatic-identifier-for-this-pipeline>:
      # ...
      clusters:
        - label: default | maintenance
          # Cluster settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      pipelines:
        <the-matching-programmatic-identifier-for-this-pipeline>:
          # ...
          clusters:
            - label: default | maintenance
              # Any more cluster settings to join with the settings from the
              # resources mapping for the matching top-level label.
          # ...

Herhangi bir küme ayarı hem üst düzey resources eşlemede hem targets de aynı labeliçin eşlemede tanımlanırsa, eşlemedeki targets ayar üst düzey resources eşlemedeki ayardan önceliklidir.

Örnek 1: Birden çok kaynak eşlemesinde tanımlanan ve hiçbir ayar çakışması olmayan yeni iş kümesi ayarları

Bu örnekte, spark_version adlı resources öğesinin ayarlarını tanımlamak için en üst düzeydeki node_type_idnum_workers eşlemesi resources ile ve targets içindeki job_cluster_keyeşlemesiyle my-cluster birleştirilir.

# ...
resources:
  jobs:
    my-job:
      name: my-job
      job_clusters:
        - job_cluster_key: my-cluster
          new_cluster:
            spark_version: 13.3.x-scala2.12

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          job_clusters:
            - job_cluster_key: my-cluster
              new_cluster:
                node_type_id: Standard_DS3_v2
                num_workers: 1
          # ...

Bu örnek için databricks bundle validate çalıştırdığınızda, sonuçta elde edilen grafik aşağıdaki gibidir:

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "job_clusters": [
          {
            "job_cluster_key": "my-cluster",
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 1,
              "spark_version": "13.3.x-scala2.12"
            }
          }
        ],
        "...": "..."
      }
    }
  }
}

Örnek 2: Birden çok kaynak eşlemesinde tanımlanan yeni iş kümesi ayarları çakışıyor

Bu örnekte spark_version ve num_workers, hem üst düzey resources eşlemesinde hem de resources içindeki targets eşlemesinde tanımlanır. Bu örnekte spark_version içindeki num_workers eşlemesinde resources ve targets, spark_version adlı num_workers öğesinin ayarlarını tanımlamak için üst düzey resources eşlemesinde job_cluster_key ve my-cluster üzerinde önceliklidir.

# ...
resources:
  jobs:
    my-job:
      name: my-job
      job_clusters:
        - job_cluster_key: my-cluster
          new_cluster:
            spark_version: 13.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          job_clusters:
            - job_cluster_key: my-cluster
              new_cluster:
                spark_version: 12.2.x-scala2.12
                num_workers: 2
          # ...

Bu örnek için databricks bundle validate çalıştırdığınızda, sonuçta elde edilen grafik aşağıdaki gibidir:

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "job_clusters": [
          {
            "job_cluster_key": "my-cluster",
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 2,
              "spark_version": "12.2.x-scala2.12"
            }
          }
        ],
        "...": "..."
      }
    }
  }
}

Örnek 3: Birden çok kaynak eşlemesinde tanımlanan ve ayar çakışması olmadan pipeline kümesi ayarları

Bu örnekte, en üst düzey node_type_id eşlemesindeki resources, num_workers içindeki resources eşlemesiyle birleştirilerek, targets adında label için ayarları tanımlar.

# ...
resources:
  pipelines:
    my-pipeline:
      clusters:
        - label: default
          node_type_id: Standard_DS3_v2

targets:
  development:
    resources:
      pipelines:
        my-pipeline:
          clusters:
            - label: default
              num_workers: 1
          # ...

Bu örnek için databricks bundle validate çalıştırdığınızda, sonuçta elde edilen grafik aşağıdaki gibidir:

{
  "...": "...",
  "resources": {
    "pipelines": {
      "my-pipeline": {
        "clusters": [
          {
            "label": "default",
            "node_type_id": "Standard_DS3_v2",
            "num_workers": 1
          }
        ],
        "...": "..."
      }
    }
  }
}

Örnek 4: Birden çok kaynak eşlemesinde tanımlanan çakışan işlem hattı kümesi ayarları

Bu örnekte, num_workers hem en üst düzey resources eşlemesinde hem de resources içindeki targets eşlemesinde tanımlanır. num_workers resources içindeki eşlemedetargets, adlı num_workersöğesinin ayarlarını tanımlamak için en üst düzey resources eşlemede label önceliklidirdefault:

# ...
resources:
  pipelines:
    my-pipeline:
      clusters:
        - label: default
          node_type_id: Standard_DS3_v2
          num_workers: 1

targets:
  development:
    resources:
      pipelines:
        my-pipeline:
          clusters:
            - label: default
              num_workers: 2
          # ...

Bu örnek için databricks bundle validate çalıştırdığınızda, sonuçta elde edilen grafik aşağıdaki gibidir:

{
  "...": "...",
  "resources": {
    "pipelines": {
      "my-pipeline": {
        "clusters": [
          {
            "label": "default",
            "node_type_id": "Standard_DS3_v2",
            "num_workers": 2
          }
        ],
        "...": "..."
      }
    }
  }
}

İş görevi ayarlarını geçersiz kılma

Bir iş tanımındaki eşlemeyi tasks kullanarak, bir eşlemedeki iş görevi ayarlarıyla en üst düzey resources eşlemedeki targets iş görevleri ayarlarını birleştirebilirsiniz, örneğin:

# ...
resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      # ...
      tasks:
        - task_key: <some-unique-programmatic-identifier-for-this-task>
          # Task settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <the-matching-programmatic-identifier-for-this-job>:
          # ...
          tasks:
            - task_key: <the-matching-programmatic-identifier-for-this-key>
              # Any more task settings to join with the settings from the
              # resources mapping for the matching top-level task_key.
          # ...

En üst düzey resources eşlemeye ve aynı göreve yönelik targets eşlemeye katılmak için görev eşlemelerinin task_key aynı değere ayarlanması gerekir.

Herhangi bir iş görevi ayarı hem üst düzey resources eşlemede hem de targets eşlemede aynı task için tanımlandığında, targets eşlemedeki ayar, üst düzey resources eşlemedeki ayara göre önceliklidir.

Örnek 1: Birden çok kaynak eşlemesinde tanımlanan ve hiçbir ayar çakışması olmayan iş görevi ayarları

Bu örnekte, spark_version adlı resources öğesinin ayarlarını tanımlamak için en üst düzeydeki node_type_idnum_workers eşlemesi resources ile ve targets içindeki task_keyeşlemesiyle my-task birleştirilir.

# ...
resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: my-key
          new_cluster:
            spark_version: 13.3.x-scala2.12

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          tasks:
            - task_key: my-task
              new_cluster:
                node_type_id: Standard_DS3_v2
                num_workers: 1
          # ...

Bu örnek için çalıştırdığınızda databricks bundle validate , sonuçta elde edilen grafik aşağıdaki gibidir (üç nokta kısalık için atlanmış içeriği gösterir):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "tasks": [
          {
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 1,
              "spark_version": "13.3.x-scala2.12"
            },
            "task-key": "my-task"
          }
        ],
        "...": "..."
      }
    }
  }
}

Örnek 2: Birden çok kaynak eşlemesinde tanımlanan çakışan iş görev ayarları

Bu örnekte spark_version ve num_workers, hem üst düzey resources eşlemesinde hem de resources içindeki targets eşlemesinde tanımlanır. spark_version ve num_workers, resources içindeki targets eşlemesinde, en üst düzey spark_version eşlemesindeki num_workers ve resources üzerinde önceliklidir. Bu, adlandırılmış task_key için ayarları my-task tanımlar (üç nokta, kısa süre için atlanmış içeriği gösterir):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: my-task
          new_cluster:
            spark_version: 13.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          tasks:
            - task_key: my-task
              new_cluster:
                spark_version: 12.2.x-scala2.12
                num_workers: 2
          # ...

Bu örnek için databricks bundle validate çalıştırdığınızda, sonuçta elde edilen grafik aşağıdaki gibidir:

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "tasks": [
          {
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 2,
              "spark_version": "12.2.x-scala2.12"
            },
            "task_key": "my-task"
          }
        ],
        "...": "..."
      }
    }
  }
}