Gérer les stratégies de cluster

Important

Cette fonctionnalité est disponible en préversion publique.

Une stratégie de cluster est un outil permettant de limiter les autorisations de création de cluster d’un utilisateur ou d’un groupe en fonction d’un ensemble de règles de stratégie.

Les stratégies de cluster vous permettent de :

  • Limiter les utilisateurs à la création de clusters avec des paramètres prescrits.
  • Limiter les utilisateurs à la création d’un certain nombre de clusters.
  • Simplifier l’interface utilisateur et permettre à davantage d’utilisateurs de créer leurs propres clusters (en corrigeant et en masquant certaines valeurs).
  • Contrôlez les coûts en limitant le coût maximal du cluster (en définissant des limites sur les attributs dont les valeurs contribuent au tarif horaire).

Pour obtenir une présentation des stratégies de cluster et des recommandations de configuration, consultez la vidéo sur les stratégies de cluster Databricks :

Cet article se concentre sur la gestion des stratégies à l’aide de l’interface utilisateur. Vous pouvez également utiliser l’API Stratégies de cluster 2.0 et les Permissions API 2.0 pour gérer les stratégies.

Stratégie Personal Compute

Personal Compute est une stratégie de cluster par défaut gérée par Azure Databricks disponible sur tous les espaces de travail Azure Databricks. Fournir aux utilisateurs un accès à cette stratégie leur permet de créer des ressources de calcul à ordinateur unique dans Azure Databricks pour leur utilisation individuelle.

Les administrateurs peuvent gérer l’accès et personnaliser les règles de stratégie pour répondre aux besoins de leur espace de travail.

Spécifications

Les stratégies de cluster nécessitent le plan Premium.

Règles de mise en application

Vous pouvez exprimer les types de contraintes suivants dans les règles de stratégie :

  • Valeur fixe avec élément de contrôle désactivé
  • Valeur fixe avec contrôle masqué dans l’interface utilisateur (la valeur est visible dans la vue JSON)
  • Valeur de l’attribut limitée à un ensemble de valeurs (liste verte ou liste rouge)
  • Valeur de l’attribut correspondant à une expression régulière donnée
  • Attribut numérique limité à une certaine plage
  • Valeur par défaut utilisée par l’interface utilisateur avec contrôle activé

Attributs de cluster gérés

Les stratégies de cluster prennent en charge tous les attributs de cluster contrôlés avec l’API Clusters 2.0. Le type spécifique de restrictions prises en charge peut varier selon le champ (en fonction de leur type et de la relation avec les éléments de l’interface utilisateur du formulaire de cluster).

En outre, les stratégies de cluster prennent en charge les attributs synthétiques suivants :

  • Métrique de type « DBU max par heure », qui correspond au nombre maximal de DBU qu’un cluster peut utiliser à l’heure. Cette métrique est un moyen direct de contrôler le coût au niveau du cluster individuel.
  • Limite sur la source qui crée le cluster : service des travaux (clusters de travail), interface utilisateur de clusters, API REST de clusters (clusters universels).

Attributs de cluster non gérés

Les attributs de cluster suivants ne peuvent pas être restreints dans une stratégie de cluster :

Définir une stratégie de cluster

Vous définissez une stratégie de cluster dans une définition de stratégie JSON, que vous ajoutez quand vous créez la stratégie de cluster.

Créer une stratégie de cluster

Vous créez une stratégie de cluster à l’aide de l’interface utilisateur des stratégies de cluster ou de l’API Stratégies de cluster 2.0. Pour créer une stratégie de cluster à l’aide de l’interface utilisateur :

  1. Cliquez sur compute iconCalcul dans la barre latérale.
  2. Cliquez sur l’onglet Stratégies.
  3. Cliquez sur Stratégie Créer un cluster.
  4. Nommez la stratégie. Les noms de stratégie ne respectent pas la casse.
  5. Si vous le souhaitez, sélectionnez la famille de stratégies dans la liste déroulante Famille . Cela détermine le modèle à partir duquel vous générez la stratégie. Consultez famille de stratégies.
  6. Entrez une description de la stratégie. Cela permet aux autres personnes de connaître l’objectif de la stratégie.
  7. Dans l’onglet Définition, collez une définition de stratégie.
  8. Cliquez sur Créer.

