Справочник по вычислительной политике

Заметка

На этой странице используются примеры определений политик в формате JSON. Политику можно определить с помощью JSON или использовать пользовательский интерфейс политики вычислений для настройки определений политик с помощью раскрывающихся меню и других элементов пользовательского интерфейса.

Эта страница является ссылкой на определения политик вычислений, включая список доступных атрибутов политики и типов ограничений. Существуют также примеры политик, на которые можно ссылаться для распространенных вариантов использования.

Что представляют собой определения политик?

Определения политик — это отдельные правила политики, выраженные в формате JSON.

Определение может добавить правило в любой из атрибутов, контролируемых API кластеров . Например, эти определения задают время автотерминации по умолчанию, запрещают пользователям использовать пулы и применяют использование Photon:

{
  "autotermination_minutes": {
    "type": "unlimited",
    "defaultValue": 4320,
    "isOptional": true
  },
  "instance_pool_id": {
    "type": "forbidden",
    "hidden": true
  },
  "runtime_engine": {
    "type": "fixed",
    "value": "PHOTON",
    "hidden": true
  }
}

Для каждого атрибута может быть только одно ограничение. Путь атрибута отражает имя атрибута API. Для вложенных атрибутов путь объединяет имена вложенных атрибутов с помощью точек. Атрибуты, которые не определены в определении политики, не будут ограничены.

Настройка определений политик с помощью элементов пользовательского интерфейса

Форма политики позволяет настраивать определения политик с помощью раскрывающихся меню и других элементов пользовательского интерфейса. Это означает, что администраторы могут создавать политики без необходимости изучать или ссылаться на синтаксис политики.

Форма также поддерживает редактирование полного определения политики непосредственно в формате JSON. Чтобы изменить JSON, выполните следующие действия.

  • Нажмите кнопку "Изменить определение как JSON" в разделе "Дополнительно" раздела "Определение", чтобы открыть редактор JSON.
  • Щелкните вкладку JSON, чтобы просмотреть JSON описания. На этой вкладке можно также нажать кнопку "Изменить определение в формате JSON ", чтобы открыть редактор.

Кроме того, отдельные правила JSON можно добавить в поле Custom JSON в разделе "Дополнительные параметры".

Новая форма политики вычислений

Известные ограничения при использовании новой формы политики

Если политика не поддерживается новой формой политики вычислений, все несовместимые определения будут отображаться в настраиваемом поле JSON в разделе "Дополнительные параметры ". Для следующих полей поддерживается только подмножество допустимых политик:

  • workload_type: политика должна определять оба workload_type.clients.notebooks и workload_type.clients.jobs. Каждое из этих правил должно быть исправлено либо на true либо на false.
  • dbus_per_hour: Поддерживаются только политики диапазона, которые указывают maxValue и не указывают minValue.
  • ssh_public_keys. Поддерживаются только фиксированные политики. Политики ssh_public_keys не должны пропускать индексы данных. Например, ssh_public_keys.0ssh_public_keys.1ssh_public_keys.2 , является допустимым, но ssh_public_keys.0, ssh_public_keys.2ssh_public_keys.3 является недопустимым.
  • cluster_log_conf: cluster_log_conf.path не может быть списком разрешений или списком блокировок.
  • init_scripts: Индексированные политики, т. е. init_scripts.0.volumes.destination, должны быть исправлены. Политики подстановочных знаков (например, init_scripts.*.volumes.destination) должны быть запрещены. Политики индексирования не должны пропускать индексы.

Поддерживаемые атрибуты

Политики поддерживают все атрибуты, которые управляются с помощью API кластеров. Тип ограничений, которые можно разместить на атрибутах, может отличаться в зависимости от их типа и отношения к элементам пользовательского интерфейса. Политики нельзя использовать для определения разрешений вычислений.

Вы также можете использовать политики для задания максимального числа DBUs в час и типа кластера. См. виртуальные пути атрибутов.

В следующей таблице перечислены поддерживаемые пути атрибутов политики:

