Size: a a a

ClickHouse не тормозит

2020 September 09

ЕГ

Евгений Гаврилов... in ClickHouse не тормозит
Dmitry Titov
Но вообще странный кейс, у вас там что ли рейда нет?
Точно пока не знаю.
источник

Е

Екатерина in ClickHouse не тормозит
правильно ли я понимаю:
Layer - id группы машин? Есть ли ограничение на глубину вложенности?

То есть 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}')
источник

DT

Dmitry Titov in ClickHouse не тормозит
Екатерина
правильно ли я понимаю:
Layer - id группы машин? Есть ли ограничение на глубину вложенности?

То есть 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
источник

DT

Dmitry Titov in ClickHouse не тормозит
Яндекс просто показали, какую схему они используют(но вроде уже у них другая, но могу ошибатся)
источник

Е

Екатерина in ClickHouse не тормозит
это я поняла, теперь хочу понять, как это правильно и как лучше нам использовать, просто в доке очень мало написано, а функционал полезный, тем более, если еще и глубина вложенности слоев может быть больше 2-х
источник

D

Dj in ClickHouse не тормозит
Екатерина
правильно ли я понимаю:
Layer - id группы машин? Есть ли ограничение на глубину вложенности?

То есть 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}')
можете так

<macros>
   <layer>1</layer>
   <sublayer>2</sublayer>
   <shard>1</shard>
   <replica>1</replica>
</macros>

ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}_{sublayer}_{shard}/DB1.Tab1', '{replica}')
источник

Е

Екатерина in ClickHouse не тормозит
Dj
можете так

<macros>
   <layer>1</layer>
   <sublayer>2</sublayer>
   <shard>1</shard>
   <replica>1</replica>
</macros>

ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}_{sublayer}_{shard}/DB1.Tab1', '{replica}')
оу! спасибо!
источник

Е

Екатерина in ClickHouse не тормозит
Dj
можете так

<macros>
   <layer>1</layer>
   <sublayer>2</sublayer>
   <shard>1</shard>
   <replica>1</replica>
</macros>

ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}_{sublayer}_{shard}/DB1.Tab1', '{replica}')
а почитать об этом ее где-то можно?
источник

Е

Екатерина in ClickHouse не тормозит
ТОварищи, до меня дошло!!! спасибо большое!
источник

D

Dj in ClickHouse не тормозит
Екатерина
а почитать об этом ее где-то можно?
macros - тупо набор переменных...
источник

D

Dj in ClickHouse не тормозит
я бы кстати пользовал 001 а не 1... чтоб в папке ЗК сортировка работала
источник

D

Dj in ClickHouse не тормозит
tables/001_003_020/
лучше чем
tables/1_3_20/
источник

Е

Екатерина in ClickHouse не тормозит
Dj
я бы кстати пользовал 001 а не 1... чтоб в папке ЗК сортировка работала
спасибо за совет!
источник

D

Dm7 in ClickHouse не тормозит
Всем, привет! Мигрирую ноду кликхауса из одного дц в другой Хотел просто добавить новую реплику в соответствующий шард, а когда данные отреплицируются, лишнюю реплику из кластера удалить Но столкнулся с проблемой, как перенести схемы (около 40 бд c 800 таблицами ) на новую ноду Не могу найти как сделать это правильно Копир вроде не подходит (насколько я понял не получится скопировать данные в одноименную таблицу) Пока предполагаю скопировать metadata и перечитать оттуда на новую ноду запросы создания бд и таблиц Кто-нибудь сталкивался с такой задачей? (Версия Clickhouse 20.6.4.44)
источник

D

Dj in ClickHouse не тормозит
Dm7
Всем, привет! Мигрирую ноду кликхауса из одного дц в другой Хотел просто добавить новую реплику в соответствующий шард, а когда данные отреплицируются, лишнюю реплику из кластера удалить Но столкнулся с проблемой, как перенести схемы (около 40 бд c 800 таблицами ) на новую ноду Не могу найти как сделать это правильно Копир вроде не подходит (насколько я понял не получится скопировать данные в одноименную таблицу) Пока предполагаю скопировать metadata и перечитать оттуда на новую ноду запросы создания бд и таблиц Кто-нибудь сталкивался с такой задачей? (Версия Clickhouse 20.6.4.44)
> Пока предполагаю скопировать metadata
ну так и делайте... руками... ну и номер реплики в конфиге смените
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
Dm7
Всем, привет! Мигрирую ноду кликхауса из одного дц в другой Хотел просто добавить новую реплику в соответствующий шард, а когда данные отреплицируются, лишнюю реплику из кластера удалить Но столкнулся с проблемой, как перенести схемы (около 40 бд c 800 таблицами ) на новую ноду Не могу найти как сделать это правильно Копир вроде не подходит (насколько я понял не получится скопировать данные в одноименную таблицу) Пока предполагаю скопировать metadata и перечитать оттуда на новую ноду запросы создания бд и таблиц Кто-нибудь сталкивался с такой задачей? (Версия Clickhouse 20.6.4.44)
Не уверен что это прям лучший способ, но я sed-ом обычно меняю ATTACH на CREATE и скармливаю в clickhouse-client --database база -nm
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
scp -R metadata new_host:
потом
for database in $(ls metadata/*.sql|sed s/sql//); do
for table in $(ls metadata/$database/*.sql) ;
do sed s/ATTACH/CREATE/ metadata/$database/$table | ...
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
ну вы поняли
источник

КТ

Константин Трофимов... in ClickHouse не тормозит
иногда в несколько прогонов чтоб досоздать MV-шки, они не создаются раньше таблиц которые для них нужны
источник

D

Dm7 in ClickHouse не тормозит
Спасибо) Я примерно этим и собираюсь заняться, просто хотелось быть уверенным, что нет более "правильног" способа)
источник