Справочник по свойствам конвейера

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

Конфигурация конвейеров Lakeflow и декларативные конвейеры Apache Spark™

Конвейеры Lakeflow основаны на декларативных конвейерах Apache Spark™ (SDP). Конфигурация конвейера является в значительной степени супермножеством спецификации проекта SDP. Различия в использовании свойств между конвейерами SDP и Lakeflow. Сравнение возможностей конвейеров Lakeflow и общего ресурса SDP см. в разделе Apache Spark Декларативные конвейеры.

Как задать свойства

Большинство свойств конвейера задаются одним из следующих способов:

  • Pipeline JSON или YAML: Добавьте это свойство в спецификацию конвейера либо в интерфейсе настроек конвейера, либо в конфигурационном файле Declarative Automation Bundles. Настройки на уровне конвейера, такие catalogкак , channel, и edition задаются таким образом.
  • Объект: Свойства конфигурации Spark (свойства с configurationпрефиксом pipelines.) могут быть установлены для всего конвейера, добавив их в configuration объект в спецификации конвейера. См. раздел "Настройка конвейеров".
  • SQL: В исходном файле SQL установите конфигурационное свойство Spark для наборов данных, которые следуют за ним .SET
  • Python: В исходном файле Python установите свойство конфигурации Spark на отдельном наборе данных с spark_conf аргументом декоратора данных.

Установка свойства в SQL или Python применяет его на уровне набора данных, что переопределяет значение на уровне конвейера из объектаconfiguration. Не каждое свойство поддерживает все методы: настройки на уровне конвейера можно задать только в спецификации, тогда как свойства конфигурации Spark могут быть зададены как на уровне конвейера, так и на уровне набора данных.