Путь атрибута Тип Описание
autoscale.max_workers необязательный номер При скрытии удаляет максимальное поле рабочего числа из пользовательского интерфейса.
autoscale.min_workers необязательный номер При скрытии удаляет минимальное поле рабочего числа из пользовательского интерфейса.
autotermination_minutes число Значение 0 означает отсутствие автоматического завершения. Если скрыто, удаляет флажок автоматического завершения и поле ввода значения из пользовательского интерфейса.
azure_attributes.availability струна Определяет, используются ли вычислительные ресурсы по запросу или точечные экземпляры (SPOT_AZURE, ON_DEMAND_AZUREили SPOT_WITH_FALLBACK_AZURE).
azure_attributes.first_on_demand число Определяет количество узлов кластера, использующих экземпляры по запросу, начиная с узла драйвера. Например, значение 1 устанавливает узел драйвера в режим по запросу. Значение 2 устанавливает узел драйвера и один рабочий узел для работы в режиме по требованию.
azure_attributes.spot_bid_max_price число Управляет максимальной ценой для спотовых экземпляров Azure.
cluster_log_conf.path струна URL-адрес назначения файлов журнала.
cluster_log_conf.type струна Тип места назначения журнала. DBFS и VOLUMES являются единственными допустимыми значениями.
cluster_name струна Имя кластера.
custom_tags.* струна Управляйте определенными значениями тегов, добавляя имя тега, например custom_tags.<mytag>.
data_security_mode струна Задает режим доступа кластера. Для каталога Unity требуется SINGLE_USER или USER_ISOLATION (стандартный режим доступа в пользовательском интерфейсе). Значение NONE означает, что функции безопасности не включены.
docker_image.basic_auth.password струна Пароль для базовой проверки подлинности образа в Databricks Container Services.
docker_image.basic_auth.username струна Имя пользователя для базовой проверки подлинности изображения в Databricks Container Services.
docker_image.url струна Управляет URL-адресом образа сервиса контейнеров Databricks. При скрытии удаляет раздел Databricks Container Services из пользовательского интерфейса.
driver_node_type_id необязательная строка При скрытии удаляет выбор типа узла драйвера из пользовательского интерфейса.
driver_node_type_flexibility.alternate_node_type_ids струна Задает альтернативные типы узлов для узла драйвера. Поддерживаются только фиксированные политики. См. раздел "Гибкие типы узлов".
enable_local_disk_encryption булевый Установите true, чтобы включить, или false, чтобы отключить шифрование дисков, которые локально подключены к кластеру (как указано через API).
init_scripts.*.workspace.destination init_scripts.*.volumes.destination init_scripts.*.abfss.destination init_scripts.*.file.destination струна * ссылается на индекс скрипта инициализации в массиве атрибутов. См. Политики записи для атрибутов массива.
instance_pool_id струна Управляет пулом, используемым рабочими узлами, если driver_instance_pool_id также определён, или в противном случае для всех узлов кластера. При использовании пулов для рабочих узлов необходимо также использовать пулы для узла драйвера. При скрытии удаляет выбор пула из пользовательского интерфейса.
driver_instance_pool_id струна Если задано, настраивает другой пул для узла драйвера, чем для рабочих узлов. Если не указано, он наследует instance_pool_id. При использовании пулов для рабочих узлов необходимо также использовать пулы для узла драйвера. При скрытии удаляет выбор пула драйверов из пользовательского интерфейса.
is_single_node булевый Если задано значение true, вычисление должно быть одним узлом. Этот атрибут поддерживается только в том случае, если пользователь использует простую форму.
node_type_id струна При скрытии удаляет выбор типа рабочего узла из пользовательского интерфейса.
worker_node_type_flexibility.alternate_node_type_ids струна Задает альтернативные типы узлов для рабочих узлов. Поддерживаются только фиксированные политики. См. раздел "Гибкие типы узлов".
num_workers необязательный номер При скрытии удаляет спецификацию рабочего номера из пользовательского интерфейса.
runtime_engine струна Определяет, используется ли Photon в кластере. Возможные значения : PHOTON или STANDARD.
single_user_name струна Определяет, какие пользователи или группы могут быть назначены вычислительному ресурсу.
spark_conf.* необязательная строка Управляет определенными значениями конфигурации путем добавления имени ключа конфигурации, например spark_conf.spark.executor.memory.
spark_env_vars.* необязательная строка Контролирует конкретные значения переменной среды Spark путем добавления значений переменной среды, например: spark_env_vars.<environment variable name>.
spark_version струна Имя версии образа Spark, указанное через API (Databricks Runtime). Вы также можете использовать специальные значения политики, которые динамически выбирают среду выполнения Databricks. См. специальные значения политик выбора среды выполнения Databricks.
use_ml_runtime булевый Определяет, должна ли использоваться версия машинного обучения среды выполнения Databricks. Этот атрибут поддерживается только в том случае, если пользователь использует простую форму.
workload_type.clients.jobs булевый Определяет, можно ли использовать вычислительный ресурс для заданий. См. раздел Запрет использования вычислений с заданиями.
workload_type.clients.notebooks булевый Определяет, можно ли использовать вычислительный ресурс с записными книжками. См. раздел Запрет использования вычислений с заданиями.

