Referenční informace k zásadám výpočetních prostředků
Tento článek je odkaz na definice výpočetních zásad. Články obsahují odkazy na dostupné atributy zásad a typy omezení. Existují také ukázkové zásady, na které můžete odkazovat pro běžné případy použití.
Co jsou definice zásad?
Definice zásad jsou jednotlivá pravidla zásad vyjádřená ve formátu JSON. Definice může přidat pravidlo do libovolného atributu řízeného rozhraním Clusters API. Tyto definice například nastavují výchozí čas automatického ukončení, zakazují uživatelům používat pooly a vynucují používání Photonu:
{
"autotermination_minutes" : {
"type" : "unlimited",
"defaultValue" : 4320,
"isOptional" : true
},
"instance_pool_id": {
"type": "forbidden",
"hidden": true
},
"runtime_engine": {
"type": "fixed",
"value": "PHOTON",
"hidden": true
}
}
Pro každý atribut může existovat pouze jedno omezení. Cesta atributu odráží název atributu rozhraní API. U vnořených atributů cesta zřetězí názvy vnořených atributů pomocí tečkou. Atributy, které nejsou definovány v definici zásady, nebudou omezeny.
podporované atributy
Zásady podporují všechny atributy řízené rozhraním API clusterů . Typ omezení, která můžete umístit na atributy, se může lišit v závislosti na jejich typu a vztahu k prvkům uživatelského rozhraní. Zásady nelze použít k definování výpočetních oprávnění.
Zásady můžete použít také k nastavení maximálního počtu jednotek DBU za hodinu a typ clusteru. Viz cesty k virtuálním atributům.
Následující tabulka uvádí podporované cesty atributů zásad:
Cesta k atributu | Typ | Popis |
---|---|---|
autoscale.max_workers |
volitelné číslo | Pokud je pole maximálního počtu pracovních procesů skryté, odebere z uživatelského rozhraní pole maximálního počtu pracovních procesů. |
autoscale.min_workers |
volitelné číslo | Je-li skryté, odebere z uživatelského rozhraní pole s minimálním počtem pracovníků. |
autotermination_minutes |
číslo | Hodnota 0 představuje žádné automatické ukončení. Při skrytí odebere z uživatelského rozhraní políčko pro automatické ukončení a pole pro zadání hodnoty. |
azure_attributes.availability |
řetězec | Řídí výpočetní prostředky využívající instance on-demand nebo spot instance (ON_DEMAND_AZURE nebo SPOT_WITH_FALLBACK_AZURE ). |
azure_attributes.first_on_demand |
číslo | Určuje počet uzlů pro instance na vyžádání. |
azure_attributes.spot_bid_max_price |
číslo | Určuje maximální cenu spotových instancí Azure. |
cluster_log_conf.path |
řetězec | Cílová adresa URL souborů protokolu. |
cluster_log_conf.type |
řetězec | Typ cíle protokolu.
DBFS je jediná přijatelná hodnota. |
cluster_name |
řetězec | Název clusteru. |
custom_tags.* |
řetězec | Hodnoty konkrétních značek můžete řídit připojením názvu značky, například: custom_tags.<mytag> . |
data_security_mode |
řetězec | Nastaví režim přístupu clusteru. Katalog Unity vyžaduje SINGLE_USER nebo USER_ISOLATION (režim sdíleného přístupu v uživatelském rozhraní). Hodnota NONE znamená, že nejsou povolené žádné funkce zabezpečení. |
docker_image.basic_auth.password |
řetězec | Heslo pro základní ověřování obrazu služby Databricks Container Services |
docker_image.basic_auth.username |
řetězec | Uživatelské jméno pro základní ověřování obrazu Databricks Container Services. |
docker_image.url |
řetězec | Řídí adresu URL obrazu služby Databricks Container Services. Pokud je tato možnost skrytá, odebere část Databricks Container Services z uživatelského rozhraní. |
driver_node_type_id |
volitelný řetězec | Pokud je skrytý, odebere výběr typu uzlu ovladače z uživatelského rozhraní. |
enable_local_disk_encryption |
booleovský | Nastavte na true povolit nebo false zakázat šifrování disků, které jsou místně připojené ke clusteru (jak je uvedeno prostřednictvím rozhraní API). |
init_scripts.*.workspace.destination
init_scripts.*.volumes.destination
init_scripts.*.abfss.destination
init_scripts.*.file.destination
|
řetězec |
* odkazuje na index inicializačního skriptu v poli atributů. Viz Zásady zápisu pro atributy pole. |
instance_pool_id |
řetězec | Řídí fond používaný pracovními uzly, pokud je také definován driver_instance_pool_id , nebo pro všechny uzly clusteru jinak. Pokud používáte fondy pro pracovní uzly, musíte také použít fondy pro uzel ovladače. Pokud je skrytý, odebere výběr fondu z uživatelského rozhraní. |
driver_instance_pool_id |
řetězec | Pokud je zadaný, nakonfiguruje pro uzel ovladače jiný fond než pro pracovní uzly. Pokud není zadáno, dědí instance_pool_id . Pokud používáte fondy pro pracovní uzly, musíte také použít fondy pro uzel ovladače. Pokud je skrytý, odebere z uživatelského rozhraní výběr fondu ovladačů. |
node_type_id |
řetězec | Pokud je tato možnost skrytá, odebere výběr typu pracovního uzlu z uživatelského rozhraní. |
num_workers |
volitelné číslo | Pokud je skryté, odstraní z uživatelského rozhraní specifikaci čísla pracovníka. |
runtime_engine |
řetězec | Určuje, jestli cluster používá Photon, nebo ne. Možné hodnoty jsou PHOTON nebo STANDARD . |
single_user_name |
řetězec | Určuje, kteří uživatelé nebo skupiny je možné přiřadit k výpočetnímu prostředku. |
spark_conf.* |
volitelný řetězec | Řídí konkrétní hodnoty konfigurace připojením názvu konfiguračního klíče, například: spark_conf.spark.executor.memory . |
spark_env_vars.* |
volitelný řetězec | Kontroluje konkrétní hodnoty proměnných prostředí Spark přidáním proměnné prostředí, například: spark_env_vars.<environment variable name> . |
spark_version |
řetězec | Název verze image Sparku zadaný prostřednictvím rozhraní API (Databricks Runtime). Můžete také použít speciální hodnoty zásad pro dynamický výběr Databricks Runtime. Viz Speciální hodnoty zásad pro výběr databricks Runtime. |
workload_type.clients.jobs |
booleovský | Definuje, jestli se výpočetní prostředek dá použít pro úlohy. Podívejte se na , jak zamezit použití výpočetních prostředků s úlohami. |
workload_type.clients.notebooks |
booleovský | Definuje, jestli se výpočetní prostředek dá použít s poznámkovými bloky. Podívejte se na , abyste zabránili použití výpočetních prostředků s úlohami. |
cesty virtuálních atributů
Tato tabulka obsahuje dva další syntetické atributy podporované zásadami:
speciální hodnoty zásad pro výběr Databricks Runtime
Atribut spark_version
podporuje speciální hodnoty, které se dynamicky mapují na verzi Databricks Runtime na základě aktuální sady podporovaných verzí Databricks Runtime.
V atributu spark_version
lze použít následující hodnoty:
-
auto:latest
: Mapuje na nejnovější verzi modulu GA Databricks Runtime. -
auto:latest-ml
: Odkazuje na nejnovější verzi Databricks Runtime ML. -
auto:latest-lts
: Odpovídá nejnovější verzi s dlouhodobou podporou (LTS) Databricks Runtime. -
auto:latest-lts-ml
: Odpovídá nejnovější verzi LTS Databricks Runtime ML. -
auto:prev-major
: Odpovídá druhé nejnovější obecně dostupné verzi Databricks Runtime. Pokud je napříkladauto:latest
14,2,auto:prev-major
je 13,3. -
auto:prev-major-ml
: Odkazuje na druhou nejnovější dostupnou verzi Databricks Runtime ML. Pokud je napříkladauto:latest
14,2,auto:prev-major
je 13,3. -
auto:prev-lts
: Odkazuje na verzi LTS Databricks Runtime, která je druhá nejnovější. Pokud je napříkladauto:latest-lts
13,3,auto:prev-lts
je 12,2. -
auto:prev-lts-ml
: Mapuje na druhou poslední verzi LTS Databricks Runtime ML. Pokud je napříkladauto:latest-lts
13,3,auto:prev-lts
je 12,2.
Poznámka
Při použití těchto hodnot nedojde k automatické aktualizaci výpočtů při vydání nové verze prostředí runtime. Uživatel musí explicitně upravit výpočetní prostředky pro změnu verze Databricks Runtime.
Podporované typy zásad
Tato část obsahuje referenční informace pro každý z dostupných typů zásad. Existují dvě kategorie typů zásad: pevné zásady a omezení zásad.
Pevné zásady brání konfiguraci uživatele u atributu. Mezi dva typy pevných zásad patří:
Omezení zásad omezuje možnosti uživatele pro konfiguraci atributu. Omezení zásad také umožňuje nastavit výchozí hodnoty a nastavit atributy jako volitelné. Viz Další omezující pole politiky.
Možnosti omezení zásad jsou:
- zásady seznamu povolených
- Zásady blokovacího seznamu
- Politika regexu
- Zásada rozsahu
- Neomezená politika
pevná politika
Pevné zásady omezují atribut na zadanou hodnotu. U hodnot atributů kromě číselných a logických hodnot musí být hodnota reprezentována nebo konvertibilní na řetězec.
S pevnými zásadami můžete také skrýt atribut z uživatelského rozhraní nastavením pole hidden
na true
.
interface FixedPolicy {
type: "fixed";
value: string | number | boolean;
hidden?: boolean;
}
Tato ukázková zásada opravuje verzi databricks Runtime a skryje pole v uživatelském rozhraní uživatele:
{
"spark_version": { "type": "fixed", "value": "auto:latest-lts", "hidden": true }
}
Zakázaná politika
Zakázané zásady brání uživatelům v konfiguraci atributu. Zakázané zásady jsou kompatibilní pouze s volitelnými atributy.
interface ForbiddenPolicy {
type: "forbidden";
}
Tato zásada zakáže připojení fondů k výpočetním prostředkům pro pracovní uzly. Pooly jsou také zakázány pro uzel ovladače, protože driver_instance_pool_id
dědí zásady.
{
"instance_pool_id": { "type": "forbidden" }
}
zásady seznamu povolených
Zásada seznamu povolených určuje seznam hodnot, které si uživatel může vybrat při konfiguraci atributu.
interface AllowlistPolicy {
type: "allowlist";
values: (string | number | boolean)[];
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
Tento příklad seznamu povolených umožňuje uživateli vybrat mezi dvěma verzemi Databricks Runtime:
{
"spark_version": { "type": "allowlist", "values": [ "13.3.x-scala2.12", "12.2.x-scala2.12" ] }
}
zásady seznamu blokovaných položek
Zásady blokovaného seznamu uvádějí nepovolené hodnoty. Vzhledem k tomu, že hodnoty musí být přesné shody, nemusí tato zásada fungovat podle očekávání, pokud je atribut lenient v tom, jak je hodnota reprezentována (například povolení úvodních a koncových mezer).
interface BlocklistPolicy {
type: "blocklist";
values: (string | number | boolean)[];
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
Tento příklad uživateli zablokuje výběr 7.3.x-scala2.12
jako Databricks Runtime.
{
"spark_version": { "type": "blocklist", "values": [ "7.3.x-scala2.12" ] }
}
Zásady regulárních výrazů
Zásady regulárních výrazů omezují dostupné hodnoty na ty, které odpovídají danému regulárnímu výrazu. V zájmu bezpečnosti se ujistěte, že je regulární výraz ukotvený na začátku a na konci řetězcové hodnoty.
interface RegexPolicy {
type: "regex";
pattern: string;
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
Tento příklad omezuje verze Databricks Runtime, ze které si uživatel může vybrat:
{
"spark_version": { "type": "regex", "pattern": "13\\.[3456].*" }
}
zásady rozsahu
Zásady rozsahu omezují hodnotu na zadanou oblast pomocí polí minValue
a maxValue
. Hodnota musí být desetinné číslo.
Číselné limity musí být reprezentovatelné jako hodnota s plovoucí desetinnou čárkou. Chcete-li označit nedostatek konkrétního limitu, můžete vynechat minValue
nebo maxValue
.
interface RangePolicy {
type: "range";
minValue?: number;
maxValue?: number;
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
Tento příklad omezuje maximální počet pracovníků na 10:
{
"num_workers": { "type": "range", "maxValue": 10 }
}
neomezená politika
Neomezené zásady slouží k vyžadování atributů nebo k nastavení výchozí hodnoty v uživatelském rozhraní.
interface UnlimitedPolicy {
type: "unlimited";
defaultValue?: string | number | boolean;
isOptional?: boolean;
}
Tento příklad přidá značku COST_BUCKET
k výpočtům:
{
"custom_tags.COST_BUCKET": { "type": "unlimited" }
}
Pokud chcete nastavit výchozí hodnotu pro konfigurační proměnnou Sparku, ale také povolit vynechání (odebrání) této proměnné:
{
"spark_conf.spark.my.conf": { "type": "unlimited", "isOptional": true, "defaultValue": "my_value" }
}
Další pole zásad omezení
Pro omezení typů zásad můžete zadat dvě další pole:
-
defaultValue
– hodnota, která se automaticky vyplní v uživatelském rozhraní pro tvorbu výpočtů. -
isOptional
– Zásada omezení atributu automaticky vyžaduje. Pokud chcete atribut nastavit jako volitelný, nastavte poleisOptional
natrue
.
Poznámka
Výchozí hodnoty se automaticky nepoužijí na výpočetní prostředky vytvořené pomocí rozhraní API clusterů . Pokud chcete použít výchozí hodnoty pomocí rozhraní API, přidejte parametr apply_policy_default_values
do definice výpočetních prostředků a nastavte ho na true
.
Tato ukázková zásada určuje výchozí hodnotu id1
pro fond pracovních uzlů, ale je volitelná. Při vytváření výpočtů můžete vybrat jiný fond, nebo se rozhodnout žádný nepoužívat. Pokud driver_instance_pool_id
není definován v zásadách nebo při vytváření výpočetních prostředků, použije se stejný fond pro pracovní uzly a uzel ovladače.
{
"instance_pool_id": { "type": "unlimited", "isOptional": true, "defaultValue": "id1" }
}
Zásady zápisu pro atributy pole
Zásady pro atributy pole můžete zadat dvěma způsoby:
- Obecná omezení pro všechny prvky pole Tato omezení používají symbol zástupných znaků
*
v cestě zásad. - Specifická omezení pro prvek pole na konkrétním indexu. Tato omezení používají číslo v cestě.
Například u atributu pole init_scripts
začínají obecné cesty init_scripts.*
a konkrétní cesty s init_scripts.<n>
, kde <n>
je celočíselné index v poli (počínaje 0).
Můžete kombinovat obecná a specifická omezení, v takovém případě obecné omezení platí pro každý prvek pole, který nemá konkrétní omezení. V každém případě se použije pouze jedno omezení politiky.
Následující části ukazují příklady běžných příkladů, které používají atributy pole.
Vyžadování položek specifických pro zahrnutí
Bez zadání pořadí nelze vyžadovat konkrétní hodnoty. Například:
{
"init_scripts.0.volumes.destination": {
"type": "fixed",
"value": "<required-script-1>"
},
"init_scripts.1.volumes.destination": {
"type": "fixed",
"value": "<required-script-2>"
}
}
Vyžadovat pevnou hodnotu celého seznamu
{
"init_scripts.0.volumes.destination": {
"type": "fixed",
"value": "<required-script-1>"
},
"init_scripts.*.volumes.destination": {
"type": "forbidden"
}
}
Zcela zakázat použití
{
"init_scripts.*.volumes.destination": {
"type": "forbidden"
}
}
Povolit položky, které se řídí určitým omezením
{
"init_scripts.*.volumes.destination": {
"type": "regex",
"pattern": ".*<required-content>.*"
}
}
Oprava konkrétní sady inicializačních skriptů
V případě init_scripts
cest může pole obsahovat jednu z více struktur, pro které může být v závislosti na případu použití potřeba zpracovat všechny možné varianty. Pokud například chcete vyžadovat konkrétní sadu inicializačních skriptů a zakázat jakoukoli variantu jiné verze, můžete použít následující vzor:
{
"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"
}
}
Příklady zásad
Tato část obsahuje příklady zásad, které můžete použít jako odkazy na vytváření vlastních zásad. Jako šablony pro běžné případy použití zásad můžete použít také rodiny zásad poskytovaných službou Azure Databricks.
- Obecná zásada výpočetních prostředků
- Definovat limity pro výpočetní kanálu Delta Live Tables
- Jednoduchá středně velká politika
- zásada pouze pro úlohy
- Politika externího metastoru
- Zabránit použití výpočetního výkonu při úlohách
- Odebrání zásad automatického škálování
- vynucení vlastních značek
Obecné zásady pro výpočty
Zásady výpočetních prostředků pro obecné účely, které mají vést uživatele a omezit některé funkce, přičemž vyžadují značky, omezují maximální počet instancí a vynucují vypršení časového limitu.
{
"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"
}
}
Definovat limity pro výpočetní prostředky kanálu Delta Live Tables
Poznámka
Při konfiguraci výpočetních prostředků Delta Live Tables doporučuje Databricks použít jednu zásadu pro default
i maintenance
výpočetní prostředky.
Pokud chcete nakonfigurovat zásadu pro výpočet kanálu, vytvořte zásadu s polem cluster_type
nastaveným na dlt
. Následující příklad vytvoří minimální zásadu pro výpočetní funkce Delta Live Tables:
{
"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
}
}
Jednoduchá politika střední velikosti
Umožňuje uživatelům vytvářet výpočetní prostředky střední velikosti s minimální konfigurací. Jediným požadovaným polem v době vytvoření je název výpočtu; zbytek je pevný a skrytý.
{
"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"
}
}
Zásady jen pro úlohy
Umožňuje uživatelům vytvářet výpočetní prostředky úloh pro spouštění úloh. Uživatelé nemůžou pomocí této zásady vytvářet výpočetní prostředky pro všechny účely.
{
"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"
}
}
Zásady externího metastoru
Umožňuje uživatelům vytvářet výpočetní infrastrukturu s metastorem definovaným správcem, který je již připojen. To je užitečné, když uživatelům umožníte vytvářet vlastní výpočetní prostředky bez nutnosti další konfigurace.
{
"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>"
}
}
Zabránit použití výpočetního výkonu pro úlohy
Tato zásada brání uživatelům v používání výpočetních prostředků ke spouštění úloh. Uživatelé budou moci používat výpočetní kapacitu pouze s notebooky.
{
"workload_type.clients.notebooks": {
"type": "fixed",
"value": true
},
"workload_type.clients.jobs": {
"type": "fixed",
"value": false
}
}
Odebrat zásady automatického škálování
Tato zásada zakáže automatické škálování a umožní uživateli nastavit počet pracovníků v určeném rozsahu.
{
"num_workers": {
"type": "range",
"maxValue": 25,
"minValue": 1,
"defaultValue": 5
}
}
vynucení vlastních značek
K přidání pravidla výpočetní značky do zásady použijte atribut custom_tags.<tag-name>
.
Například každý uživatel, který používá tuto zásadu, musí vyplnit značku COST_CENTER
kódem 9999, 9921 nebo 9531, aby se výpočetní prostředky spustily:
{"custom_tags.COST_CENTER": {"type":"allowlist", "values":["9999", "9921", "9531" ]}}