Обсуждаем ClickHouse
@den_crane @Artemm_1989 понял, большое спасибо
Читать полностью…macro substitutionЧитать полностью…
replica 01
replica 01
replica 01
replica 01
replica 01
replica 01
replica 01
replica 01
select * from clusterAllReplicas('cluster', system.macros) where macro = 'replica'
При таком создании
CREATE TABLE test.table ON CLUSTER cluster
(
field1 String,
field2 Int32
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/replicated/{uuid}', '{replica}')
ORDER BY (
field1 ,
field2
)
SETTINGS index_granularity = 8192;
SQL Error [22000]: Code: 253. DB::Exception: There was an error on: Code: 253. DB::Exception: Replica /clickhouse/tables/replicated/ererr-e312-42ca-a0ba-c5fffw/replicas/01 already exists.
(REPLICA_ALREADY_EXISTS) (version 24.10.3.1 & D-02.001.00-01). (REPLICA_ALREADY_EXISTS) (version 24.10.3.1 & D-02.001.00-01)
вообще странный путь /click/ch_replicated/{shard} он реально такой?
Читать полностью…Вы предыдущую таблицу удаляли без SYNC. Из-за этого метаданные еще не удалились из зукипера.
Читать полностью…Не совсем может понял вас
Изменение
ENGINE = ReplicatedMergeTree('/click/ch_replicated/{shard}',
'{replica}')
ENGINE = ReplicatedMergeTree('/click/ch_replicated/', '{replica}')
Тогда для чего on cluster помимо подсказки что иди по этой таблице в конфигурацию и смотри параметры репликации??
Читать полностью…да, тупо опускаете макрос {shard} в зк пути и путь становится одинаковым для всех шардов, у меня таким образом у таблиц дименшинов N реплик, при N = Shards * ReplicationFuctor
Читать полностью…если расстояние большое (пинг больше 15мс), то все зукиперы в одном датацентре, пишем тоже в том же датацентре где зукиперы, остальные датацентры типа только реплицируют и не используются для инсертов, таким образом у меня работал КХ через океан, зукиперы и инсерты в DE, реплики в US
если расстояние небольшое то все проще
в зукипере очередь, нода поднимется и реплицирует, если очередь уже провернулась и партов нет (смержились), то в любом случае нода когда поднимается проверяет свой набор партов с тем набором что у других реплик (через список в зукипере) и начинает синхронизировать свой список, удаляет лишние парты, качает недостающие
Читать полностью…Кликхаус машина - ничего не знает о других машинах в кластере.
Это не ГП.
нужен макрос, который будет разным на всех этих машинах типа 01 02 03 04 05 06 07 08. Можете этот поправить, можете новый макрос завести.
Читать полностью…аа, я понял, у вас реплики неправильно называются - 01
replica должна быть уникальная на весь кластер, обычно люди используют hostname
А у вас реплики в каждом шарде одинаково называются ? 01 ?
Читать полностью…Да, ошибка та же. У себя в примере выше сначала сослался на старую таблицу в пути. Потом поправил на новую и ошибка такая же, как у Игоря
Читать полностью…Да, тестовый cH для поделок давно делали)
Сейчас другой пример скинем
Да. Ну я ничего не удалял, просто новую сделал с новым именем через create table on cluster
Читать полностью…А где название таблицы ?
ch_replicated ?
тогда сделайте
ch_replicatedV2
ON CLUSTER нужен для DDL распределённых запросов и всё.
Читать полностью…on cluster -- не имеет отношения к репликации,
ON CLUSTER это просто хелпер который выполняет команду на многих узлах, раньше его не было, и надо было вручную организовывать выполнение команд create/alter/drop на всех нодах. Я до сих почти не пользуюсь ON CLUSTER.
Добрый вечер. Подскажите, пжл, нужна копия таблицы на всех шардах. Возможно как-то настроить репликацию между шардами чтобы не писать в каждый шард по отдельности?
Читать полностью…1) TTL WHERE is unusable garbage #45608 use TTL instead (you can express anything in TTL expression, without using WHERE #73781 (comment)).
https://github.com/ClickHouse/ClickHouse/issues/77099#issuecomment-2783205492
2) используйте округление toStartOfDate в ttl
Ну так то да))) если не указать, то наверное другого места и нет. Но могу по Незнайке ошибаться!
Читать полностью…