Пути виртуальных атрибутов

Эта таблица содержит два дополнительных синтетических атрибута, поддерживаемых политиками. Если вы используете новую форму политики, эти атрибуты можно задать в разделе "Дополнительные параметры ".

Путь атрибута Тип Описание
dbus_per_hour число Вычисляемый атрибут, представляющий максимальное количество DBU, которое ресурс может использовать в час, включая управляющий узел. Эта метрика является прямым способом управления затратами на отдельном уровне вычислений. Использование с ограничением диапазона.
cluster_type струна Представляет тип кластера, который можно создать:

Разрешить или блокировать создание указанных типов вычислений из политики. Если значение all-purpose не допускается, политика не отображается в универсальном интерфейсе создания вычислений. Если значение job не разрешено, политика не отображается в интерфейсе создания вычислительных заданий.

Гибкие типы узлов

Атрибуты гибких типов узлов позволяют указать альтернативные типы узлов, которые может использовать вычислительный ресурс, если тип первичного узла недоступен. Эти атрибуты имеют особые требования к политике:

  • Поддерживаются только фиксированные политики. Все остальные типы политик запрещены и будут отклонены во время создания политики.
  • Пустая строка в политике сопоставляется с пустым списком альтернативных типов узлов, эффективно отключая гибкие типы узлов.

Исправление для определенного списка типов узлов

В отличие от соответствующих полей API кластеров, использующих массив строк, атрибуты политики вычислений используют одно строковое значение, которое кодирует массив типов узлов в виде списка, разделенного запятыми. Например:

{
  "worker_node_type_flexibility.alternate_node_type_ids": {
    "type": "fixed",
    "value": "nodeA,nodeB"
  }
}

Если вы используете API кластеров для создания вычислительного ресурса с назначенной политикой, Databricks рекомендует не задавать worker_node_type_flexibility поля или driver_node_type_flexibility поля. Если вы задаёте эти поля, типы узлов и порядок в массиве должны точно совпадать со списком, разделённым запятыми, в политике, иначе вычислительный ресурс создать невозможно. Например, определение политики из выше будет задано следующим образом:

"worker_node_type_flexibility": {
  "alternate_node_type_ids": ["nodeA", "nodeB"]
}

Отключение гибких типов узлов

Чтобы отключить гибкие типы узлов, задайте для значения пустую строку. Например:

{
  "worker_node_type_flexibility.alternate_node_type_ids": {
    "type": "fixed",
    "value": ""
  }
}

Специальные параметры политики для выбора среды выполнения Databricks

Атрибут spark_version поддерживает специальные значения, которые динамически сопоставляются с версией Databricks Runtime на основе текущего набора поддерживаемых версий Databricks Runtime.