Cloner une stratégie de cluster existante

Vous pouvez créer une stratégie de cluster en clonant une stratégie existante. Pour cloner une stratégie de cluster à l’aide de l’interface utilisateur :

  1. Cliquez sur compute iconCalcul dans la barre latérale.
  2. Cliquez sur l’onglet Stratégies.
  3. Sélectionnez la requête que vous souhaitez cloner.
  4. Cliquez sur Cloner.
  5. Dans la page suivante, tous les champs sont préremplis avec les valeurs de la stratégie existante. Changez les valeurs des champs que vous souhaitez modifier, puis cliquez sur Créer.

Gérer les autorisations de stratégie de cluster

Les administrateurs d’un espace de travail ont accès à toutes les stratégies.

Lors de la création d’un cluster, les non-administrateurs peuvent uniquement sélectionner les stratégies pour lesquelles ils ont reçu une autorisation. Si un utilisateur est autorisé à créer un cluster, il peut également sélectionner la stratégie Non restreint afin de créer des clusters entièrement configurables.

Remarque

Si l’utilisateur n’a accès à aucune stratégie, la liste déroulante de stratégies ne s’affiche pas.

Ajouter une autorisation de stratégie de cluster

Pour ajouter une autorisation de stratégie de cluster à l’aide de l’interface utilisateur :

  1. Cliquez sur compute iconCalcul dans la barre latérale.
  2. Cliquez sur l’onglet Stratégies.
  3. Cliquez sur la stratégie que vous souhaitez mettre à jour.
  4. Cliquez sur l'onglet Autorisations.
  5. Dans la colonne Nom, sélectionnez un principal.
  6. Dans la colonne Autorisation, sélectionnez une autorisation.
  7. Cliquez sur Add.

Supprimer une autorisation de stratégie de cluster

Pour supprimer une autorisation de stratégie de cluster à l’aide de l’interface utilisateur :

  1. Cliquez sur compute iconCalcul dans la barre latérale.
  2. Cliquez sur l’onglet Stratégies.
  3. Cliquez sur la stratégie que vous souhaitez mettre à jour.
  4. Cliquez sur l'onglet Autorisations.
  5. Cliquez sur l’icône Supprimer dans la ligne d’autorisation.

Limiter le nombre de clusters par utilisateur

Les autorisations de stratégie vous permettent de définir un nombre maximal de clusters par utilisateur. Cela détermine le nombre de clusters qu’un utilisateur peut créer avec cette stratégie. Si l’utilisateur dépasse la limite, l’opération échoue.

Pour limiter le nombre de clusters qu’un utilisateur peut créer avec une stratégie, utilisez le paramètre Nombre maximal de clusters par utilisateur sous l’onglet Autorisations dans l’interface utilisateur des stratégies de cluster.

Remarque

Azure Databricks n’arrête aucun cluster de manière proactive pour respecter la limite. Si un utilisateur a trois clusters en cours d’exécution avec la stratégie et que l’administrateur réduit la limite à un, les trois clusters continuent à s’exécuter. Les clusters en trop doivent être arrêtés manuellement pour que la limite soit respectée.

Modifier une stratégie de cluster à l’aide de l’interface utilisateur

Vous modifiez une stratégie de cluster à l’aide de l’interface utilisateur des stratégies de cluster ou de l’API Stratégies de cluster 2.0. Pour modifier une stratégie de cluster à l’aide de l’interface utilisateur :

  1. Cliquez sur compute iconCalcul dans la barre latérale.

  2. Cliquez sur l’onglet Stratégies de cluster.

    Image d’onglet Stratégies de cluster

  3. Sélectionnez la stratégie à modifier.

  4. Cliquez sur Modifier.

  5. Dans l’onglet Définition, modifiez la définition de stratégie.

  6. Cliquez sur Update.

