Delen via


Clusterinstellingen overschrijven in Databricks Asset Bundles

In dit artikel wordt beschreven hoe u de instellingen voor Azure Databricks-clusters in Databricks Asset Bundles overschrijft. Zie Wat zijn Databricks-assetbundels?

In Azure Databricks-bundelconfiguratiebestanden kunt u als volgt de clusterinstellingen koppelen aan een toewijzing op het hoogste niveau resources met de clusterinstellingen in een targets toewijzing.

Voor taken gebruikt u de job_cluster_key toewijzing in een taakdefinitie om de clusterinstellingen in een toewijzing op het hoogste niveau resources samen te voegen met de clusterinstellingen in een targets toewijzing, bijvoorbeeld (weglatingstekens geven inhoud aan, voor beknoptheid):

# ...
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.
          # ...

Als een clusterinstelling zowel in de toewijzing op het hoogste niveau resources als de targets toewijzing voor hetzelfde job_cluster_keyis gedefinieerd, heeft de instelling in de targets toewijzing voorrang op de instelling in de toewijzing op het hoogste niveau resources .

Voor Delta Live Tables-pijplijnen gebruikt u de label toewijzing binnen de cluster definitie van een pijplijn om de clusterinstellingen samen te voegen in een toewijzing op het hoogste niveau resources met de clusterinstellingen in een targets toewijzing, bijvoorbeeld (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):

# ...
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.
          # ...

Als een clusterinstelling zowel in de toewijzing op het hoogste niveau resources als de targets toewijzing voor hetzelfde labelis gedefinieerd, heeft de instelling in de targets toewijzing voorrang op de instelling in de toewijzing op het hoogste niveau resources .

Voorbeeld 1: Nieuwe taakclusterinstellingen gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten

In dit voorbeeld spark_version wordt in de toewijzing op het hoogste niveau resources gecombineerd met node_type_id en num_workers in de resources toewijzing targets om de instellingen voor de job_cluster_key benoemde naam my-cluster te definiëren (weglatingstekens geven de weggelaten inhoud aan voor beknoptheid):

# ...
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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

{
  "...": "...",
  "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"
            }
          }
        ],
        "...": "..."
      }
    }
  }
}

Voorbeeld 2: Conflicterende nieuwe taakclusterinstellingen gedefinieerd in meerdere resourcetoewijzingen

In dit voorbeeld spark_versionnum_workers worden zowel in de toewijzing op het hoogste niveau resources als in de resources toewijzing in targets. In dit voorbeeld hebben drie puntjes voorrang op en num_workers in de toewijzing spark_versiontargets op het hoogste niveau resources om de instellingen voor de job_cluster_key benoemde naam my-cluster te definiëren (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):resourcesnum_workersspark_version

# ...
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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

{
  "...": "...",
  "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"
            }
          }
        ],
        "...": "..."
      }
    }
  }
}

Voorbeeld 3: Instellingen voor pijplijnclusters die zijn gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten

In dit voorbeeld wordt node_type_id in de toewijzing op het hoogste niveau resources gecombineerd met num_workers in de resources toewijzing targets om de instellingen voor de label benoemde naam default te definiëren (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):

# ...
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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

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

Voorbeeld 4: Conflicterende pijplijnclusterinstellingen gedefinieerd in meerdere resourcetoewijzingen

In dit voorbeeld num_workers wordt zowel in de toewijzing op het hoogste niveau resources als in de resources toewijzing in targets. num_workersin de toewijzing in targetsnum_workers de resources toewijzing boven in de toewijzing op het hoogste niveauresources, om de instellingen voor de label benoemde naam default te definiëren (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):

# ...
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
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

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