Конфигурации конвейера

  • id

    Тип: string

    Глобальный уникальный идентификатор для этого конвейера. Идентификатор назначается системой и не может быть изменен.

    Только конвейеры Lakeflow. SDP не назначает идентификатор конвейера

  • name

    Тип: string

    Удобное для пользователя имя этого конвейера. Имя можно использовать для идентификации заданий конвейера в пользовательском интерфейсе.

    Доступно в SDP в качестве обязательного name поля

  • configuration

    Тип: object

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

    Элементы должны быть отформатированы как пары key:value.

    Доступно в SDP как configuration

  • parameters

    Тип: object

    Important

    Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".

    Необязательная карта пар "ключ-значение", на которую исходный код конвейера может ссылаться с помощью именованного синтаксиса параметров (например, :source_catalog). Используйте параметры для повторного использования одного исходного кода конвейера в средах или наборах данных без редактирования источника.

    Ключи могут содержать буквенно-цифровые символы, символы подчеркивания (), дефисы (_-) и точки (.). Значения всегда являются строками.

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

    Только конвейеры Lakeflow

  • libraries

    Тип: array of objects

    Массив файлов кода, содержащих код конвейера и обязательные артефакты.

    Доступно в SDP как libraries, указанное в виде списка шаблонов глобов исходного файла, а не массива объектов файлов кода

  • clusters

    Тип: array of objects

    Массив спецификаций для кластеров для запуска конвейера.

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

    Только конвейеры Lakeflow. SDP не управляет вычислительными ресурсами

  • development

    Тип: boolean

    Флаг, указывающий, следует ли запускать конвейер в режиме development или режиме production.

    Значение по умолчанию — false.

    Только конвейеры Lakeflow

  • notifications

    Тип: array of objects

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

    Только конвейеры Lakeflow

  • continuous

    Тип: boolean

    Флаг, указывающий, следует ли непрерывно запускать конвейер.

    Значение по умолчанию — false.

    Только конвейеры Lakeflow

  • catalog

    Тип: string

    Имя каталога по умолчанию для конвейера, где публикуются все наборы данных и метаданные для конвейера. Установка этого значения активирует Unity Catalog для конвейера обработки данных.

    Если не задано, конвейер публикуется в устаревшем хранилище метаданных Hive, используя расположение, указанное в storage.

    В устаревшем режиме публикации указывает каталог, содержащий целевую схему, в которой публикуются все наборы данных из текущего конвейера. См. LIVE схему (устаревшую версию).

    Доступно в SDP как catalog

  • schema

    Тип: string

    Имя схемы по умолчанию для конвейера, где по умолчанию публикуются все наборы данных и метаданные для конвейера. См. Задайте целевой каталог и схему.

    Доступно в SDP как database, который также принимает псевдоним schema

  • target (устаревшая версия)

    Тип: string

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

    Только конвейеры Lakeflow

  • storage (устаревшая версия)

    Тип: string

    Расположение в DBFS или облачном хранилище, где хранятся выходные данные и метаданные, необходимые для выполнения конвейера. Таблицы и метаданные хранятся в подкаталогах этой директории.

    storage Если параметр не указан, система по умолчанию использует расположение.dbfs:/pipelines/

    После создания конвейера невозможно изменить параметр storage.

    Доступно в SDP в качестве обязательного storage поля. В конвейерах storage Lakeflow используется устаревший параметр

  • channel

    Тип: string

    Используемая версия среды выполнения конвейера. Поддерживаются такие значения:

    • preview для тестирования конвейера с грядущими изменениями в версии среды выполнения.
    • current, чтобы использовать текущую версию среды выполнения.

    Поле channel является необязательным. Значение по умолчанию — current. Databricks рекомендует использовать текущую версию среды выполнения для рабочих нагрузок.

    Только конвейеры Lakeflow

  • edition

    Тип string

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

    • CORE для выполнения рабочих нагрузок потокового приема данных.
    • PRO для выполнения потоковой загрузки и захвата изменений данных (CDC).
    • ADVANCED для выполнения рабочих нагрузок потоковой передачи данных, рабочих нагрузок CDC и рабочих нагрузок, требующих соблюдения ожиданий в отношении соблюдения ограничений качества данных.

    Поле edition является необязательным. Значение по умолчанию — ADVANCED.

    Только конвейеры Lakeflow

  • photon

    Тип: boolean

    Флаг, указывающий, следует ли использовать Что такое Photon? для запуска конвейера. Photon — это модуль Azure Databricks с высокой производительностью Spark. Конвейеры с поддержкой технологии Photon оплачиваются по другому тарифу, чем конвейеры, не использующие Photon.

    Поле photon является необязательным. Значение по умолчанию — false.

    Только конвейеры Lakeflow

  • serverless

    Тип: boolean

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

    Только конвейеры Lakeflow

  • event_log

    Тип: object

    Настройка назначения журнала событий конвейера в качестве объекта с namecatalogschema полями, публикующими журнал событий в таблице каталога Unity. См. журнал событий конвейера.

    Только конвейеры Lakeflow

  • tags

    Тип: object

    Необязательная карта определяемых пользователем тегов для конвейера. Можно добавить не более 25 тегов.

    Только конвейеры Lakeflow

  • budget_policy_id

    Тип: string

    Идентификатор бессерверной политики бюджета, применяемой к этому конвейеру, используется для атрибута бессерверного использования для отслеживания затрат. Это поле отображается в конфигурации JSON или YAML только при явном установке политики. Если он не настроен, Azure Databricks автоматически разрешает политику по умолчанию. Разрешенная политика отображается в пользовательском интерфейсе параметров конвейера, но она не записывается в конфигурацию JSON или YAML.

    Только конвейеры Lakeflow

  • root_path

    Тип: string

    Корневой путь для конвейера. При установке этот каталог добавляется sys.path при выполнении Python исходных файлов, поэтому модули можно импортировать относительно него.

    Только конвейеры Lakeflow

  • environment

    Тип: object

    Спецификация среды, используемая для установки Python зависимостей для конвейера.

    Только конвейеры Lakeflow

  • pipelines.maxFlowRetryAttempts

    Тип: int

    Если во время обновления конвейера возникает повторный сбой, это максимальное количество раз повторения потока перед сбоем обновления конвейера.

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

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

    Только конвейеры Lakeflow

  • pipelines.numUpdateRetryAttempts

    Тип: int

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

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

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

    По умолчанию:

    • Пять для триггерных конвейеров.
    • Неограниченно для непрерывных конвейеров.

    Только конвейеры Lakeflow

Свойства таблицы конвейера