Supprimer une stratégie de cluster à l’aide de l’interface utilisateur

Vous supprimez une stratégie de cluster à l’aide de l’interface utilisateur des stratégies de cluster ou de l’API Stratégies de cluster 2.0. Pour supprimer une stratégie de cluster à l’aide de l’interface utilisateur :

  1. Cliquez sur compute iconCalcul dans la barre latérale.

  2. Cliquez sur l’onglet Stratégies de cluster.

    Onglet Stratégies de cluster sélectionné

  3. Sélectionnez la stratégie que vous souhaitez supprimer.

  4. Cliquez sur Supprimer.

  5. Cliquez sur Delete (Supprimer) pour confirmer.

Familles de stratégies de cluster

Lorsque vous créez une stratégie de cluster, vous pouvez choisir d’utiliser une famille de stratégies. Les familles de stratégies vous fournissent des règles de stratégie préremplies pour les cas d’usage courants du calcul. Par exemple, il existe une famille de stratégies de calcul personnel dans laquelle vous pouvez créer une stratégie personnalisée basée sur la stratégie de calcul personnelle.

Lorsque vous utilisez une famille de stratégies, les règles de votre stratégie sont héritées de la famille de stratégies. Après avoir sélectionné une famille de stratégies, vous pouvez créer la stratégie telle qu’elle est, ou choisir d’ajouter des règles ou de remplacer les règles spécifiées.

Créer une stratégie personnalisée à l’aide d’une famille de stratégies

Pour personnaliser une stratégie à l’aide d’une famille de stratégies :

  1. Cliquez sur compute iconCalcul dans la barre latérale.
  2. Cliquez sur l’onglet Stratégies.
  3. Cliquez sur Stratégie Créer un cluster.
  4. Nommez la stratégie. Les noms de stratégie ne respectent pas la casse.
  5. Sélectionnez la famille de stratégies dans la liste déroulante Famille .
  6. Sous l’onglet Définitions, cliquez sur Modifier.
  7. Un modal s’affiche dans lequel vous pouvez remplacer les définitions de stratégie. Dans la section Remplacements, ajoutez les définitions mises à jour, puis cliquez sur OK.

Définitions de stratégie de cluster

Une définition de stratégie de cluster est une collection de définitions de stratégie individuelles exprimées en JSON.

Dans cette section :

Définitions de stratégies

Une définition de stratégie est un mappage entre une chaîne de chemin définissant un attribut et un type de limite. Il ne peut y avoir qu’une seule limitation par attribut. Un chemin est spécifique au type de ressource et reflète le nom de l’attribut de l’API de création de ressources. Si la création de ressources utilise des attributs imbriqués, le chemin concatène les noms des attributs imbriqués à l’aide de points. Les attributs qui ne sont pas définis dans la définition de stratégie sont illimités lorsque vous créez un cluster à l’aide de la stratégie.

interface Policy {
  [path: string]: PolicyElement
}

Éléments de stratégie

Un élément de stratégie spécifie l’un des types de limites pris en charge sur un attribut donné et éventuellement une valeur par défaut. Vous pouvez spécifier une valeur par défaut sans définir de limite sur l’attribut dans la stratégie.

type PolicyElement = FixedPolicy | ForbiddenPolicy | (LimitingPolicyBase & LimitingPolicy);
type LimitingPolicy = AllowlistPolicy | BlocklistPolicy | RegexPolicy | RangePolicy | UnlimitedPolicy;

Cette section décrit les types de stratégies :

Stratégie fixe

