Активируется и режим непрерывного конвейера
В этой статье описывается операционная семантика триггерных и непрерывных режимов конвейера для разностных динамических таблиц.
Режим конвейера не зависит от типа вычисляемой таблицы. Материализованные представления и таблицы потоковой передачи можно обновлять в любом режиме конвейера.
Чтобы измениться между триггерами и непрерывными, используйте параметр режима конвейера в параметрах конвейера при создании или редактировании конвейера. См. статью "Настройка конвейера разностных динамических таблиц".
Примечание.
Операции обновления для материализованных представлений и таблиц потоковой передачи, определенных в Databricks SQL, всегда выполняются с помощью активированного режима конвейера.
Что такое режим конвейера с триггером?
Если конвейер использует активированный режим, система останавливает обработку после успешного обновления всех таблиц или выбранных таблиц, обеспечивая обновление каждой таблицы в обновлении на основе данных, доступных при запуске обновления.
Что такое режим непрерывного конвейера?
Если конвейер использует непрерывное выполнение, Delta Live Tables обрабатывает новые данные по мере поступления в источники данных для сохранения таблиц во всем конвейере.
Чтобы избежать ненужной обработки в непрерывном режиме выполнения, конвейеры автоматически отслеживают зависимые таблицы Delta и выполняют обновление только при изменении содержимого этих зависимых таблиц.
Выбор режимов конвейера данных
В следующей таблице перечислены различия между триггерами и режимами непрерывного конвейера:
Основные вопросы | Активируемые | Непрерывные |
---|---|---|
Когда обновление останавливается? | Автоматически после завершения. | Выполняется непрерывно до тех пор, пока не будет остановлено вручную. |
Какие данные обрабатываются? | Данные, доступные при запуске обновления. | Все данные по мере поступления в настроенные источники. |
Какие требования к свежести данных лучше всего подходить? | Обновления данных выполняются каждые 10 минут, почасовой или ежедневно. | Обновления данных нужны каждые 10 секунд до нескольких минут. |
Триггерные конвейеры могут снизить потребление ресурсов и расходы, так как кластер выполняется достаточно долго, чтобы обновить конвейер. Однако новые данные не будут обрабатываться до тех пор, пока конвейер не будет запущен. Для непрерывных конвейеров требуется постоянно работающий кластер, который дороже, но снижает задержку обработки.
Установка интервала триггера для непрерывных конвейеров
При настройке конвейеров для непрерывного режима можно задать интервалы триггеров, чтобы контролировать частоту запуска конвейера обновления для каждого потока.
С помощью 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 MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
Чтобы задать pipelines.trigger.interval
для конвейера, добавьте этот параметр в объект configuration
параметров конвейера:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}