Перейти к основному содержанию
Перейти к основному содержанию

Управление синхронизацией Postgres ClickPipe

В этом документе описывается, как управлять синхронизацией в Postgres ClickPipe, когда ClickPipe работает в режиме CDC (Running).

Обзор

Архитектура Database ClickPipes состоит из двух параллельных процессов — забора данных из исходной базы данных и отправки их в целевую базу данных. Процесс забора управляется конфигурацией синхронизации, которая определяет, как часто должны забираться данные и какой объём данных забирать за один раз. Под «за один раз» мы понимаем один батч, поскольку ClickPipe забирает и отправляет данные пакетами (батчами).

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

Интервал синхронизации

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

Значение по умолчанию — 1 минута. Интервал синхронизации может быть установлен в любое положительное целое значение, но рекомендуется держать его выше 10 секунд.

Размер батча вытягивания

Размер батча вытягивания — это количество записей, которые ClickPipe заберёт из исходной базы данных за один батч. Под записями понимаются INSERT, UPDATE и DELETE, выполненные над таблицами, входящими в конвейер.

Значение по умолчанию — 100 000 записей. Безопасный максимум — 10 миллионов.

Исключение: длительные транзакции на источнике

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

Настройка параметров синхронизации

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

Создание настроек синхронизации

При редактировании существующего ClickPipe перейдите на вкладку Settings конвейера, приостановите конвейер и затем нажмите Configure здесь:

Кнопка редактирования синхронизации

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

Редактирование настроек синхронизации

Тонкая настройка параметров синхронизации для снижения роста replication slot

Рассмотрим, как использовать эти настройки для работы с большим слотом репликации (replication slot) конвейера CDC. Время отправки данных в ClickHouse не масштабируется линейно относительно времени вытягивания данных из исходной базы данных. Это можно использовать для уменьшения размера такого слота репликации. Увеличив и интервал синхронизации, и размер батча вытягивания, ClickPipe заберёт большой объём данных из исходной базы данных за один проход, а затем отправит его в ClickHouse.

Мониторинг поведения управления синхронизацией

Вы можете увидеть, сколько времени занимает каждый батч, в таблице CDC Syncs на вкладке Metrics соответствующего ClickPipe. Обратите внимание, что указанная длительность включает время отправки, а также, если нет входящих строк, ClickPipe ждёт, и время ожидания также включается в длительность.

Таблица CDC Syncs