Репликация в Managed Service for ClickHouse®
Репликация в ClickHouse® осуществляется, если в кластере одновременно выполняются следующие условия:
- существует хотя бы один шард с двумя или более хостами;
- настроен механизм координации между хостами.
Кластер Managed Service for ClickHouse®, в котором функционирует репликация, считается высокодоступным. В таком кластере доступно создание реплицируемых таблиц и реплицируемых баз данных.
Реплицируемые таблицы
ClickHouse® поддерживает автоматическую репликацию только для таблиц на движке семейства ReplicatedMergeTree
Важно
Рекомендуется создавать реплицируемые таблицы на всех хостах кластера, иначе может произойти потеря данных после восстановления кластера из резервной копии или миграции хостов кластера в другую зону доступности.
Чтобы создать таблицу 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® см. в разделе Шардирование.
Реплицируемые базы данных
В ClickHouse® при создании базы данных можно выбрать движок Replicated. Он обеспечивает репликацию метаданных таблиц между всеми репликами базы данных. При этом набор таблиц и их схемы будут одинаковыми для всех реплик.
Движок задается при создании базы данных и не может быть изменен для этой базы.
Примеры использования
- Асинхронная репликация данных из 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