Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Managed Service for ClickHouse
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Изменение настроек кластера и базы данных
    • Подключение внешних словарей
    • Подключение собственной геобазы
    • Подключение моделей машинного обучения
    • Управление схемами формата данных
    • Подключение к DataLens
    • Изменение версии ClickHouse
    • Управление хостами ClickHouse
    • Управление хостами ZooKeeper
    • Управление базами данных
    • Управление пользователями БД
    • Управление резервными копиями
    • Управление шардами
    • Управление группами шардов
    • Удаление кластера
  • Сценарии использования
    • Добавление данных в БД
    • Миграция данных ClickHouse
    • Шардирование таблиц
    • Использование гибридного хранилища
    • Получение данных из Managed Service for Apache Kafka®
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for ClickHouse
    • Квоты и лимиты
    • Типы хранилища
    • Резервные копии
    • Репликация
    • Словари
    • Шардирование
    • Поддерживаемые клиенты
    • Политика работа с версиями ClickHouse
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • BackupService
      • ClusterService
      • DatabaseService
      • MlModelService
      • ResourcePresetService
      • UserService
      • VersionsService
      • OperationService
    • REST
      • Обзор
      • Backup
        • Обзор
        • get
        • list
      • Cluster
        • Обзор
        • addHosts
        • addShard
        • addZookeeper
        • backup
        • create
        • createExternalDictionary
        • createShardGroup
        • delete
        • deleteExternalDictionary
        • deleteHosts
        • deleteShard
        • deleteShardGroup
        • get
        • getShard
        • getShardGroup
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShardGroups
        • listShards
        • move
        • restore
        • start
        • stop
        • streamLogs
        • update
        • updateShard
        • updateShardGroup
      • Database
        • Обзор
        • create
        • delete
        • get
        • list
      • MlModel
        • Обзор
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Обзор
        • get
        • list
      • User
        • Обзор
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Versions
        • Обзор
        • list
      • Operation
        • Обзор
        • get
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о ClickHouse
    • Все вопросы на одной странице
  1. Концепции
  2. Репликация

Репликация ClickHouse

  • Хосты ZooKeeper
  • Особенности управления ZooKeeper в Managed Service for ClickHouse
  • Реплицируемые таблицы

Managed Service for ClickHouse помогает организовать репликацию для кластеров ClickHouse с двумя и более хостами в шарде. Нужно лишь добавить хосты ZooKeeper в кластер и создать таблицы с поддержкой репликации. Непосредственно репликацией будет управлять Apache ZooKeeper в автоматическом режиме.

Из-за ограниченных ресурсов хосты классов b1.nano, b1.micro, b2.nano и b2.micro не реплицируются.

Хосты ZooKeeper

В Managed Service for ClickHouse перед добавлением новых хостов в шард из одного хоста необходимо включить отказоустойчивость для кластера, если она еще не включена. При этом будет добавлено минимальное количество хостов ZooKeeper для управления процессом репликации.

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

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

Важно

Обратите внимание, что:

  • Хосты ZooKeeper, если они есть, учитываются при расчете потребления ресурсов и стоимости кластера.
  • Если вы создали кластер и затем включили отказоустойчивость, то уменьшить количество хостов до одного в шардах из нескольких хостов будет невозможно.
  • Если кластер использует гибридное хранилище на стадии Preview, то в нем невозможно настроить репликацию. На стадии General Availability это ограничение будет снято.

Особенности управления ZooKeeper в Managed Service for ClickHouse

Для обеспечения работы автоматической репликации Managed Service for ClickHouse управляет хостами ZooKeeper следующим образом:

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

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

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

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

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, обязательно должен начинаться с прямого слэша /.
  • {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 см. в разделе Шардирование.

В этой статье:
  • Хосты ZooKeeper
  • Особенности управления ZooKeeper в Managed Service for ClickHouse
  • Реплицируемые таблицы
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»