Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Diese Seite verwendet JSON-Beispiele für Richtliniendefinitionen. Das neue Richtlinienformular verschleiert die meisten JSON-Richtliniendefinitionen mithilfe von Dropdownmenüs und anderen UI-Elementen. Die Richtlinienregeln und -logik sind weiterhin identisch, aber Benutzer können Definitionen konfigurieren, ohne JSON-Code zu schreiben. Wenn Sie das neue Formular nicht verwenden möchten, können Sie die Einstellung " Neues Formular " oben auf der Richtlinienseite deaktivieren.
Diese Seite ist ein Verweis auf Computerichtliniendefinitionen, einschließlich einer Liste der verfügbaren Richtlinienattribute und Einschränkungstypen. Es gibt auch Beispielrichtlinien, auf die Sie für häufige Anwendungsfälle verweisen können.
Was sind Richtliniendefinitionen?
Richtliniendefinitionen sind einzelne Richtlinienregeln, die in JSON ausgedrückt werden.
Eine Definition kann einer der Attribute, die mit der Cluster-APIgesteuert werden, eine Regel hinzufügen. Diese Definitionen legen beispielsweise eine Standardzeit für die Autoterminierung fest, verbieten Benutzern die Verwendung von Pools und erzwingen die Verwendung von Photon:
{
"autotermination_minutes": {
"type": "unlimited",
"defaultValue": 4320,
"isOptional": true
},
"instance_pool_id": {
"type": "forbidden",
"hidden": true
},
"runtime_engine": {
"type": "fixed",
"value": "PHOTON",
"hidden": true
}
}
Pro Attribut kann nur eine Einschränkung vorhanden sein. Der Pfad eines Attributs spiegelt den API-Attributnamen wider. Bei geschachtelten Attributen verkettet der Pfad die geschachtelten Attributnamen mithilfe von Punkten. Attribute, die in einer Richtliniendefinition nicht definiert sind, sind nicht beschränkt.
Konfigurieren von Richtliniendefinitionen mithilfe des neuen Richtlinienformulars
Mit dem neuen Richtlinienformular können Sie Richtliniendefinitionen mithilfe von Dropdownmenüs und anderen UI-Elementen konfigurieren. Dies bedeutet, dass Administratoren Richtlinien schreiben können, ohne die Richtliniensyntax erlernen oder referenzieren zu müssen.
JSON-Richtliniendefinitionen werden weiterhin im neuen Formular unterstützt. Diese können dem Feld "Custom JSON " unter "Erweiterte Optionen" hinzugefügt werden.
Bekannte Einschränkungen im Zusammenhang mit dem neuen Richtlinienformular
Wenn eine Richtlinie vom neuen Berechnungsrichtlinienformular nicht unterstützt wird, werden alle inkompatiblen Definitionen im benutzerdefinierten JSON-Feld im Abschnitt "Erweiterte Optionen " angezeigt. Für die folgenden Felder werden nur eine Teilmenge gültiger Richtlinien unterstützt:
-
workload_type: Die Richtlinie muss sowohl
workload_type.clients.notebooksals auchworkload_type.clients.jobsdefinieren. Jede dieser Regeln muss entweder antrueoderfalsegebunden werden. -
dbus_per_hour: Es werden nur Bereichsrichtlinien unterstützt, die
maxValueangeben undminValuenicht angeben. -
ssh_public_keys: Es werden nur feste Richtlinien unterstützt. Die
ssh_public_keysRichtlinien dürfen keine Indizes überspringen. Beispielsweise sindssh_public_keys.0,ssh_public_keys.1,ssh_public_keys.2gültig, aberssh_public_keys.0,ssh_public_keys.2,ssh_public_keys.3sind ungültig. -
cluster_log_conf: Diese
cluster_log_conf.pathkann keine Zulassungsliste oder Blockliste sein. -
init_scripts: Indizierte Richtlinien (d. h.
init_scripts.0.volumes.destination) müssen korrigiert werden. Wildcardrichtlinien (d. h.init_scripts.*.volumes.destination) müssen verboten werden. Indizierte Richtlinien dürfen keine Indizes überspringen.
Unterstützte Attribute
Richtlinien unterstützen alle Attribute, die mit der Cluster-APIgesteuert werden. Die Art der Einschränkungen, die Sie auf Attributen platzieren können, kann je nach Einstellung je nach Typ und Verhältnis zu den UI-Elementen variieren. Sie können keine Richtlinien verwenden, um Computeberechtigungen zu definieren.
Sie können auch Richtlinien verwenden, um die maximalen DBUs pro Stunde und Clustertyp festzulegen. Siehe Pfade für virtuelle Attribute.
In der folgenden Tabelle sind die unterstützten Attributpfade für Clusterrichtlinien aufgeführt:
| Attributpfad | Typ | BESCHREIBUNG |
|---|---|---|
autoscale.max_workers |
optionale Zahl | Wenn diese Option ausgeblendet ist, wird das Feld für die maximale Arbeitszahl aus der Benutzeroberfläche entfernt. |
autoscale.min_workers |
optionale Zahl | Wenn sie ausgeblendet ist, wird das Mindestarbeitsnummernfeld aus der Benutzeroberfläche entfernt. |
autotermination_minutes |
Zahl | Ein Wert von 0 stellt keine automatische Beendigung dar. Wenn sie ausgeblendet ist, wird das Kontrollkästchen für die automatische Beendigung und die Werteingabe von der Benutzeroberfläche entfernt. |
azure_attributes.availability |
Schnur | Steuert, ob die Berechnungsnutzung On-Demand- oder Spotinstanzen (SPOT_AZURE, ON_DEMAND_AZUREoder SPOT_WITH_FALLBACK_AZURE) verwendet. |
azure_attributes.first_on_demand |
Zahl | Steuert, wie viele Clusterknoten On-Demand-Instanzen verwenden, beginnend mit dem Treiberknoten. Ein Wert von 1 setzt den Treiberknoten auf On-Demand. Ein Wert, der 2 den Treiberknoten und einen Workerknoten auf On-Demand festlegt. |
azure_attributes.spot_bid_max_price |
Zahl | Steuert den maximalen Preis für Azure Spot-Instanzen. |
cluster_log_conf.path |
Schnur | Die Ziel-URL der Protokolldateien. |
cluster_log_conf.type |
Schnur | Der Typ des Protokollziels.
DBFS und VOLUMES sind die einzigen zulässigen Werte. |
cluster_name |
Schnur | Der Clustername. |
custom_tags.* |
Schnur | Steuern Sie bestimmte Tagwerte, indem Sie den Tagnamen anfügen, z. B.: custom_tags.<mytag>. |
data_security_mode |
Schnur | Legt den Zugriffsmodus des Clusters fest. Unity Catalog erfordert SINGLE_USER oder USER_ISOLATION (Standard--Zugriffsmodus in der Benutzeroberfläche). Ein Wert von NONE bedeutet, dass keine Sicherheitsfeatures aktiviert sind. |
docker_image.basic_auth.password |
Schnur | Das Kennwort für die Standardauthentifizierung des Databricks Container Services-Images. |
docker_image.basic_auth.username |
Schnur | Der Benutzername für die Standardauthentifizierung des Databricks Container Services-Images. |
docker_image.url |
Schnur | Steuert die Image-URL der Databricks-Containerdienste. Wenn sie ausgeblendet ist, wird der Abschnitt "Databricks Container Services" aus der Benutzeroberfläche entfernt. |
driver_node_type_id |
optionale Zeichenfolge | Wenn sie ausgeblendet ist, wird die Auswahl des Treiberknotentyps aus der Benutzeroberfläche entfernt. |
driver_node_type_flexibility.alternate_node_type_ids |
Schnur | Gibt alternative Knotentypen für den Treiberknoten an. Es werden nur feste Richtlinien unterstützt. Siehe "Flexible Knotentypen". |
enable_local_disk_encryption |
Boolesch | Setzen Sie true, um die Verschlüsselung der Datenträger zu aktivieren, oder false, um sie zu deaktivieren, für Datenträger, die lokal an den Cluster angehängt sind (wie über die API angegeben). |
init_scripts.*.workspace.destination
init_scripts.*.volumes.destination
init_scripts.*.abfss.destination
init_scripts.*.file.destination
|
Schnur |
* bezieht sich auf den Index des Init-Skripts im Attributarray. Siehe Schreiben von Richtlinien für Arrayattribute. |
instance_pool_id |
Schnur | Wenn driver_instance_pool_id ebenfalls definiert ist, steuert dieses Attribut den Pool, der von Workerknoten verwendet wird. Andernfalls wird der Pool für alle Clusterknoten definiert. Wenn Sie Pools für Arbeitsknoten verwenden, müssen Sie auch Pools für den Treiberknoten verwenden. Wenn sie ausgeblendet ist, wird die Poolauswahl aus der Benutzeroberfläche entfernt. |
driver_instance_pool_id |
Schnur | Wenn angegeben, konfiguriert er einen anderen Pool für den Fahrerknoten als für die Arbeitsknoten. Ohne Angabe wird instance_pool_id geerbt. Wenn Sie Pools für Arbeitsknoten verwenden, müssen Sie auch Pools für den Treiberknoten verwenden. Wenn sie ausgeblendet ist, wird die Treiberpoolauswahl aus der Benutzeroberfläche entfernt. |
is_single_node |
Boolesch | Wenn auf true festgelegt, muss die Berechnung auf einen einzelnen Knoten beschränkt sein. Dieses Attribut wird nur unterstützt, wenn der Benutzer das einfache Formular verwendet. |
node_type_id |
Schnur | Wenn sie ausgeblendet ist, wird die Auswahl des Arbeitsknotentyps aus der Benutzeroberfläche entfernt. |
worker_node_type_flexibility.alternate_node_type_ids |
Schnur | Gibt alternative Knotentypen für Workerknoten an. Es werden nur feste Richtlinien unterstützt. Siehe "Flexible Knotentypen". |
num_workers |
optionale Zahl | Wenn sie ausgeblendet ist, wird die Arbeitsnummernspezifikation aus der Benutzeroberfläche entfernt. |
runtime_engine |
Schnur | Bestimmt, ob der Cluster Photon verwendet oder nicht. Mögliche Werte sind PHOTON oder STANDARD. |
single_user_name |
Schnur | Steuert, welche Benutzer oder Gruppen der Computeressource zugewiesen werden können. |
spark_conf.* |
optionale Zeichenfolge | Steuert bestimmte Konfigurationswerte durch Anfügen des Konfigurationsschlüsselnamens, z. B. spark_conf.spark.executor.memory. |
spark_env_vars.* |
optionale Zeichenfolge | Steuert bestimmte Variablenwerte der Spark-Umgebung, indem die Umgebungsvariable angefügt wird, z. B. spark_env_vars.<environment variable name>. |
spark_version |
Schnur | Der Name der Spark-Image-Version, wie über die API (Databricks Runtime) angegeben. Sie können auch spezielle Richtlinienwerte verwenden, die die Databricks-Runtime dynamisch auswählen. Siehe Spezielle Richtlinienwerte für die Auswahl der Databricks Runtime. |
use_ml_runtime |
Boolesch | Steuert, ob eine ML-Version der Databricks Runtime verwendet werden muss. Dieses Attribut wird nur unterstützt, wenn der Benutzer das einfache Formular verwendet. |
workload_type.clients.jobs |
Boolesch | Definiert, ob die Computeressource für Aufträge verwendet werden kann. Siehe Verhindern der Verwendung von Compute für Aufträge. |
workload_type.clients.notebooks |
Boolesch | Definiert, ob die Computeressource mit Notizbüchern verwendet werden kann. Siehe Verhindern der Verwendung von Compute für Aufträge. |
Pfade für virtuelle Attribute
Diese Tabelle enthält zwei zusätzliche synthetische Attribute, die von Richtlinien unterstützt werden. Wenn Sie das neue Richtlinienformular verwenden, können diese Attribute im Abschnitt "Erweiterte Optionen " festgelegt werden.
| Attributpfad | Typ | BESCHREIBUNG |
|---|---|---|
dbus_per_hour |
Zahl | Berechnetes Attribut, das die maximalen DBUs darstellt, die eine Ressource stündlich verwenden kann, einschließlich des Treiberknotens. Diese Metrik ist eine direkte Möglichkeit zum Steuern der Kosten auf der einzelnen Computeebene. Mit Bereichseinschränkung verwenden. |
cluster_type |
Schnur | Stellt den Typ des Clusters dar, der erstellt werden kann:
Zulassen oder Blockieren, dass die angegebenen Computetypen über die Richtlinie erstellt werden. Wenn der Wert all-purpose nicht zulässig ist, wird die Richtlinie im Formular zur Erstellung von Benutzeroberflächen zur Berechnung nicht angezeigt. Wenn der job-Wert nicht zulässig ist, wird die Richtlinie nicht in der Benutzeroberfläche zum Jobs Compute angezeigt. |
Flexible Knotentypen
Mit den attributen für flexible Knotentypen können Sie alternative Knotentypen angeben, die von der Computeressource verwendet werden können, wenn der primäre Knotentyp nicht verfügbar ist. Diese Attribute weisen spezielle Richtlinienanforderungen auf:
- Es werden nur feste Richtlinien unterstützt. Alle anderen Richtlinientypen sind nicht zulässig und werden zur Richtlinienerstellungszeit abgelehnt.
- Eine leere Zeichenfolge in der Richtlinie führt dazu, dass eine leere Liste alternativer Knotentypen zugeordnet wird, was effektiv die flexiblen Knotentypen deaktiviert.
Korrektur für eine bestimmte Liste von Knotentypen
Im Gegensatz zu den entsprechenden Cluster-API-Feldern, die ein Array von Zeichenfolgen verwenden, verwenden die Berechnungsrichtlinienattribute einen einzelnen Zeichenfolgenwert, der das Array von Knotentypen als durch Kommas getrennte Liste codiert. Beispiel:
{
"worker_node_type_flexibility.alternate_node_type_ids": {
"type": "fixed",
"value": "nodeA,nodeB"
}
}
Wenn Sie die Cluster-API verwenden, um eine Rechenressource mit einer zugewiesenen Richtlinie zu erstellen, empfiehlt Databricks, die worker_node_type_flexibility- oder driver_node_type_flexibility-Felder nicht festzulegen. Wenn Sie diese Felder festlegen, müssen die Knotentypen und die Reihenfolge des Arrays genau mit der durch Trennzeichen getrennten Liste der Richtlinie übereinstimmen, sonst kann die Berechnung nicht erstellt werden. Die oben genannte Richtliniendefinition würde z. B. folgendermaßen festgelegt werden:
"worker_node_type_flexibility": {
"alternate_node_type_ids": ["nodeA", "nodeB"]
}
Deaktivieren von flexiblen Knotentypen
Um flexible Knotentypen zu deaktivieren, legen Sie den Wert auf eine leere Zeichenfolge fest. Beispiel:
{
"worker_node_type_flexibility.alternate_node_type_ids": {
"type": "fixed",
"value": ""
}
}
Spezielle Richtlinienwerte für die Auswahl der Databricks-Runtime
Das spark_version-Attribut unterstützt spezielle Werte, die dynamisch einer Databricks-Runtime-Version basierend auf dem aktuellen Satz unterstützter Databricks-Runtime-Versionen zugeordnet werden.
Die folgenden Werte können im attribut spark_version verwendet werden:
-
auto:latest: Ordnet die neueste GA Databricks Runtime-Version zu. -
auto:latest-ml: Ordnet die neueste Databricks Runtime ML-Version zu. -
auto:latest-lts: Ordnet die neueste langfristige Support (LTS)-Databricks Runtime-Version zu. -
auto:latest-lts-ml: Verweist auf die neueste LTS Databricks Runtime ML-Version. -
auto:prev-major: Ordnet die zweitneueste GA Databricks Runtime-Version zu. Wennauto:latestbeispielsweise 14.2 ist, istauto:prev-major13,3. -
auto:prev-major-ml: Ordnet die zweitneueste GA Databricks Runtime ML-Version zu. Wennauto:latestbeispielsweise 14.2 ist, istauto:prev-major13,3. -
auto:prev-lts: Ordnet die zweitneueste LTS Databricks Runtime-Version zu. Wennauto:latest-ltsbeispielsweise 13.3 ist, istauto:prev-lts12,2. -
auto:prev-lts-ml: Ordnet die zweitneueste LTS Databricks Runtime ML-Version zu. Wennauto:latest-ltsbeispielsweise 13.3 ist, istauto:prev-lts12,2.
Hinweis
Wenn Sie diese Werte verwenden, wird die Berechnung nicht automatisch aktualisiert, wenn eine neue Laufzeitversion veröffentlicht wird. Eine benutzende Person muss die Computeressource für die Databricks Runtime-Version explizit bearbeiten, um diese zu ändern.
Unterstützte Richtlinientypen
Dieser Abschnitt enthält einen Verweis für jeden der verfügbaren Richtlinientypen. Es gibt zwei Kategorien von Richtlinientypen: feste Richtlinien und einschränkende Richtlinien.
Feste Richtlinien verhindern die Benutzerkonfiguration für ein Attribut. Die beiden Typen von festen Richtlinien sind:
Das Einschränken von Richtlinien beschränkt die Optionen eines Benutzers zum Konfigurieren eines Attributs. Durch das Einschränken von Richtlinien können Sie auch Standardwerte festlegen und Attribute optional machen. Siehe Zusätzliche Einschränkungsrichtlinienfelder.
Ihre Optionen zum Einschränken von Richtlinien sind:
- Positivliste-Richtlinie
- Blocklistenrichtlinie
- Regex-Richtlinie
- Bereichsrichtlinie
- Unbegrenzte Richtlinie
Feste Richtlinie
Feste Richtlinien beschränken das Attribut auf den angegebenen Wert. Bei anderen Attributwerten als numerischen und booleschen Werten muss der Wert durch eine Zeichenfolge dargestellt oder in eine Zeichenfolge konvertiert werden.
Mit festen Richtlinien können Sie das Attribut auch auf der Benutzeroberfläche ausblenden, indem Sie das feld hidden auf truefestlegen.
interface FixedPolicy {
type: "fixed";
value: string | number | boolean;
hidden?: boolean;
}
Diese Beispielrichtlinie fixiert die Databricks-Runtime-Version und blendet das Feld in der Benutzeroberfläche aus:
{
"spark_version": { "type": "fixed", "value": "auto:latest-lts", "hidden": true }
}
Verbotene Richtlinie
Eine verbotene Richtlinie verhindert, dass Benutzer ein Attribut konfigurieren. Verbotene Richtlinien sind nur mit optionalen Attributen kompatibel.
interface ForbiddenPolicy {
type: "forbidden";
}
Mit dieser Richtlinie wird das Anfügen von Pools an die Berechnungen für Workerknoten untersagt. Pools sind auch für den Treiberknoten verboten, da driver_instance_pool_id die Richtlinie erbt.
{
"instance_pool_id": { "type": "forbidden" }
}
Positivliste-Richtlinie
Eine Zulassungsliste gibt eine Liste der Werte an, die der Benutzer beim Konfigurieren eines Attributs auswählen kann.
interface AllowlistPolicy {
type: "allowlist";
values: (string | number | boolean)[];
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
In diesem Beispiel für eine Zulassungsliste kann der Benutzer zwischen zwei Databricks-Runtime-Versionen auswählen:
{
"spark_version": { "type": "allowlist", "values": ["13.3.x-scala2.12", "12.2.x-scala2.12"] }
}
Blockliste-Richtlinie
Die Blocklistenrichtlinie listet unzulässige Werte auf. Da die Werte exakt übereinstimmen müssen, funktioniert diese Richtlinie möglicherweise nicht wie erwartet, wenn das Attribut in der Darstellung des Wertes nachlässig ist (z. B. indem führende und nachgestellte Leerzeichen erlaubt werden).
interface BlocklistPolicy {
type: "blocklist";
values: (string | number | boolean)[];
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
In diesem Beispiel wird verhindert, dass der Benutzer 7.3.x-scala2.12 als Databricks-Runtime auswählt.
{
"spark_version": { "type": "blocklist", "values": ["7.3.x-scala2.12"] }
}
RegEx-Richtlinie
Eine regex-Richtlinie beschränkt die verfügbaren Werte auf diejenigen, die dem regex entsprechen. Stellen Sie sicher, dass Ihr regulärer Ausdruck am Anfang und Ende des Zeichenfolgenwerts verankert ist.
interface RegexPolicy {
type: "regex";
pattern: string;
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
In diesem Beispiel werden die Databricks-Runtime-Versionen beschränkt, aus der ein Benutzer auswählen kann:
{
"spark_version": { "type": "regex", "pattern": "13\\.[3456].*" }
}
Bereichsrichtlinie
Eine Bereichsrichtlinie beschränkt den Wert auf einen angegebenen Bereich mithilfe der Felder minValue und maxValue. Der Wert muss eine Dezimalzahl sein.
Die numerischen Grenzwerte müssen als doppelter Gleitkommawert dargestellt werden. Um das Fehlen eines bestimmten Grenzwerts anzuzeigen, können Sie entweder minValue oder maxValueweglassen.
interface RangePolicy {
type: "range";
minValue?: number;
maxValue?: number;
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
In diesem Beispiel wird die maximale Anzahl von Mitarbeitern auf 10 beschränkt:
{
"num_workers": { "type": "range", "maxValue": 10 }
}
Unbeschränkte Richtlinie
Die unbegrenzte Richtlinie wird verwendet, um Attribute erforderlich zu machen oder den Standardwert in der Benutzeroberfläche festzulegen.
interface UnlimitedPolicy {
type: "unlimited";
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
In diesem Beispiel wird dem Computer das COST_BUCKET-Tag hinzugefügt.
{
"custom_tags.COST_BUCKET": { "type": "unlimited" }
}
So legen Sie einen Standardwert für eine Spark-Konfigurationsvariable fest, lassen aber auch das Auslassen (Entfernen) zu:
{
"spark_conf.spark.my.conf": { "type": "unlimited", "isOptional": true, "defaultValue": "my_value" }
}
Zusätzliche Felder für Einschränkungsrichtlinien
Zum Einschränken von Richtlinientypen können Sie zwei zusätzliche Felder angeben:
-
defaultValue: Der Wert, der automatisch auf der Benutzeroberfläche zur Computeerstellung aufgefüllt wird. -
isOptional– Eine Einschränkungsrichtlinie für ein Attribut macht sie automatisch erforderlich. Um das Attribut optional zu machen, legen Sie das feldisOptionalauftruefest.
Hinweis
Standardwerte werden nicht automatisch auf die Berechnung angewendet, die mit der Cluster-API erstellt wurde. Um Standardwerte mithilfe der API anzuwenden, fügen Sie den Parameter apply_policy_default_values zur Computedefinition hinzu, und legen Sie ihn auf truefest.
In dieser Beispielrichtlinie ist der Standardwert id1 für den Pool für Workerknoten angegeben, jedoch als optional festgelegt. Beim Erstellen der Berechnung können Sie einen anderen Pool auswählen bzw. festlegen, dass kein Pool verwendet wird. Wenn driver_instance_pool_id in der Richtlinie oder beim Erstellen der Berechnung nicht definiert ist, wird derselbe Pool für Workerknoten und den Treiberknoten verwendet.
{
"instance_pool_id": { "type": "unlimited", "isOptional": true, "defaultValue": "id1" }
}
Schreiben von Richtlinien für Arrayattribute
Sie können Richtlinien für Arrayattribute auf zwei Arten angeben:
- Allgemeine Einschränkungen für alle Arrayelemente. Für diese Einschränkungen wird das Platzhaltersymbol
*im Richtlinienpfad verwendet. - Spezifische Einschränkungen für ein Arrayelement bei einem bestimmten Index. Für diese Einschränkung wird eine Zahl im Pfad verwendet.
Hinweis
Die flexiblen Knotentypenattribute (worker_node_type_flexibility.alternate_node_type_ids und driver_node_type_flexibility.alternate_node_type_ids) sind Arraytypfelder in der Cluster-API, folgen jedoch nicht dem hier dokumentierten Pfadmuster für Wildcards/indizierte Pfade. Diese Attribute erfordern eine einzelne Richtlinienregel, die die vollständige Liste als durch Trennzeichen getrennte Zeichenfolge angibt. Details finden Sie unter "Flexible Knotentypen ".
Zum Beispiel beginnen bei dem Array-Attribut init_scriptsdie generischen Pfade mit init_scripts.* und die spezifischen Pfade mit init_scripts.<n>, wobei <n> ein ganzzahliger Index im Array ist (beginnend bei 0).
Sie können generische und spezifische Einschränkungen kombinieren, in diesem Fall gilt die generische Einschränkung für jedes Arrayelement, das keine bestimmte Einschränkung hat. Nur eine Richtlinienbeschränkung gilt jeweils.
In den folgenden Abschnitten finden Sie Beispiele für allgemeine Beispiele, in denen Arrayattribute verwendet werden.
Voraussetzen einschlussspezifischer Einträge
Sie können keine bestimmten Werte benötigen, ohne die Reihenfolge anzugeben. Beispiel:
{
"init_scripts.0.volumes.destination": {
"type": "fixed",
"value": "<required-script-1>"
},
"init_scripts.1.volumes.destination": {
"type": "fixed",
"value": "<required-script-2>"
}
}
Erfordern eines festen Werts für die gesamte Liste
{
"init_scripts.0.volumes.destination": {
"type": "fixed",
"value": "<required-script-1>"
},
"init_scripts.*.volumes.destination": {
"type": "forbidden"
}
}
Die Nutzung gänzlich untersagen
{
"init_scripts.*.volumes.destination": {
"type": "forbidden"
}
}
Zulassen von Einträgen, die einer bestimmten Einschränkung folgen
{
"init_scripts.*.volumes.destination": {
"type": "regex",
"pattern": ".*<required-content>.*"
}
}
Korrigieren eines bestimmten Satzes von Init-Skripten
Bei init_scripts Pfaden kann das Array eine von mehreren Strukturen enthalten, für die je nach Anwendungsfall möglicherweise alle möglichen Varianten behandelt werden müssen. Wenn Sie z. B. einen bestimmten Satz von Init-Skripts anfordern möchten und eine beliebige Variante der anderen Version nicht zulassen möchten, können Sie das folgende Muster verwenden:
{
"init_scripts.0.volumes.destination": {
"type": "fixed",
"value": "<volume-paths>"
},
"init_scripts.1.volumes.destination": {
"type": "fixed",
"value": "<volume-paths>"
},
"init_scripts.*.workspace.destination": {
"type": "forbidden"
},
"init_scripts.*.abfss.destination": {
"type": "forbidden"
},
"init_scripts.*.file.destination": {
"type": "forbidden"
}
}
Richtlinienbeispiele
Dieser Abschnitt enthält Richtlinienbeispiele, die Sie als Verweise zum Erstellen eigener Richtlinien verwenden können. Sie können auch die von Azure Databricks bereitgestellten Richtlinienfamilien als Vorlagen für allgemeine Richtlinienanwendungsfälle verwenden.
- Allgemeine Berechnungsrichtlinie
- Festlegen von Grenzwerten für die Rechenleistung von Lakeflow Spark Declarative Pipelines
- Einfache mittelgroße Richtlinie
- Richtlinie „Nur Aufträge“
- Richtlinie für externen Metastore
- Verhindern der Verwendung von Compute für Aufträge
- Entfernen der automatischen Skalierungsrichtlinie
- Erzwingung von benutzerdefinierten Tags
Allgemeine Computerrichtlinie
Eine allgemeine Berechnungsrichtlinie, die benutzerleitet und einige Funktionen einschränkt, wobei Tags erforderlich sind, die maximale Anzahl von Instanzen eingeschränkt und Timeout erzwungen wird.
{
"instance_pool_id": {
"type": "forbidden",
"hidden": true
},
"spark_version": {
"type": "regex",
"pattern": "12\\.[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"
}
}
Definieren von Grenzwerten für die Berechnung von Lakeflow Spark Declarative Pipelines
Hinweis
Bei der Verwendung von Richtlinien zum Konfigurieren der Rechnerressourcen von Lakeflow Spark Declarative Pipelines empfiehlt Databricks, eine einzelne Richtlinie sowohl auf die default als auch auf die maintenance anzuwenden.
Um eine Richtlinie für eine Pipelinecomputeressource zu konfigurieren, erstellen Sie eine Richtlinie mit dem auf cluster_type festgelegten Feld dlt. Im folgenden Beispiel wird eine minimale Richtlinie für einen Lakeflow Spark Declarative Pipelines-Compute erstellt:
{
"cluster_type": {
"type": "fixed",
"value": "dlt"
},
"num_workers": {
"type": "unlimited",
"defaultValue": 3,
"isOptional": true
},
"node_type_id": {
"type": "unlimited",
"isOptional": true
},
"spark_version": {
"type": "unlimited",
"hidden": true
}
}
Einfache mittlere Politik
Ermöglicht Benutzern das Erstellen einer mittelgroßen Berechnung mit minimaler Konfiguration. Bei der Erstellung ist der Berechnungsname das einzige erforderliche Feld. Die übrigen Felder sind feste oder verborgene Felder.
{
"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": "auto:latest-ml",
"hidden": true
},
"custom_tags.team": {
"type": "fixed",
"value": "product"
}
}
Richtlinie „Nur Aufträge“
Ermöglicht Benutzern das Erstellen eines Jobs Compute zum Ausführen von Aufträgen. Benutzer können mit dieser Richtlinie keinen All-Purpose Compute erstellen.
{
"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": "unlimited",
"defaultValue": "auto:latest-lts"
},
"custom_tags.team": {
"type": "fixed",
"value": "product"
}
}
Richtlinie für externen Metastore
Ermöglicht Benutzern das Erstellen einer Berechnung mit einem von Administratoren definierten Metastore, der bereits angefügt ist. Dies ist nützlich, damit Benutzer ihre eigene Berechnung erstellen können, ohne dass zusätzliche Konfiguration erforderlich ist.
{
"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>"
}
}
Verhindern der Verwendung von Compute für Aufträge
Diese Richtlinie verhindert, dass Benutzer die Berechnung zum Ausführen von Aufträgen verwenden. Benutzer können die Berechnung nur mit Notizbüchern verwenden.
{
"workload_type.clients.notebooks": {
"type": "fixed",
"value": true
},
"workload_type.clients.jobs": {
"type": "fixed",
"value": false
}
}
Richtlinie zum Entfernen der automatischen Skalierung
Diese Richtlinie deaktiviert die automatische Skalierung und ermöglicht es dem Benutzer, die Anzahl der Mitarbeiter innerhalb eines bestimmten Bereichs festzulegen.
{
"num_workers": {
"type": "range",
"maxValue": 25,
"minValue": 1,
"defaultValue": 5
}
}
Erzwingung von benutzerdefinierten Tags
Verwenden Sie das attribut custom_tags.<tag-name>, um einer Richtlinie eine Computetagregel hinzuzufügen.
Beispielsweise muss jeder Benutzer, der diese Richtlinie verwendet, ein COST_CENTER Tag mit 9999, 9921 oder 9531 ausfüllen, damit die Berechnung gestartet wird:
{ "custom_tags.COST_CENTER": { "type": "allowlist", "values": ["9999", "9921", "9531"] } }