Помимо свойств таблицы, поддерживаемых Delta Lake, можно задать следующие свойства таблицы.

  • pipelines.autoOptimize.zOrderCols

    Значение по умолчанию: Нет

    Необязательная строка, содержащая список имен столбцов, разделенных запятыми, для упорядочивания этой таблицы по «z-order». Например: pipelines.autoOptimize.zOrderCols = "year,month"

    Databricks рекомендует кластеризацию жидкости вместо порядка Z для оптимизации макета данных в таблицах конвейеров. Чтобы разрешить Databricks выбирать и поддерживать столбцы кластеризации автоматически, используйте CLUSTER BY AUTO (cluster_by_auto=Trueв Python). См. раздел "Использование кластеризации жидкости" для таблиц.

    Только конвейеры Lakeflow

  • pipelines.reset.allowed

    По умолчанию: true

    Определяет, разрешено ли полное обновление для этой таблицы.

    Доступно в SDP как pipelines.reset.allowed

  • pipelines.autoOptimize.managed

    По умолчанию: true

    Включает или отключает автоматическую оптимизацию этой таблицы.

    Для конвейеров, управляемых прогнозной оптимизацией, это свойство не используется.

    Только конвейеры Lakeflow

Интервал срабатывания триггера конвейеров

Можно указать интервал триггера канала для всего канала или в рамках объявления набора данных. См. раздел Задать интервал триггера для непрерывных конвейеров.

  • pipelines.trigger.interval

    Значение по умолчанию основано на типе потока:

    • Пять секунд для потоковых запросов.
    • Одна минута для завершения выполнения запросов, когда все входные данные из источников Delta.
    • Десять минут для полного выполнения запросов, когда некоторые источники данных могут не поддерживать Delta.

    Значение — это число, а также единица времени. Ниже приведены допустимые единицы времени:

    • second, seconds
    • minute, minutes
    • hour, hours
    • day, days

    При определении значения можно использовать единицу сингулярного или множественного числа, например:

    • {"pipelines.trigger.interval" : "1 hour"}
    • {"pipelines.trigger.interval" : "10 seconds"}
    • {"pipelines.trigger.interval" : "30 second"}
    • {"pipelines.trigger.interval" : "1 minute"}
    • {"pipelines.trigger.interval" : "10 minutes"}
    • {"pipelines.trigger.interval" : "10 minute"}

    Только конвейеры Lakeflow

Databricks рекомендует задать pipelines.trigger.interval для отдельных таблиц, так как потоковая передача и пакетные запросы имеют разные значения по умолчанию. Устанавливайте значение на конвейере только тогда, когда обработка требует управления обновлениями для всего графа конвейера.

Чтобы установить интервал в таблице в Python, используйте аргумент:spark_conf

@dp.table(
  spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
    return (<query>)

Чтобы установить интервал на следующих наборах данных в SQL, используйте SET:

SET pipelines.trigger.interval=10 seconds;

CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...

Чтобы установить интервал на всём конвейере, добавьте его к configuration объекту в спецификации конвейера:

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}

Атрибуты кластера, которые не являются пользовательскими наборами

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

Только конвейеры Lakeflow. SDP не управляет вычислительными ресурсами, поэтому эти атрибуты кластера не применяются

  • cluster_name

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

  • data_security_mode

    access_mode

    Эти значения автоматически задаются системой.

  • spark_version

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

  • autotermination_minutes

    Так как SDP управляет автоматическим завершением кластера и логикой повторного использования, время автоматического завершения кластера невозможно переопределить.

  • runtime_engine

    Хотя вы можете управлять этим полем, включив Photon для конвейера, нельзя задать это значение напрямую.

  • effective_spark_version

    Это значение автоматически устанавливается системой.

  • cluster_source

    Это поле задается системой и доступно только для чтения.

  • docker_image

    Так как SDP управляет жизненным циклом кластера, вы не можете использовать пользовательский контейнер с кластерами конвейеров.

  • workload_type

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

Параметры источника и запроса

Некоторые действия приема и обработки данных настраиваются в источнике данных или запросе, а не в качестве свойств конвейера. К ним относятся эволюция схемы, подсказки схемы и вывод, ограничения скорости приема и фильтрация файлов. Чтобы настроить их, используйте параметры для read_files и автозагрузчика. Сведения об эволюции from_jsonсхемы см. в разделе " Вывод" и развитие схемы с помощью from_json конвейеров.