Limitez la valeur à la valeur spécifiée. Pour les valeurs d’attribut autres que numériques et booléennes, la valeur de l’attribut doit être représentée par une chaîne ou convertible en une chaîne. Éventuellement, l’attribut peut être masqué dans l’interface utilisateur lorsque l’indicateur hidden est présent et défini sur true. Une stratégie fixe ne peut pas spécifier une valeur par défaut.

interface FixedPolicy {
    type: "fixed";
    value: string | number | boolean;
    hidden?: boolean;
}
Exemple
{
  "spark_version": { "type": "fixed", "value": "7.3.x-scala2.12", "hidden": true }
}

Stratégie interdite

Pour un attribut facultatif, empêchez l’utilisation de l’attribut.

interface ForbiddenPolicy {
    type: "forbidden";
}
Exemple

Cette stratégie interdit l’attachement de pools au cluster pour les nœuds worker. Les pools sont également interdits pour le nœud de pilote, car driver_instance_pool_id hérite de la stratégie.

{
  "instance_pool_id": { "type": "forbidden" }
}

Stratégies de limitation : champs communs

Dans une stratégie de limitation, vous pouvez spécifier deux champs supplémentaires :

  • defaultValue : valeur qui remplit le formulaire de création de cluster dans l’interface utilisateur.
  • isOptional : une stratégie de limitation sur un attribut le rend obligatoire. Pour rendre l’attribut facultatif, affectez la valeur true au champ isOptional.
interface LimitedPolicyBase {
    defaultValue?: string | number | boolean;
    isOptional?: boolean;
}
Exemple
{
  "instance_pool_id": { "type": "unlimited", "isOptional": true, "defaultValue": "id1" }
}

Cet exemple de stratégie spécifie la valeur par défaut id1 pour le pool des nœuds worker, mais le rend facultatif. Lorsque vous créez le cluster, vous pouvez sélectionner un autre pool ou choisir de ne pas en utiliser un. Si driver_instance_pool_id n’est pas défini dans la stratégie ou lors de la création du cluster, le même pool est utilisé pour les nœuds worker et le nœud de pilote.

Stratégie de liste verte

Liste de valeurs autorisées.

interface AllowlistPolicy {
  type: "allowlist";
  values: (string | number | boolean)[];
}
Exemple
{
  "spark_version":  { "type": "allowlist", "values": [ "7.2.x-scala2.12", "7.3.x-scala2.12" ] }
}

Stratégie de liste rouge

Liste de valeurs non autorisées. Étant donné que les valeurs doivent être des correspondances exactes, cette stratégie peut ne pas fonctionner comme prévu lorsque l’attribut est modéré dans la manière dont la valeur est représentée (par exemple, en autorisant les espaces de début et de fin).

interface BlocklistPolicy {
  type: "blocklist";
  values: (string | number | boolean)[];
}
Exemple
{
  "spark_version":  { "type": "blocklist", "values": [ "4.0.x-scala2.11" ] }
}

Stratégie d’expression régulière

Limite la valeur à celles correspondant à l’expression régulière. Pour des raisons de sécurité, lors de la mise en correspondance, l’expression régulière est toujours ancrée au début et à la fin de la valeur de chaîne.

interface RegexPolicy {
  type: "regex";
  pattern: string;
}
Exemple
{
  "spark_version":  { "type": "regex", "pattern": "5\\.[3456].*" }
}

Stratégie de plage

Limite la valeur à la plage spécifiée par les attributs minValue et maxValue. La valeur doit être un nombre décimal. Les limites numériques doivent pouvoir être représentées en tant que valeur à virgule flottante double. Pour indiquer l’absence d’une limite spécifique, vous pouvez omettre l’une des valeurs minValue, maxValue.

interface RangePolicy {
  type: "range";
  minValue?: number;
  maxValue?: number;
}
Exemple
{
  "num_workers":  { "type": "range", "maxValue": 10 }
}

Stratégie illimitée

Ne définit pas de limites de valeur. Vous pouvez utiliser ce type de stratégie pour rendre les attributs obligatoires ou pour définir la valeur par défaut dans l’interface utilisateur.

