Referenční informace k zásadám výpočetních prostředků
Tento článek je referenční informace o definicích zásad výpočetních prostředků. Č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í dobu automatického dokončování, zakazují uživatelům používat fondy a vynucují použití 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čk. 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 | Pokud je tato možnost skrytá, odebere z uživatelského rozhraní pole s minimálním číslem pracovního procesu. |
autotermination_minutes |
Číslo | Hodnota 0 představuje žádné automatické ukončení. Při skrytí odebere zaškrtávací políčko automatického ukončení a vstup hodnoty z uživatelského rozhraní. |
azure_attributes.availability |
string | Řídí výpočetní prostředky, které používají instance na vyžádání nebo spotové instance (ON_DEMAND_AZURE nebo SPOT_WITH_FALLBACK_AZURE ). |
azure_attributes.first_on_demand |
Číslo | Řídí počet uzlů, které se mají umístit na instance na vyžádání. |
azure_attributes.spot_bid_max_price |
Číslo | Řídí maximální cenu spotových instancí Azure. |
cluster_log_conf.path |
string | Cílová adresa URL souborů protokolu. |
cluster_log_conf.type |
string | Typ cíle protokolu. DBFS je jediná přijatelná hodnota. |
cluster_name |
string | Název clusteru. |
custom_tags.* |
string | Hodnoty konkrétních značek můžete řídit připojením názvu značky, například: custom_tags.<mytag> . |
data_security_mode |
string | 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 |
string | Heslo základního ověřování image služby Databricks Container Services |
docker_image.basic_auth.username |
string | Uživatelské jméno pro základní ověřování image Databricks Container Services. |
docker_image.url |
string | Řídí adresu URL image 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 |
boolean | Nastavte na true povolení nebo false zakázání š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 |
string | * odkazuje na index inicializačního skriptu v poli atributů. Viz Zásady zápisu pro atributy pole. |
instance_pool_id |
string | Řídí fond používaný pracovními uzly, pokud driver_instance_pool_id jsou také definovány, 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 |
string | 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 |
string | 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 tato možnost skrytá, odebere ze uživatelského rozhraní specifikaci čísla pracovního procesu. |
runtime_engine |
string | Určuje, jestli cluster používá Photon, nebo ne. Možné hodnoty jsou PHOTON nebo STANDARD . |
single_user_name |
string | Uživatelské jméno pro předávání přihlašovacích údajů pro přístup jednoho uživatele. |
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 | Řídí konkrétní hodnoty proměnných prostředí Spark připojením proměnné prostředí, například: spark_env_vars.<environment variable name> . |
spark_version |
string | Název verze image Sparku zadaný prostřednictvím rozhraní API (Databricks Runtime). Můžete také použít speciální hodnoty zásad, které dynamicky vyberou Databricks Runtime. Podívejte se na speciální hodnoty zásad pro výběr databricks Runtime. |
workload_type.clients.jobs |
boolean | Definuje, jestli se výpočetní prostředek dá použít pro úlohy. Viz Zabránění použití výpočetních prostředků s úlohami. |
workload_type.clients.notebooks |
boolean | Definuje, jestli se výpočetní prostředek dá použít s poznámkovými bloky. Viz Zabránění použití výpočetních prostředků s úlohami. |
Cesty k virtuálním atributům
Tato tabulka obsahuje dva další syntetické atributy podporované zásadami:
Cesta k atributu | Typ | Popis |
---|---|---|
dbus_per_hour |
Číslo | Počítaný atribut představující maximální počet jednotek DBU, které může prostředek používat po hodinách, včetně uzlu ovladače. Tato metrika představuje přímý způsob řízení nákladů na úrovni jednotlivých výpočetních prostředků. Používejte s omezením rozsahu. |
cluster_type |
string | Představuje typ clusteru, který lze vytvořit: - all-purpose pro výpočetní prostředky Azure Databricks pro všechny účely- job pro výpočetní prostředky úlohy vytvořené plánovačem úloh- dlt pro výpočty vytvořené pro kanály Delta Live TablesPovolí nebo zablokuje vytvoření zadaných typů výpočetních prostředků ze zásady. all-purpose Pokud tato hodnota není povolená, zásada se nezobrazí v uživatelském rozhraní pro vytvoření výpočetních prostředků pro celý účel. job Pokud tato hodnota není povolená, zásada se nezobrazí v uživatelském rozhraní pro výpočetní úlohy vytvoření. |
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 se na nejnovější verzi modulu GA Databricks Runtime.auto:latest-ml
: Mapuje na nejnovější verzi Databricks Runtime ML.auto:latest-lts
: Mapuje se na nejnovější verzi dlouhodobé podpory (LTS) Databricks Runtime.auto:latest-lts-ml
: Mapuje se na nejnovější verzi LTS Databricks Runtime ML.auto:prev-major
: Mapuje se na druhou nejnovější verzi modulu GA Databricks Runtime. Pokud je napříkladauto:latest
14,2, pakauto:prev-major
je 13.3.auto:prev-major-ml
: Mapuje se na druhou nejnovější verzi GA Databricks Runtime ML. Pokud je napříkladauto:latest
14,2, pakauto:prev-major
je 13.3.auto:prev-lts
: Mapuje se na druhou nejnovější verzi LTS Databricks Runtime. Pokud je napříkladauto:latest-lts
13,3, pakauto:prev-lts
je 12.2.auto:prev-lts-ml
: Mapuje se na druhou nejnovější verzi LTS Databricks Runtime ML. Pokud je napříkladauto:latest-lts
13,3, pakauto:prev-lts
je 12.2.
Poznámka:
Při použití těchto hodnot nedojde k automatické aktualizaci výpočetních prostředků při vydání nové verze modulu 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ší pole zásad omezení.
Možnosti omezení zásad jsou:
- Zásady seznamu povolených
- Zásady seznamu blokovaných položek
- Zásady regulárních výrazů
- Zásady rozsahu
- Neomezené zásady
Pevné zásady
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 hidden
pole 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é zásady
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. Fondy jsou také zakázány pro uzel ovladače, protože driver_instance_pool_id
dědí zásadu.
{
"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 seznamu blokovaných seznamů 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 hodnoty, které odpovídají 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í minValue
polí a maxValue
polí. 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 buď 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é zásady
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á COST_BUCKET
značku do výpočetních prostředků:
{
"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ší omezení polí zásad
Pro omezení typů zásad můžete zadat dvě další pole:
defaultValue
– Hodnota, která se automaticky naplní v uživatelském rozhraní pro vytváření výpočetních prostředků.isOptional
– Zásada omezení atributu automaticky vyžaduje. Pokud chcete atribut nastavit jako volitelný, nastavteisOptional
pole natrue
hodnotu .
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
fondu pro pracovní uzly, ale je volitelná. Při vytváření výpočetních prostředků můžete vybrat jiný fond nebo zvolit, že ho nebudete použí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ápis zásad 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í
*
zástupný znak v cestě zásad. - Specifická omezení pro prvek pole v určitém indexu. Toto omezení používá číslo v cestě.
Například pro atribut init_scripts
pole začínají obecné cesty init_scripts.*
a konkrétní cesty s init_scripts.<n>
, kde <n>
je celočíselné index v matici (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í zásad.
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. Pří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"
}
}
Nepovolení použití zcela
{
"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. Rodiny zásad poskytovaných službou Azure Databricks můžete použít také jako šablony pro běžné případy použití zásad.
- Obecné zásady výpočetních prostředků
- Definování omezení výpočetních prostředků kanálu Delta Live Tables
- Jednoduché zásady střední velikosti
- Zásady jen pro úlohy
- Zásady externího metastoru
- Zabránění použití výpočetních prostředků s úlohami
- Odebrání zásad automatického škálování
- Vynucení vlastních značek
Obecné zásady výpočetních prostředků
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"
}
}
Definování omezení výpočetních prostředků kanálu Delta Live Tables
Poznámka:
Při konfiguraci výpočetních funkcí Delta Live Tables doporučuje Databricks použít jednu zásadu default
pro výpočetní prostředky i maintenance
výpočetní prostředky.
Pokud chcete nakonfigurovat zásadu pro výpočetní prostředky kanálu, vytvořte zásadu s polem nastaveným cluster_type
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é zásady 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četních prostředků; 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í prostředky s již připojeným metastorem definovaným správcem. 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ánění použití výpočetních prostředků s úlohami
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 moct výpočetní prostředky používat jenom s poznámkovými bloky.
{
"workload_type.clients.notebooks": {
"type": "fixed",
"value": true
},
"workload_type.clients.jobs": {
"type": "fixed",
"value": false
}
}
Odebrání zásad automatického škálování
Tato zásada zakáže automatické škálování a umožní uživateli nastavit počet pracovních procesů v daném rozsahu.
{
"num_workers": {
"type": "range",
"maxValue": 25,
"minValue": 1,
"defaultValue": 5
}
}
Vynucení vlastních značek
Pokud chcete přidat pravidlo výpočetní značky do zásady, použijte custom_tags.<tag-name>
atribut.
Například každý uživatel, který používá tuto zásadu COST_CENTER
, musí vyplnit značku 9999, 9921 nebo 9531, aby se výpočetní prostředky spustily:
{"custom_tags.COST_CENTER": {"type":"allowlist", "values":["9999", "9921", "9531" ]}}