WalShadow — это нативный движок репликации для ClickHouse Managed Postgres, который читает данные напрямую из журнала предзаписи PostgreSQL (Write-Ahead Log, WAL). Он оптимизирован для рабочих нагрузок с низкой задержкой и высокой пропускной способностью и обеспечивает отставание репликации из Postgres в ClickHouse менее одной секунды. Разработка ведётся открыто в репозитории ClickHouse/walshadow.
WalShadow — один из двух методов репликации, доступных в разделе Sync to ClickHouse. Второй, ClickPipes, представляет собой полностью управляемый конвейер данных. Выбирайте WalShadow, если вам нужна минимальная задержка и минимальные накладные расходы на репликацию.
Если WalShadow доступен для вашего сервиса, на странице Overview отображается баннер закрытая предварительная версия. Нажмите Configure WalShadow, чтобы начать работу.
Прежде чем продолжить, убедитесь, что ваш сервис Postgres доступен для ClickHouse.
WalShadow подключается к целевому сервису ClickHouse напрямую, поэтому вам понадобятся пользователь ClickHouse и пароль с разрешением на создание баз данных и таблиц.1
Выберите движок репликации
Выберите WalShadow в качестве движка репликации, затем нажмите Next.
2
Настройте сервис репликации
Заполните настройки репликации:
- ClickHouse service: выберите существующий сервис ClickHouse или создайте новый
- Postgres database: выберите исходную базу данных, из которой будет выполняться репликация, или создайте новую
- Replication method: выберите один из вариантов:
- Initial load + CDC: импортировать существующие данные и поддерживать таблицы в актуальном состоянии по мере поступления новых изменений (рекомендуется)
- Initial load only: разовый импорт существующих данных без дальнейших обновлений
- CDC only: пропустить первоначальный импорт и фиксировать только новые изменения
3
Выберите таблицы для репликации
Выберите целевую базу данных и укажите, какие таблицы репликовать:
- Destination database: выберите существующую базу данных ClickHouse или создайте новую
- Tables: разверните каждую схему и выберите отдельные таблицы либо включите переключатель Select all tables. Для каждой таблицы можно задать Destination table name и изменить Column settings.
- ClickHouse user и ClickHouse password:
WalShadowподключается к целевому сервису ClickHouse напрямую, поэтому ему нужны учётные данные с разрешением на создание целевой базы данных и таблиц.
4
Мониторинг WalShadow
После запуска репликации
WalShadow появляется на странице Sync to ClickHouse. Пока конвейер разворачивается и готовится первоначальная загрузка, его статус — Creating.После завершения развёртывания статус меняется на Running. На странице отображаются актуальные метрики репликации:- Status: текущее состояние конвейера (например,
Running) - Rows synced: общее количество строк, реплицированных в ClickHouse
- Backfills pending: количество таблиц, ожидающих первоначальной загрузки
- Lag: объём данных WAL, которые ещё предстоит применить
- Lag time: насколько пункт назначения сейчас отстаёт от Postgres
- Uptime: как долго работает конвейер
- Last updated: когда метрики обновлялись последний раз
Ограничения
Несколько моментов, которые следует учитывать, покаWalShadow находится в статусе закрытой предварительной версии:
- Пока поддерживается только один
WalShadowна сервис Postgres. - Операции и более детальные метрики запланированы в roadmap.