interface UnlimitedPolicy {
  type: "unlimited";
}
Exemple

Pour exiger l’ajout de l’étiquette COST_BUCKET :

{
  "custom_tags.COST_BUCKET":  { "type": "unlimited" }
}

Pour définir la valeur par défaut d’une variable de configuration Spark, mais autoriser également l’omission (la suppression) de celle-ci :

{
  "spark_conf.spark.my.conf":  { "type": "unlimited", "isOptional": true, "defaultValue": "my_value" }
}

Chemins des attributs de stratégie de cluster

Le tableau suivant répertorie les chemins des attributs de stratégie de cluster pris en charge.

Chemin de l’attribut Type Description
autoscale.max_workers nombre facultatif En cas de masquage, supprime le champ du nombre maximal de rôles de travail de l’interface utilisateur.
autoscale.min_workers nombre facultatif En cas de masquage, supprime le champ du nombre minimal de rôles de travail de l’interface utilisateur.
autotermination_minutes nombre La valeur 0 représente l’absence d’arrêt automatique. En cas de masquage, supprime la case à cocher d’arrêt automatique et l’entrée de valeur de l’interface utilisateur.
cluster_log_conf.path string URL de destination des fichiers journaux.
cluster_log_conf.type string DBFS
cluster_name string le nom du cluster ;
custom_tags.* string Contrôlez des valeurs d’étiquette spécifiques en ajoutant le nom de l’étiquette, par exemple : custom_tags.<mytag>.
docker_image.basic_auth.password string Mot de passe pour l’authentification de base de l’image des services de conteneur Databricks.
docker_image.basic_auth.username string Nom d’utilisateur pour l’authentification de base de l’image des services de conteneur Databricks.
docker_image.url string Contrôle l’URL de l’image des services de conteneur Databricks. En cas de masquage, supprime la section des services de conteneur Databricks de l’interface utilisateur.
driver_node_type_id chaîne facultative En cas de masquage, supprime la sélection du type de nœud de pilote de l’interface utilisateur.
enable_local_disk_encryption boolean Affectez la valeur true pour activer ou false pour désactiver le chiffrement des disques qui sont attachés localement au cluster (comme spécifié par l’API).
init_scripts.*.dbfs.destination, init_scripts.*.file.destination string * fait référence à l’index du script init dans le tableau d’attributs. Consultez Attributs de tableau.
instance_pool_id string Contrôle le pool utilisé par les nœuds worker si driver_instance_pool_id est également défini, ou pour tous les nœuds de cluster dans le cas contraire. Si vous utilisez des pools pour les nœuds worker, vous devez également utiliser des pools pour le nœud de pilote. En cas de masquage, supprime la sélection de pool de l’interface utilisateur.
driver_instance_pool_id string Si ce chemin est spécifié, configure un pool pour le nœud de pilote différent de celui pour les nœuds worker. S’il n’est pas spécifié, hérite de instance_pool_id. Si vous utilisez des pools pour les nœuds worker, vous devez également utiliser des pools pour le nœud de pilote. En cas de masquage, supprime la sélection de pool de pilotes de l’interface utilisateur.
node_type_id string En cas de masquage, supprime la sélection du type de nœud worker de l’interface utilisateur.
num_workers nombre facultatif En cas de masquage, supprime la spécification du nombre de rôles de travail de l’interface utilisateur.
single_user_name string Nom d’utilisateur pour l’accès mono-utilisateur pour le passage des informations d’identification.
spark_conf.* chaîne facultative Contrôle des valeurs de configuration spécifiques en ajoutant le nom de la clé de configuration, par exemple : spark_conf.spark.executor.memory.
spark_env_vars.* chaîne facultative Contrôle des valeurs de variable d’environnement Spark spécifiques en ajoutant la variable d’environnement, par exemple : spark_env_vars.<environment variable name>.
spark_version string Nom de version de l’image Spark (comme spécifié par l’API).

