Sdílet prostřednictvím


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:

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 na hodinové bázi, včetně řídicího uzlu. 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 řetězec Představuje typ clusteru, který lze vytvořit:

- all-purpose pro univerzální výpočetní prostředky Azure Databricks
- job pro výpočet úlohy vytvořený plánovačem úloh
- dlt pro výpočetní prostředky vytvořené pro Delta Live Tables kanály

Povolí nebo zablokuje vytvoření zadaných typů výpočetních prostředků ze zásady. Pokud hodnota all-purpose není povolená, zásada se nezobrazí ve všestranném uživatelském rozhraní pro vytváření výpočetních úloh. Pokud hodnota job není povolená, politika se nezobrazí v uživatelském rozhraní pro vytvoření výpočetní úlohy.

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říklad auto: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říklad auto: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říklad auto: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říklad auto: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:

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 pole isOptional na true.

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_scriptszačí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á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" ]}}