ограничение на глубину вложенности?
То есть layer в макросе, по сути, просто некий номер, по которому таблица репликации определяет все машины,
по которым она должны реплицировать свои данные.
Получается, если хотелось бы иметь какую-то таблицу, которую следует реплицировать по всем кластерам, их шардам,
их репликам, то это получилось бы трехуровневое шардирование, типо того:
<macros>
<layer>1</layer>
<layer>2</layer>
<shard>1</shard>
<replica>1</replica>
</macros>
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}_{layer}_{shard}/DB1.Tab1', '{replica}')
но трехуровневое не предусмотрено или это сработает? или сработает, елси захардкодить слой:
ENGINE = ReplicatedMergeTree('/clickhouse/tables/1-2-{shard}/DB1.Tab1', '{replica}')
Это все на откуп пользователям, нет никакой жесткой фиксации имена макросов могут быть любыми как и их число в zookeeper path
можете так <macros> <layer>1</layer> <sublayer>2</sublayer> <shard>1</shard> <replica>1</replica> </macros> ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}_{sublayer}_{shard}/DB1.Tab1', '{replica}')
layer нужен яндексу, потому что там большой кластер 400+ машин , вам это не нужно, забудьте. Если вы хотите разреплицировать таблицу на все ноды в вашем кластере, то просто опустите {shard} в zk пути таблицы при создании таблицы
Обсуждают сегодня