со схемой 2 шарда по 2 реплики каждый. Могу я на этих же серверах поднять ещё один кластер со схемой 4 шарда по 1 реплике? Не сломается репликация из предыдущего кластера? Есть какие-то подводные камни в настройках?
репликация к кластерам никакого отношения вообще не имеет репликация это путь в zookeeper по которому разные реплики poll делают для скачивания партов из replication queue... соответственно шардирование в репликации... это просто когда разные шарды в разные пути смотрят достигается это использованием макросов в пути обычно... типа {shard}
Ну а как определится, к какому шарду относится таблица?
SELECT engine_full FROM system.tables WHERE database=? and name=?
ReplicatedMergeTree('/clickhouse/tables/{uuid}/{shard}', '{replica}') ...
И вот как тут раскроется макрос {shard}?
ну вот {shard} это см. в system.macros те шарды которые в system.clusters и remote_servers они только для engine=Distributed и используются только при вставке данных... при select из distributed данные все равно данные из всех шардов тянутся, с ближайшей живой реплики
А репликация как себя будет вести? Там на настройки кластера ничего не смотрит?
нет.. там смотрит только на system.macros и на zookeeper path из ReplicatedMegreTree параметров таблицы...
но если вставляете в Distribtuted с новым кластером где все шарды отдельно... то оно поделит данные .. в соответсвии с ключем шардирования и дальше отреплицирует после вставки в целевую таблицу... данные при этом вроде не должны задублироваться... но надо проверить...
Обсуждают сегодня