Chemins des attributs virtuels de stratégie de cluster

Chemin de l’attribut Type Description
dbus_per_hour nombre Attribut calculé représentant (au maximum, dans le cas de clusters de mise à l’échelle automatique) le coût des DBU du cluster, y compris le nœud de pilote. Pour une utilisation avec limitation de plage.
cluster_type string Représente le type de cluster qui peut être créé :

* all-purpose pour les clusters universels Azure Databricks
* job pour les clusters de travail créés par le planificateur de travaux
* dltpour les clusters créés pour les pipelines Delta Live Tables

Autorisez ou bloquez la création de types de clusters spécifiés à partir de la stratégie. Si la valeur all-purpose n’est pas autorisée, la stratégie n’est pas affichée dans le formulaire de création de cluster universel. Si la valeur job n’est pas autorisée, la stratégie n’est pas affichée dans le formulaire de nouveau cluster de travail.

Attributs des tableaux

Vous pouvez spécifier des stratégies pour les attributs de tableau de deux manières :

  • Limitations génériques pour tous les éléments de tableau. Ces limitations utilisent le caractère générique * dans le chemin de la stratégie.
  • Limitations spécifiques pour un élément de tableau au niveau d’un index spécifique. Ces limitations utilisent un nombre dans le chemin.

Par exemple, pour l’attribut de tableau init_scripts, les chemins génériques commencent par init_scripts.* et les chemins spécifiques par init_scripts.<n>, où <n> est un index d’entiers dans le tableau (à partir de 0). Vous pouvez combiner des limitations génériques et spécifiques, auquel cas la limitation générique s’applique à chaque élément de tableau qui n’a pas de limitation spécifique. Dans chaque cas, une seule limitation de stratégie s’applique.

Les cas d’usage classiques pour les stratégies de tableau sont les suivants :

  • Exiger des entrées spécifiques à l’inclusion. Par exemple :

    {
      "init_scripts.0.dbfs.destination": {
        "type": "fixed",
        "value": "<required-script-1>"
      },
      "init_scripts.1.dbfs.destination": {
        "type": "fixed",
        "value": "<required-script-2>"
      }
    }
    

    Vous ne pouvez pas exiger des valeurs spécifiques sans spécifier l’ordre.

  • Exiger une valeur fixe de la liste entière. Par exemple :

    {
      "init_scripts.0.dbfs.destination": {
        "type": "fixed",
        "value": "<required-script-1>"
      },
      "init_scripts.*.dbfs.destination": {
        "type": "forbidden"
      }
    }
    
  • Interdire complètement l’utilisation.

    {
      "init_scripts.*.dbfs.destination": {
        "type": "forbidden"
      }
    }
    
  • Autoriser un nombre quelconque d’entrées, mais uniquement selon une restriction spécifique. Par exemple :

    {
       "init_scripts.*.dbfs.destination": {
        "type": "regex",
        "pattern": ".*<required-content>.*"
      }
    }
    

Dans le cas de chemins init_scripts, le tableau peut contenir l’une des différentes structures pour lesquelles toutes les variantes possibles peuvent avoir besoin d’être gérées en fonction du cas d’usage. Par exemple, pour exiger un ensemble spécifique de scripts init et interdire toute variante de l’autre version, vous pouvez utiliser le modèle suivant :

{
  "init_scripts.1.dbfs.destination": {
    "type": "fixed",
    "value": "dbfs:/<dbfs-path>"
  },
  "init_scripts.*.dbfs.destination": {
    "type": "forbidden"
  },
  "init_scripts.*.file.destination": {
    "type": "forbidden"
  },
}

Exemples de stratégies de cluster

Dans cette section :

Stratégie de cluster générale

Stratégie de cluster universelle destinée à guider les utilisateurs et à restreindre certaines fonctionnalités, tout en exigeant des étiquettes, en limitant le nombre maximal d’instances et en appliquant un délai d’expiration.

