Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for ClickHouse®
  • Начало работы
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
    • Сеть в Managed Service for ClickHouse®
    • Квоты и лимиты
    • Типы дисков
    • Резервные копии
    • Репликация
    • Словари
    • Шардирование
    • Служебные пользователи
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Управление памятью
    • Политика работы с версиями ClickHouse®
    • Настройки ClickHouse®
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • ClickHouse® Keeper
  • ZooKeeper
  • Реплицируемые таблицы
  • Примеры использования
  1. Концепции
  2. Репликация

Репликация в Managed Service for ClickHouse®

Статья создана
Yandex Cloud
Обновлена 15 мая 2025 г.
  • ClickHouse® Keeper
  • ZooKeeper
  • Реплицируемые таблицы
  • Примеры использования

Репликация в ClickHouse® осуществляется, если в кластере одновременно выполняются следующие условия:

  • существует хотя бы один шард с двумя или более хостами;
  • настроен механизм координации между хостами.

Кластер Managed Service for ClickHouse®, в котором функционирует репликация, считается отказоустойчивым. В таком кластере доступно создание реплицируемых таблиц.

Для координации хостов и распределения запросов между ними Managed Service for ClickHouse® позволяет использовать один из следующих механизмов:

  • ClickHouse® Keeper;
  • ZooKeeper (по умолчанию).

ClickHouse® KeeperClickHouse® Keeper

Примечание

Эта функциональность находится на стадии Preview. Доступ к ClickHouse® Keeper предоставляется по запросу. Обратитесь в техническую поддержку или к вашему аккаунт-менеджеру.

ClickHouse® Keeper — сервис для репликации данных и выполнения распределенных DDL-запросов, реализующий совместимый с ZooKeeper клиент-серверный протокол. В отличие от ZooKeeper, ClickHouse® Keeper не требует для своей работы отдельных хостов, а выполняется на хостах ClickHouse®. Включить поддержку ClickHouse® Keeper можно только при создании кластера.

Использование ClickHouse® Keeper накладывает следующие ограничения:

  • Можно создавать кластеры только из трех или более хостов.
  • Поддержку ClickHouse® Keeper нельзя включить или выключить после создания кластера.
  • Кластеры, использующие хосты ZooKeeper, нельзя перевести на использование ClickHouse® Keeper.
  • Перенести хост c ClickHouse® Keeper в другую зону доступности можно только через обращение в службу поддержки.

Подробнее о ClickHouse® Keeper см. в документации ClickHouse®.

ZooKeeperZooKeeper

ZooKeeper — это сервис, который обеспечивает координацию и распределение запросов между хостами ClickHouse®. Для обеспечения репликации в кластере Managed Service for ClickHouse® должно быть три или пять хостов ZooKeeper.

Если кластер состоит из одного хоста ClickHouse® или нескольких однохостовых шардов и был создан без поддержки ClickHouse® Keeper, перед добавлением новых хостов нужно обеспечить его отказоустойчивость. Для этого добавьте в кластер три или пять хостов ZooKeeper. Если в кластере уже есть хосты ZooKeeper, вы можете добавлять хосты ClickHouse® к любым шардам.

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

  • Если в виртуальной сети для кластера есть подсети в каждой из зон доступности, то в каждую подсеть автоматически будет добавлено по одному хосту ZooKeeper, если не указать настройки этих хостов явно. При необходимости можно явно указать три хоста ZooKeeper и их настройки при создании кластера.

  • Если в виртуальной сети для кластера есть подсети только в некоторых зонах доступности, то нужно явно указать три хоста ZooKeeper и их настройки при создании кластера.

  • Если вы не указали подсети для этих хостов, Managed Service for ClickHouse® автоматически распределит их по подсетям той сети, к которой подключен кластер ClickHouse®.

Минимальное количество ядер для одного хоста ZooKeeper зависит от суммарного количества ядер хостов ClickHouse®:

Суммарное количество ядер хостов ClickHouse® Минимальное количество ядер для одного хоста ZooKeeper
Менее 48 2
48 и более 4

Класс хостов и размер хранилища ZooKeeper можно изменить при изменении настроек кластера. Изменить настройки ZooKeeper или подключиться к его хостам нельзя.

Важно

Хосты ZooKeeper, если они есть, учитываются при расчете потребления ресурсов и стоимости кластера.

Реплицируемые таблицыРеплицируемые таблицы

ClickHouse® поддерживает автоматическую репликацию только для таблиц на движке семейства ReplicatedMergeTree. Чтобы обеспечить репликацию, вы можете создать такие таблицы на каждом хосте по отдельности или использовать распределенный DDL-запрос.

Важно

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

Чтобы создать таблицу ReplicatedMergeTree на определенном хосте ClickHouse®, отправьте запрос следующего вида:

CREATE TABLE db_01.table_01 (
    log_date date,
    user_name String) ENGINE = ReplicatedMergeTree ('/table_01', '{replica}'
)
PARTITION BY log_date
ORDER BY
    (log_date, user_name);

Здесь:

  • db_01 — имя базы данных.
  • table_01 — имя таблицы.
  • /table_01 — путь к таблице в ZooKeeper или ClickHouse® Keeper, обязательно должен начинаться с прямого слэша /.
  • {replica} — макроподстановка идентификатора хоста.

Чтобы создать реплицируемые таблицы на всех хостах кластера, отправьте распределенный DDL-запрос:

CREATE TABLE db_01.table_01 ON CLUSTER '{cluster}' (
    log_date date,
    user_name String) ENGINE = ReplicatedMergeTree ('/table_01', '{replica}'
)
PARTITION BY log_date
ORDER BY
    (log_date, user_name);

Аргумент '{cluster}' автоматически разрешится в идентификатор кластера ClickHouse®.

Об организации взаимодействия реплицированных и распределенных таблиц в кластере ClickHouse® см. в разделе Шардирование.

Примеры использованияПримеры использования

  • Асинхронная репликация данных из PostgreSQL в ClickHouse®
  • Загрузка данных из Yandex Managed Service for YDB в Managed Service for ClickHouse® с помощью Yandex Data Transfer
  • Загрузка данных из Yandex Object Storage в Managed Service for ClickHouse® с помощью Yandex Data Transfer
  • Миграция базы данных из MySQL® в ClickHouse® с помощью Yandex Data Transfer

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

Была ли статья полезна?

Предыдущая
Резервные копии
Следующая
Словари
Проект Яндекса
© 2025 ООО «Яндекс.Облако»