Настройка параметров конвейера для разностных динамических таблиц
В этой статье содержатся сведения о настройке параметров конвейера для разностных динамических таблиц. Delta Live Tables предоставляет пользовательский интерфейс для настройки и редактирования параметров конвейера. Пользовательский интерфейс также предоставляет возможность отображения и редактирования параметров в ФОРМАТЕ JSON.
Примечание.
Большинство параметров можно настроить с помощью пользовательского интерфейса или спецификации JSON. Некоторые дополнительные параметры доступны только с помощью конфигурации JSON.
Databricks рекомендует ознакомиться с параметрами Delta Live Tables с помощью пользовательского интерфейса. При необходимости можно напрямую изменить конфигурацию JSON в рабочей области. Файлы конфигурации JSON также полезны при развертывании конвейеров в новых средах или при использовании ИНТЕРФЕЙСА командной строки или REST API.
Полный справочник по параметрам конфигурации JSON delta Live Tables см . в конфигурациях конвейера delta Live Tables.
Примечание.
Так как вычислительные ресурсы полностью управляются для бессерверных конвейеров, вычислительные параметры, такие как расширенный автомасштабирование, политики кластера, типы экземпляров и теги кластера недоступны при выборе бессерверных (общедоступная предварительная версия) для конвейера.
Параметры конфигурации по-прежнему можно передавать в бессерверный конвейер, но все параметры, заданные в clusters
объекте в конфигурации JSON, игнорируются.
Чтобы узнать о включении конвейеров DLT без сервера, обратитесь к группе учетных записей Azure Databricks.
Выбор выпуска продукта
Выберите выпуск продукта Delta Live Tables с функциями, которые лучше всего подходят для ваших требований к конвейеру. Доступны следующие выпуски продуктов:
Core
для выполнения рабочих нагрузок приема потоковой передачи. Выберите выпуск,Core
если конвейер не требует дополнительных функций, таких как запись измененных данных (CDC) или ожидания разностных динамических таблиц.Pro
для выполнения приема потоковой передачи и рабочих нагрузок CDC. Выпуск продуктаPro
поддерживает все функцииCore
, а также рабочие нагрузки, требующие обновления таблиц на основе изменений в исходных данных.Advanced
для выполнения рабочих нагрузок приема потоковой передачи, рабочих нагрузок CDC и рабочих нагрузок, требующих ожиданий. Выпуск продуктаAdvanced
поддерживает функции выпусковCore
иPro
, а также применение ограничений качества данных с ожиданиями Delta Live Tables.
Выпуск продукта можно выбрать при создании или изменении конвейера. Для каждого конвейера можно выбрать разные выпуски. См. страницу продукта Delta Live Tables.
Примечание.
Если конвейер содержит функции, не поддерживаемые выбранным выпуском продукта, например ожидания, вы получите сообщение об ошибке с причиной ошибки. Затем вы можете изменить конвейер, чтобы выбрать соответствующий выпуск.
Выбор режима конвейера
Конвейер можно обновлять непрерывно или вручную с помощью триггеров вручную на основе режима конвейера. См. статью "Непрерывный и активированный конвейер".
Выбор политики кластера
У пользователей должны быть разрешения на развертывание вычислительных ресурсов для настройки и обновления конвейеров Delta Live Tables. Администраторы рабочей области могут настроить политики кластера для предоставления пользователям доступа к вычислительным ресурсам для разностных динамических таблиц. См. раздел "Определение ограничений" для вычислений конвейера Delta Live Tables.
Примечание.
Политики кластера являются необязательными. Обратитесь к администратору рабочей области, если у вас отсутствуют привилегии вычислений, необходимые для разностных динамических таблиц.
Чтобы убедиться, что значения политики кластера по умолчанию применяются правильно, задайте
apply_policy_default_values
значениеtrue
в конфигурациях кластера в конфигурации конвейера:{ "clusters": [ { "label": "default", "policy_id": "<policy-id>", "apply_policy_default_values": true } ] }
Настройка библиотек исходного кода
Вы можете использовать селектор файлов в пользовательском интерфейсе разностных динамических таблиц для настройки исходного кода, определяющего конвейер. Исходный код конвейера определяется в записных книжках Databricks или скриптах SQL или Python, хранящихся в файлах рабочей области. При создании или изменении конвейера можно добавить одну или несколько записных книжек или файлов рабочей области или сочетание записных книжек и файлов рабочей области.
Так как разностные динамические таблицы автоматически анализируют зависимости набора данных для создания графа обработки для конвейера, можно добавлять библиотеки исходного кода в любом порядке.
Можно также изменить JSON-файл, чтобы включить исходный код разностных таблиц, определенный в скриптах SQL и Python, хранящихся в файлах рабочей области. В следующем примере содержатся записные книжки и файлы рабочей области:
{
"name": "Example pipeline 3",
"storage": "dbfs:/pipeline-examples/storage-location/example3",
"libraries": [
{ "notebook": { "path": "/example-notebook_1" } },
{ "notebook": { "path": "/example-notebook_2" } },
{ "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.sql" } },
{ "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.py" } }
]
}
Указание расположения хранилища
Можно указать расположение хранилища для конвейера, который публикуется в хранилище метаданных Hive. Основная мотивация указания расположения — управлять расположением хранилища объектов для данных, записанных конвейером.
Так как все таблицы, данные, проверка точки и метаданные для конвейеров Delta Live Tables полностью управляются разностными динамическими таблицами, большинство взаимодействий с наборами данных Delta Live Tables происходит через таблицы, зарегистрированные в хранилище метаданных Hive или каталог Unity.
Указание целевой схемы для выходных таблиц конвейера
В то время как необязательно, необходимо указать целевой объект для публикации таблиц, созданных конвейером в любое время, когда вы переходите за рамки разработки и тестирования для нового конвейера. Публикация конвейера в целевой объект делает наборы данных доступными для запроса в другом месте среды Azure Databricks. Сведения о публикации данных из конвейеров Delta Live Tables в хранилище метаданных Hive или использование каталога Unity с конвейерами Delta Live Tables.
Настройка параметров вычислений
Примечание.
Так как вычислительные ресурсы полностью управляются для бессерверных конвейеров, параметры вычислений недоступны при выборе бессерверных (общедоступная предварительная версия) для конвейера.
Каждый конвейер разностных динамических таблиц имеет два связанных кластера:
- Кластер
updates
обрабатывает обновления конвейера. - Кластер
maintenance
выполняет задачи ежедневного обслуживания.
Конфигурация, используемая этими кластерами, определяется атрибутом, clusters
указанным в параметрах конвейера.
Вы можете добавить параметры вычислений, которые применяются только к конкретному типу кластера с помощью меток кластера. При настройке кластеров конвейеров можно использовать три метки:
Примечание.
Параметр метки кластера может быть опущен, если вы определяете только одну конфигурацию кластера. Метка default
применяется к конфигурациям кластера, если не указан параметр метки. Параметр метки кластера требуется только в том случае, если необходимо настроить параметры для разных типов кластеров.
- Метка
default
определяет параметры вычислений для применения как к кластерам, такupdates
иmaintenance
к кластерам. Применение одинаковых параметров к обоим кластерам повышает надежность выполнения обслуживания, обеспечивая применение необходимых конфигураций, например учетных данных доступа к данным для расположения хранилища, применяется к кластеру обслуживания. - Метка
maintenance
определяет параметры вычислений, применяемые только к кластеруmaintenance
. Вы также можете использоватьmaintenance
метку для переопределения параметров, настроенныхdefault
меткой. - Метка
updates
определяет параметры, применяемые только к кластеруupdates
.updates
Используйте метку для настройки параметров, которые не должны применяться к кластеруmaintenance
.
Параметры, определенные с помощью default
меток, updates
объединяются для создания окончательной конфигурации кластераupdates
. Если один и тот же параметр определен с помощью обоих default
updates
и меток, параметр, определенный с меткой, переопределяет параметр, определенный updates
меткой default
.
В следующем примере определяется параметр конфигурации Spark, добавляемый только в конфигурацию кластера updates
:
{
"clusters": [
{
"label": "default",
"autoscale": {
"min_workers": 1,
"max_workers": 5,
"mode": "ENHANCED"
}
},
{
"label": "updates",
"spark_conf": {
"key": "value"
}
}
]
}
Delta Live Tables предоставляет аналогичные параметры для параметров кластера, как и другие вычислительные ресурсы в Azure Databricks. Как и другие параметры конвейера, можно изменить конфигурацию JSON для кластеров, чтобы указать параметры, которые отсутствуют в пользовательском интерфейсе. См. раздел " Вычисления".
Примечание.
- Так как среда выполнения Delta Live Tables управляет жизненным циклом кластеров конвейеров и запускает пользовательскую версию Databricks Runtime, вы не можете вручную задать некоторые параметры кластера в конфигурации конвейера, например версию Spark или имена кластеров. См . атрибуты кластера, которые не являются пользовательскими наборами.
- Конвейеры Delta Live Tables можно настроить для использования Photon. См. статью " Что такое Фотон?".
Выбор типов экземпляров для запуска конвейера
По умолчанию Delta Live Tables выбирает типы экземпляров для узлов драйвера и рабочих узлов, которые выполняют конвейер, но также можно вручную настроить типы экземпляров. Например, может потребоваться выбрать типы экземпляров, чтобы повысить производительность конвейера или устранить проблемы с памятью при запуске конвейера. Можно настроить типы экземпляров при создании или изменении конвейера с помощью REST API или в пользовательском интерфейсе Delta Live Tables.
Чтобы настроить типы экземпляров при создании или изменении конвейера в пользовательском интерфейсе разностных динамических таблиц:
- Нажмите кнопку Параметры .
- В разделе "Дополнительно" параметров конвейера в раскрывающихся меню "Рабочий тип" и "Драйвер" выберите типы экземпляров для конвейера.
Чтобы настроить типы экземпляров в параметрах JSON конвейера, нажмите кнопку JSON и введите конфигурации типов экземпляра в конфигурации кластера:
Примечание.
Чтобы избежать назначения ненужных ресурсов maintenance
кластеру, в этом примере метка используется updates
для задания типов экземпляров только updates
для кластера. Чтобы назначить типы экземпляров обоим updates
maintenance
кластерам, используйте default
метку или опустите параметр метки. Метка default
применяется к конфигурациям кластера конвейера, если не указан параметр метки. См. раздел "Настройка параметров вычислений".
{
"clusters": [
{
"label": "updates",
"node_type_id": "Standard_D12_v2",
"driver_node_type_id": "Standard_D3_v2",
"..." : "..."
}
]
}
Использование автомасштабирования для повышения эффективности и уменьшения использования ресурсов
Используйте расширенный автомасштабирование для оптимизации использования кластеров конвейеров. Расширенный автомасштабирование добавляет дополнительные ресурсы только в том случае, если система определяет, что эти ресурсы увеличивают скорость обработки конвейера. Ресурсы освобождаются, если они больше не нужны, и кластеры завершаются сразу после завершения всех обновлений конвейера.
Дополнительные сведения о расширенном автомасштабировании, включая сведения о конфигурации, см. в статье "Оптимизация использования кластеров конвейеров Delta Live Tables с расширенным автомасштабированием".
Задержка завершения работы вычислений
Так как кластер разностных динамических таблиц автоматически завершает работу, когда не используется, ссылка на политику кластера, задающую параметр autotermination_minutes
в конфигурации кластера, приводит к ошибке. Для управления поведением завершения работы кластера можно использовать режим разработки или рабочей среды или использовать pipelines.clusterShutdown.delay
параметр в конфигурации конвейера. В следующем примере значение pipelines.clusterShutdown.delay
устанавливается равным 60 секундам:
{
"configuration": {
"pipelines.clusterShutdown.delay": "60s"
}
}
Если режим production
включен, значение pipelines.clusterShutdown.delay
по умолчанию составляет 0 seconds
. Если режим development
включен, значение по умолчанию составляет 2 hours
.
Создание кластера с одним узлом
Если для num_workers
задано значение 0 в параметрах кластера, кластер будет создан как кластер с одним узлом. При настройке кластера автомасштабирования и установке для min_workers
и max_workers
значений 0 также будет создан кластер с одним узлом.
Если настроить кластер автомасштабирования и задать только для min_workers
значение 0, кластер не будет создан как кластер с одним узлом. У кластера всегда есть по крайней мере одна активная рабочую роль, пока он не будет остановлен.
Пример конфигурации кластера для создания кластера с одним узлом в Delta Live Tables:
{
"clusters": [
{
"num_workers": 0
}
]
}
Настройка тегов кластера
С помощью тегов кластера можно выполнять мониторинг использования кластеров конвейеров. Добавление тегов кластера в пользовательский интерфейс таблиц Delta Live Tables при создании или изменении конвейера или редактировании параметров JSON для кластеров конвейеров.
Конфигурация облачного хранилища
Чтобы получить доступ к хранилищу Azure, необходимо настроить необходимые параметры, включая маркеры доступа, с помощью spark.conf
параметров в конфигурациях кластера. Пример настройки доступа к учетной записи хранения Azure Data Lake Storage 2-го поколения (ADLS 2-го поколения) см. в статье "Безопасный доступ к учетным данным хранилища с секретами в конвейере".
Параметризация конвейеров
Код Python и SQL, который определяет наборы данных, может быть параметризован с помощью настроек конвейера. Параметризация позволяет задействовать следующие варианты использования:
- Выделение из кода длинных путей и других переменных.
- Сокращение объема данных, обработанных в средах разработки или промежуточной среды, чтобы ускорить тестирование.
- Повторное использование логики преобразования для обработки содержимого нескольких источников данных.
В следующем примере используется значение конфигурации startDate
, ограничивающее конвейер разработки определенным подмножеством входных данных:
CREATE OR REFRESH LIVE TABLE customer_events
AS SELECT * FROM sourceTable WHERE date > '${mypipeline.startDate}';
@dlt.table
def customer_events():
start_date = spark.conf.get("mypipeline.startDate")
return read("sourceTable").where(col("date") > start_date)
{
"name": "Data Ingest - DEV",
"configuration": {
"mypipeline.startDate": "2021-01-02"
}
}
{
"name": "Data Ingest - PROD",
"configuration": {
"mypipeline.startDate": "2010-01-02"
}
}
Интервал срабатывания конвейеров
С помощью pipelines.trigger.interval
вы можете управлять интервалом триггера для потока обновления одной таблицы или всем конвейером. Так как триггерный конвейер обрабатывает каждую таблицу только один раз, pipelines.trigger.interval
он используется только с непрерывными конвейерами.
Databricks рекомендует настраивать pipelines.trigger.interval
на уровне отдельных таблиц из-за того, что для потоковой передачи и пакетных запросов используются разные параметры по умолчанию. Задавайте это значение для всего конвейера только в том случае, если для вашего сценария обработки требуется контроль обновлений всего графа конвейера.
Для таблицы можно задать pipelines.trigger.interval
с помощью spark_conf
в Python или SET
в SQL:
@dlt.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH LIVE TABLE TABLE_NAME
AS SELECT ...
Чтобы задать pipelines.trigger.interval
для конвейера, добавьте этот параметр в объект configuration
параметров конвейера:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}
Разрешить пользователям без администратора просматривать журналы драйверов из конвейера с поддержкой каталога Unity
По умолчанию только администраторы конвейера и администраторы рабочей области имеют разрешение на просмотр журналов драйверов из кластера, на котором выполняется конвейер с поддержкой каталога Unity. Вы можете включить доступ к журналам драйверов для любого пользователя с разрешениями CAN MANAGE, CAN VIEW или CAN RUN, добавив следующий параметр конфигурации Spark в configuration
объект в параметрах конвейера:
{
"configuration": {
"spark.databricks.acl.needAdminPermissionToViewLogs": "false"
}
}
Добавление Уведомления по электронной почте для событий конвейера
Вы можете настроить один или несколько адресов электронной почты для получения уведомлений, когда происходит следующее:
- Обновление конвейера успешно завершено.
- Обновление конвейера завершается сбоем либо с повторным повтором, либо с ошибкой, не допускающей повторных попыток. Выберите этот параметр, чтобы получить уведомление обо всех сбоях конвейера.
- Обновление конвейера завершается ошибкой без повторных попыток (неустранимая). Выберите этот параметр, чтобы получить уведомление только в том случае, если возникает ошибка без повторных попыток.
- Сбой одного потока данных.
Чтобы настроить Уведомления по электронной почте при создании или изменении конвейера:
- Нажмите кнопку "Добавить уведомление".
- Введите один или несколько адресов электронной почты для получения уведомлений.
- Щелкните поле проверка для каждого типа уведомления, чтобы отправить на настроенные адреса электронной почты.
- Нажмите кнопку "Добавить уведомление".
Управление контрольным камнем для запросов типа 1 SCD
Следующие параметры можно использовать для управления поведением управления могилами для DELETE
событий во время обработки SCD типа 1:
pipelines.applyChanges.tombstoneGCThresholdInSeconds
: задайте это значение для сопоставления максимального ожидаемого интервала в секундах между данными вне порядка. Значение по умолчанию — 172800 секунд (2 дня).pipelines.applyChanges.tombstoneGCFrequencyInSeconds
: этот параметр определяет частоту очистки в секундах, проверка для очистки. Значение по умолчанию — 1800 секунд (30 минут).
См . упрощенную запись данных об изменениях с помощью API APPLY CHANGES в Delta Live Tables.
Настройка прав доступа к конвейеру
Для управления разрешениями на него необходимо иметь CAN MANAGE
или IS OWNER
разрешение на конвейер.
На боковой панели щелкните Delta Live Tables.
Выберите имя конвейера.
Щелкните меню кебаб и выберите "Разрешения".
В меню "Разрешения" Параметры выберите пользователя, группу или субъект-службу... и выберите пользователя, группу или субъект-службу.
Выберите разрешение в раскрывающемся меню разрешений.
Нажмите кнопку Добавить.
Нажмите кнопку Сохранить.
Включение хранилища состояний RocksDB для разностных динамических таблиц
Вы можете включить управление состоянием на основе RocksDB, задав следующую конфигурацию перед развертыванием конвейера:
{
"configuration": {
"spark.sql.streaming.stateStore.providerClass": "com.databricks.sql.streaming.state.RocksDBStateStoreProvider"
}
}
Дополнительные сведения о хранилище состояний RocksDB, включая рекомендации по настройке Для RocksDB, см. в статье Настройка хранилища состояний RocksDB в Azure Databricks.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по