Следующие значения можно использовать в атрибуте spark_version:

  • auto:latest: сопоставляется с последней общедоступной версией Databricks Runtime.
  • auto:latest-ml: сопоставляется с последней версией Databricks Runtime ML.
  • auto:latest-lts: сопоставляется с последней версией Databricks Runtime с долгосрочной поддержкой (LTS).
  • auto:latest-lts-ml: отображает последнюю версию LTS Databricks Runtime ML.
  • auto:prev-major: сопоставляется со второй последней версией среды выполнения GA Databricks. Например, если auto:latest равно 14.2, auto:prev-major равно 13.3.
  • auto:prev-major-ml: сопоставляется с предпоследней версией Databricks Runtime для машинного обучения. Например, если auto:latest равно 14.2, auto:prev-major равно 13.3.
  • auto:prev-lts: сопоставляется со второй последней версией среды выполнения LTS Databricks. Например, если auto:latest-lts равно 13.3, auto:prev-lts равно 12.2.
  • auto:prev-lts-ml: сопоставляется с предпоследней версией среды выполнения ML LTS Databricks. Например, если auto:latest-lts равно 13.3, auto:prev-lts равно 12.2.

Заметка

Использование этих значений не приводит к автоматическому обновлению вычислительной среды при выпуске новой версии среды выполнения. Чтобы изменить версию среды выполнения Databricks, пользователь должен явно изменить настройки вычислений.

Поддерживаемые типы политик

В этом разделе содержится ссылка для каждого из доступных типов политик. Существует две категории типов политик: фиксированные политики и ограничения политик.

Фиксированные политики препятствуют настройке пользователей в атрибуте. Ниже перечислены два типа фиксированных политик:

Ограничение политик ограничивает параметры пользователя для настройки атрибута. Ограничения политик также позволяют задать значения по умолчанию и сделать атрибуты необязательными. См. дополнительные поля политики ограничения.

Возможные варианты ограничения политик:

Исправленная политика

Фиксированные политики ограничивают атрибут указанным значением. Для значений атрибутов, отличных от числовых и логических, значение должно быть представлено или преобразовано в строку.

С фиксированными политиками можно также скрыть атрибут из пользовательского интерфейса, установив для поля hidden значение true.

interface FixedPolicy {
    type: "fixed";
    value: string | number | boolean;
    hidden?: boolean;
}

В этом примере политика исправляет версию среды выполнения Databricks и скрывает поле из пользовательского интерфейса пользователя:

{
  "spark_version": { "type": "fixed", "value": "auto:latest-lts", "hidden": true }
}

Запрещенная политика

Запрещенная политика запрещает пользователям настраивать атрибут. Запрещенные политики совместимы только с необязательными атрибутами.

interface ForbiddenPolicy {
    type: "forbidden";
}

Эта политика запрещает присоединение пулов к вычислениям для рабочих узлов. Также запрещены пулы для узла драйвера, так как узел driver_instance_pool_id наследует политику.

{
  "instance_pool_id": { "type": "forbidden" }
}

политика списка разрешений

Политика списка разрешений указывает список значений, которые пользователь может выбрать при настройке атрибута.

