Настройка классических вычислений для конвейеров

Настройте классические вычисления для конвейеров Lakeflow для управления политиками вычислений, типами экземпляров и параметрами кластера. См. определение clusters в справочнике Pipeline API для справки по схеме JSON.

Databricks рекомендует использовать бессерверный режим для новых конвейеров. Выбирайте классические вычисления, когда нужны определённые типы экземпляров, пользовательские вычислительные политики, init-скрипты, внешний драйвер JDBC, установленный в кластере, или рабочее пространство вне региона с поддержкой serverless. См. раздел "Настройка бессерверного конвейера".

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

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

Замечание

Так как среда выполнения конвейера управляет жизненным циклом вычислений конвейера и выполняет пользовательскую версию Databricks Runtime, вы не можете вручную задать некоторые параметры вычислений в конфигурации конвейера, например версию Spark или имена кластеров. См. атрибуты кластера, недоступные для настройки пользователем.

Выберите вычислительные ресурсы для конвейера

Чтобы настроить классические вычисления для конвейера из редактора Конвейеров Lakeflow, выполните следующие действия.

  1. Нажмите кнопку "Параметры".
  2. В разделе Compute параметров конвейера щелкните значок карандаша для редактирования.
  3. Если этот флажок установлен, снимите флажок "Бессерверный".
  4. Внесите другие изменения в параметры вычислений и нажмите кнопку "Сохранить".

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

Дополнительные сведения о редакторе Конвейеров Lakeflow см. в разделе "Разработка и отладка конвейеров ETL" с помощью редактора Конвейеров Lakeflow.

Выбор политики вычислений

Администраторы рабочей области могут настроить политики вычислений для предоставления пользователям доступа к классическим вычислительным ресурсам для конвейеров. Политики вычислений являются необязательными. Обратитесь к администратору рабочей области, если у вас отсутствуют необходимые привилегии вычислений. См. раздел "Определение ограничений для вычислительных ресурсов конвейеров Lakeflow".

При использовании API для конвейеров, чтобы убедиться, что значения политик вычислений корректно применяются по умолчанию, задайте "apply_policy_default_values": true в определении clusters.

{
  "clusters": [
    {
      "label": "default",
      "policy_id": "<policy-id>",
      "apply_policy_default_values": true
    }
  ]
}

Настройка тегов вычислений

Вы можете добавить настраиваемые теги в классические вычислительные ресурсы конвейера. Теги позволяют отслеживать затраты вычислительных ресурсов, используемых различными группами в организации. Databricks применяет эти теги к облачным ресурсам и журналам использования, записанным в системных таблицах использования. Теги можно добавить, используя настройку пользовательского интерфейса Cluster tags или изменив JSON-конфигурацию вашего конвейера.

Выбор типов экземпляров для запуска конвейера

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

Чтобы настроить типы экземпляров при создании или изменении конвейера в редакторе Lakeflow Pipelines:

  1. Нажмите кнопку "Настройки".
  2. В разделе вычислений параметров конвейера щелкните значок карандаша.
  3. В разделе «Дополнительные параметры» выберите тип рабочей машины и тип экземпляра драйвера для конвейера.

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

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

Чтобы применить параметры только к одному из двух кластеров, добавьте label поле в заданный объект JSON. Для поля можно использовать три возможных значения label :

  • maintenance: применяет параметр только к кластеру обслуживания.
  • updates: применяет параметр только к кластеру обновления.
  • default: применяет параметр как к кластерам обновления, так и к кластерам обслуживания. Это значение по умолчанию, если label поле опущено.

Если имеется конфликтующий параметр, параметр с updatesmaintenance меткой переопределяет параметр, определенный default меткой.

Замечание

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

  • Пайплайны хранятся в хранилище метаданных Hive.
  • Конвейеры в рабочих областях, которые не приняли бессерверные условия вычислений. Если вам нужна помощь в принятии условий, обратитесь к представителю Databricks.

Пример. Определение параметра для кластера обновления

В следующем примере определяется параметр конфигурации Spark, добавляемый только в конфигурацию для кластера updates:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
        "key": "value"
      }
    }
  ]
}

Замечание

Чтобы контролировать стоимость на классических вычислениях, включите улучшенное автомасштабирование ("mode": "ENHANCED") и установите реалистичные min_workers и max_workers пределы, соответствующие вашей нагрузке, вместо фиксированного количества работников, рассчитанных на пиковую нагрузку. См. раздел "Оптимизация использования кластера конвейера Lakeflow с автомасштабированием".

Пример. Настройка типов экземпляров для кластера обновления

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

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "...": "..."
    }
  ]
}

Задержка завершения работы вычислений

Чтобы управлять поведением завершения работы кластера, используйте pipelines.clusterShutdown.delay параметр в конфигурации конвейера. В следующем примере значение pipelines.clusterShutdown.delay равно 60 секундам:

{
  "configuration": {
    "pipelines.clusterShutdown.delay": "60s"
  }
}

Значение pipelines.clusterShutdown.delay по умолчанию зависит от поведения выполнения обновления: 0 seconds для обновлений, использующих автоматическое повторение и поведение перезапуска, а 2 hours также для нерегламентированных обновлений, использующих поведение, ориентированное на быструю отладку.

Замечание

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

Создайте вычислительный узел с одним элементом

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

Чтобы создать вычисление с одним узлом, установите значение num_workers 0. Рассмотрим пример.

{
  "clusters": [
    {
      "num_workers": 0
    }
  ]
}