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

Контроль синхронизации Postgres ClickPipe

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

Обзор

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

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

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

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

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

Размер пакета извлечения

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

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

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

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

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

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

Создать параметры синхронизации

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

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

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

Редактировать параметры синхронизации

Настройка параметров синхронизации для помощи с ростом репликационного слота

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

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

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

Таблица CDC Syncs