interface AllowlistPolicy {
  type: "allowlist";
  values: (string | number | boolean)[];
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

Этот пример списка разрешений позволяет пользователю выбирать две версии среды выполнения Databricks:

{
  "spark_version": { "type": "allowlist", "values": ["13.3.x-scala2.12", "12.2.x-scala2.12"] }
}

Принуждение пользователей выбрать значение из списка допустимых значений

Если значение по умолчанию для политики разрешенного списка не задано, пользовательский интерфейс по умолчанию использует первое значение в списке разрешений. Чтобы принудить пользователя вручную выбрать значение, задайте для значения по умолчанию недопустимое значение. Например: defaultValue?: "SELECT A VALUE";.

политика списка блокировки

Политика блокировки перечисляет запрещенные значения. Так как значения должны быть точными совпадениями, эта политика может не работать должным образом, если атрибут нестрогий в отношении представления значения (например, разрешает начальные и конечные пробелы).

interface BlocklistPolicy {
  type: "blocklist";
  values: (string | number | boolean)[];
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

В этом примере пользователь блокирует выбор 7.3.x-scala2.12 в качестве среды выполнения Databricks.

{
  "spark_version": { "type": "blocklist", "values": ["7.3.x-scala2.12"] }
}

Политика Regex

Политика регулярных выражений ограничивает доступные значения до тех, которые соответствуют регулярному выражению. Для безопасности убедитесь, что regex привязан к началу и концу строкового значения.

interface RegexPolicy {
  type: "regex";
  pattern: string;
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

В этом примере ограничивается выбор версий Среды выполнения Databricks, доступных пользователю.

{
  "spark_version": { "type": "regex", "pattern": "13\\.[3456].*" }
}

политика диапазона

Политика диапазона ограничивает значение заданного диапазона с помощью полей minValue и maxValue. Значение должно быть десятичным числом. Числовые ограничения должны представляться как двойное значение с плавающей запятой. Чтобы указать отсутствие определенного ограничения, можно пропустить либо minValue, либо maxValue.

interface RangePolicy {
  type: "range";
  minValue?: number;
  maxValue?: number;
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

В этом примере максимальное количество работников ограничено до 10.

{
  "num_workers": { "type": "range", "maxValue": 10 }
}

Неограниченная политика

Неограниченная политика используется для создания обязательных атрибутов или задания значения по умолчанию в пользовательском интерфейсе.

interface UnlimitedPolicy {
  type: "unlimited";
  defaultValue?: string | number | boolean;
  isOptional?: boolean;
}

В этом примере тег COST_BUCKET добавляется к вычислительным процессам:

{
  "custom_tags.COST_BUCKET": { "type": "unlimited" }
}

Чтобы задать значение по умолчанию для переменной конфигурации Spark, но также разрешить пропускать (удалять) его:

{
  "spark_conf.spark.my.conf": { "type": "unlimited", "isOptional": true, "defaultValue": "my_value" }
}

дополнительные параметры политики ограничения

Для ограничения типов политик можно указать два дополнительных поля:

  • defaultValue — значение, которое автоматически заполняется в интерфейсе создания вычислений.
  • isOptional — политика ограничения атрибута автоматически делает его обязательным. Чтобы сделать атрибут необязательным, задайте для поля isOptional значение true.

Заметка

Значения по умолчанию не применяются автоматически к вычислениям, созданным с помощью API кластеров. Чтобы применить значения по умолчанию с помощью API, добавьте параметр apply_policy_default_values в определение вычислений и задайте для него значение true.

В этом примере политика указывает значение по умолчанию id1 для пула рабочих узлов, но делает его необязательным. При создании вычислений можно выбрать другой пул или не использовать его. Если driver_instance_pool_id не определен в политике или при создании вычислительных ресурсов, для рабочих узлов и узла драйвера используется один и тот же пул.

{
  "instance_pool_id": { "type": "unlimited", "isOptional": true, "defaultValue": "id1" }
}

Написание политик для атрибутов массива

Политики атрибутов массива можно указать двумя способами:

