Sdílet prostřednictvím


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 Tables

Povolí 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říklad auto:latest 14,2, pak auto:prev-major je 13.3.
  • auto:prev-major-ml: Mapuje se na druhou nejnovější verzi GA Databricks Runtime ML. Pokud je například auto:latest 14,2, pak auto:prev-major je 13.3.
  • auto:prev-lts: Mapuje se na druhou nejnovější verzi LTS Databricks Runtime. Pokud je například auto:latest-lts 13,3, pak auto:prev-lts je 12.2.
  • auto:prev-lts-ml: Mapuje se na druhou nejnovější verzi LTS Databricks Runtime ML. Pokud je například auto:latest-lts 13,3, pak auto: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:

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ý, nastavte isOptional pole na truehodnotu .

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_scriptspole 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ů

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" ]}}