{
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "fixed",
    "value": "singleNode",
    "hidden": true
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "spark_version": {
    "type": "regex",
    "pattern": "7\\.[0-9]+\\.x-scala.*"
  },
  "node_type_id": {
    "type": "allowlist",
    "values": [
      "Standard_L4s",
      "Standard_L8s",
      "Standard_L16s"
    ],
    "defaultValue": "Standard_L16s_v2"
  },
  "driver_node_type_id": {
    "type": "fixed",
    "value": "Standard_L16s_v2",
    "hidden": true
  },
  "autoscale.min_workers": {
    "type": "fixed",
    "value": 1,
    "hidden": true
  },
  "autoscale.max_workers": {
    "type": "range",
    "maxValue": 25,
    "defaultValue": 5
  },
  "autotermination_minutes": {
    "type": "fixed",
    "value": 30,
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

Stratégie de taille moyenne simple

Permet aux utilisateurs de créer un cluster de taille moyenne avec une configuration minimale. Le seul champ obligatoire au moment de la création est le nom du cluster ; le reste est fixe et masqué.

{
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "forbidden",
    "hidden": true
  },
  "autoscale.min_workers": {
    "type": "fixed",
    "value": 1,
    "hidden": true
  },
  "autoscale.max_workers": {
    "type": "fixed",
    "value": 10,
    "hidden": true
  },
  "autotermination_minutes": {
    "type": "fixed",
    "value": 60,
    "hidden": true
  },
  "node_type_id": {
    "type": "fixed",
    "value": "Standard_L8s_v2",
    "hidden": true
  },
  "driver_node_type_id": {
    "type": "fixed",
    "value": "Standard_L8s_v2",
    "hidden": true
  },
  "spark_version": {
    "type": "fixed",
    "value": "7.3.x-scala2.12",
    "hidden": true
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

Stratégie de travail uniquement

Permet aux utilisateurs de créer des clusters de travail et d’exécuter des travaux à l’aide du cluster. Les utilisateurs ne peuvent pas créer de cluster universel à l’aide de cette stratégie.

{
  "cluster_type": {
    "type": "fixed",
    "value": "job"
  },
  "dbus_per_hour": {
    "type": "range",
    "maxValue": 100
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "num_workers": {
    "type": "range",
    "minValue": 1
  },
  "node_type_id": {
    "type": "regex",
    "pattern": "Standard_[DLS]*[1-6]{1,2}_v[2,3]"
  },
  "driver_node_type_id": {
    "type": "regex",
    "pattern": "Standard_[DLS]*[1-6]{1,2}_v[2,3]"
  },
  "spark_version": {
    "type": "regex",
    "pattern": "7\\.[0-9]+\\.x-scala.*"
  },
  "custom_tags.team": {
    "type": "fixed",
    "value": "product"
  }
}

Stratégie à nœud unique

Permet aux utilisateurs de créer un cluster à nœud unique sans nœud worker avec Spark activé en mode local. Pour obtenir des exemples de stratégies, consultez Stratégie des clusters mononœuds.

Stratégie de metastore externe

Permet aux utilisateurs de créer un cluster avec un metastore défini par l’administrateur déjà attaché. Cela est utile pour permettre aux utilisateurs de créer leurs propres clusters sans nécessiter de configuration supplémentaire.

{
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionURL": {
      "type": "fixed",
      "value": "jdbc:sqlserver://<jdbc-url>"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionDriverName": {
      "type": "fixed",
      "value": "com.microsoft.sqlserver.jdbc.SQLServerDriver"
  },
  "spark_conf.spark.databricks.delta.preview.enabled": {
      "type": "fixed",
      "value": "true"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionUserName": {
      "type": "fixed",
      "value": "<metastore-user>"
  },
  "spark_conf.spark.hadoop.javax.jdo.option.ConnectionPassword": {
      "type": "fixed",
      "value": "<metastore-password>"
  }
}