  • Универсальные ограничения для всех элементов массива. Эти ограничения используют подстановочный символ * в пути политики.
  • Определенные ограничения для элемента массива по определенному индексу. Эти ограничения используют число в пути.

Заметка

Атрибуты гибких типов узлов (worker_node_type_flexibility.alternate_node_type_ids и driver_node_type_flexibility.alternate_node_type_ids) являются полями типа массива в API кластеров, но они не соответствуют шаблону подстановочного или индексированного пути, описанного здесь. Для этих атрибутов требуется одно правило политики, указывающее полный список в виде строки, разделенной запятыми. Дополнительные сведения см. в разделе "Гибкие типы узлов ".

Например, для атрибута массива init_scriptsуниверсальные пути начинаются с init_scripts.* и конкретных путей с init_scripts.<n>, где <n> является целым индексом в массиве (начиная с 0). Вы можете объединить универсальные и конкретные ограничения, в этом случае универсальные ограничения применяются к каждому элементу массива, который не имеет определенного ограничения. В каждом случае применяется только одно ограничение политики.

В следующих разделах показаны примеры распространенных примеров, использующих атрибуты массива.

Требовать записи, специфически связанные с инклюзивностью

Нельзя требовать определенные значения, не указывая порядок. Например:

{
  "init_scripts.0.volumes.destination": {
    "type": "fixed",
    "value": "<required-script-1>"
  },
  "init_scripts.1.volumes.destination": {
    "type": "fixed",
    "value": "<required-script-2>"
  }
}

Требовать фиксированное значение всего списка

{
  "init_scripts.0.volumes.destination": {
    "type": "fixed",
    "value": "<required-script-1>"
  },
  "init_scripts.*.volumes.destination": {
    "type": "forbidden"
  }
}

Запретить использование полностью

{
  "init_scripts.*.volumes.destination": {
    "type": "forbidden"
  }
}

Разрешить записи, которые соответствуют определенному ограничению

{
  "init_scripts.*.volumes.destination": {
    "type": "regex",
    "pattern": ".*<required-content>.*"
  }
}

Исправление определенного набора скриптов инициализации

В случае init_scripts путей массив может содержать одну из нескольких структур, для которых может потребоваться обрабатывать все возможные варианты в зависимости от варианта использования. Например, чтобы требовать определенный набор скриптов инициализации и запретить любой вариант другой версии, можно использовать следующий шаблон:

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

Примеры политик

В этом разделе приведены примеры политик, которые можно использовать в качестве ссылок для создания собственных политик. Вы также можете использовать семейства политик Azure Databricks, предоставленные в качестве шаблонов для распространенных вариантов использования политик.

Общая политика вычислений

Политика вычислений общего назначения предназначена для руководства пользователей и ограничения некоторых функций, при этом требуется теги, ограничение максимального количества экземпляров и принудительное время ожидания.

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

Определение ограничений для вычислений декларативных конвейеров Spark Lakeflow

Заметка

При использовании политик для настройки вычислительных ресурсов Декларативных потоков Spark Lakeflow, Databricks рекомендует применять одну политику как к default, так и к maintenance расчетным ресурсам.

Чтобы настроить политику для вычислительных операций в конвейере, создайте политику с полем cluster_type, установленным на dlt. В следующем примере создается минимальная политика для вычислений Декларативных конвейеров Spark Lakeflow:

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

Простой и среднего размера полис

Позволяет пользователям создавать вычислительные ресурсы среднего размера с минимальной конфигурацией. Единственным обязательным полем при создании является имя вычислительного ресурса; остальные поля заданы по умолчанию и скрыты.

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

Политика, применяемая только к заданиям

Позволяет пользователям создавать вычисления заданий для выполнения заданий. Пользователи не могут создавать вычислительные ресурсы всех целей с помощью этой политики.

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

Политика внешнего хранилища метаданных

Позволяет пользователям создавать вычислительные ресурсы с уже подключенным хранилищем метаданных, определенным администратором. Это полезно, чтобы пользователи могли создавать собственные вычислительные ресурсы без дополнительной настройки.

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

Предотвратить использование вычислений для заданий

Эта политика запрещает пользователям использовать вычислительные ресурсы для выполнения заданий. Пользователи смогут использовать вычисления только с ноутбуками.

{
  "workload_type.clients.notebooks": {
    "type": "fixed",
    "value": true
  },
  "workload_type.clients.jobs": {
    "type": "fixed",
    "value": false
  }
}

Удаление политики автомасштабирования

Данное правило деактивирует автомасштабирование и позволяет пользователю задать количество рабочих в заданном диапазоне.

{
  "num_workers": {
    "type": "range",
    "maxValue": 25,
    "minValue": 1,
    "defaultValue": 5
  }
}

Принудительное применение пользовательских тегов

Чтобы добавить правило тега вычислений в политику, используйте атрибут custom_tags.<tag-name>.

Например, любой пользователь, использующий эту политику, должен заполнить тег COST_CENTER с 9999, 9921 или 9531 для запуска вычислений:

{ "custom_tags.COST_CENTER": { "type": "allowlist", "values": ["9999", "9921", "9531"] } }