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

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

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

Обзор

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

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

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

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

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

Размер пакета выборки

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

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

Исключение: Долгоживущие транзакции в исходной базе данных

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

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

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

Create sync settings

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

Edit sync button

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

Edit sync settings

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

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

Мониторинг работы механизма синхронизации

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

Таблица CDC Syncs