184 похожих чатов

Коллеги, подскажите можно ли собрать “сложный” кластер? Например, часть таблиц

на медленных серверах, а часть на быстрых, так чтобы можно было обе группы серверов одновременно использовать для запросов?

12 ответов

7 просмотров

Да, ноды в кх полностью независимы, одна и та же нода может участвовать в нескольких кластерах

а какой профит пытаетесь достичь? какое у вас окружение? облака? bare-metal? сколько у вас серверов в кластере планируется? обычно несбалансированные кластера получаются когда bare-metal и железо просто докупается по мере необходимости и новые данные просто льются на новые сервера, а старые данные хранятся на старых но это надо пару лет чтобы кластер рос линейно если сразу делать "не сбалансированный кластер", может проще сделать multi volume storage policy по дискам? https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-multiple-volumes_configure ?

Vitaly-Ivanov Автор вопроса
Slach [altinity]
а какой профит пытаетесь достичь? какое у вас окру...

Идея такая чтобы иметь горячие данные на одной группе серверов с ssd и холодные данные которые нужны редко на 2х серверах с большими дисковыми полками. Железо, не облака.

Vitaly Ivanov
Идея такая чтобы иметь горячие данные на одной гру...

тут проблема в том как вы данные будете между серверами переливать с горячего на холодное всякие storage_policy они в рамках одного сервера работают между разными дисками... можно конечно изголяться и делать что-то типа INSERT INTO slow_distributed_table SELECT ... FROM hot_local_table WHERE _partition_id='YYYYMM' + ALTER TABLE hot_local_table DROP PARITITION 'YYYYMM' но это не транзакционно и будет окно когда в медленных дисках и в быстрых данные дублирются ну как немного костыльный вариант "медленные сервера с полками" на них можно minio поднять и в горячих серверах сделать s3 диски https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-s3 но будет хуже data locality, CPU на дисковых полках обсчетами никакими заниматься не будет и будет простаивать лучший вариант "экономить на железе" это пара NVMe на 1-2Tb в JBOD storage_policy под быстрые данные и пара HDD на 5Tb+ тоже в JBOD под холодные но я так понимаю "сервера" у вас уже давно есть?

Slach [altinity]
тут проблема в том как вы данные будете между серв...

Как раз размышлял над этой проблемой Пришел к мысли, что возможно не S3 делать на "дешёвых серверах с HDD", а прокидывать блочное устройство по iSCSI в сервер, и по storage_policy туда переливать. В случае заполнения холодного - делаем новые сервера с iscsi, добавляем в виде диска в кликхаус. А на старом сервере, где был iSCSI-target поднимаем кликхаус, добавляем его в кластер и аттачим данные с локального диска, которые ранее по iscsi экспортили на другой хост. Получается полноценный clickhouse сервер с холодными данными с практически моментальной миграцией При этом основные сервера кликхауса , на которые идёт вставка и горячие запросы, останутся довольно мощными машинками, с SSD. А холодные данные через полгода-год уедут на дешёвые hdd/cpu Плюсы в сравнении с s3 - можно переподключить данные впоследствии как обычный диск. Ну и работать мне кажется должно побыстрее s3, как минимум будет работать дисковый кэш Задача - смигрировать старые данные на дешёвый сторадж Сейчас холодной хранилки нет вообще, в существующее железо добавить нельзя HDD (все слоты 2.5 и забиты SSD максимального объема) Можно было бы взять серверов с HDD, сделать на старых серверах detach старых партиций, переместить их на новые дешёвые сервера с hdd и там аттачнуть, но это полу-ручная работа, которую нужно контролировать

Максим Киселев
Как раз размышлял над этой проблемой Пришел к мысл...

да, если железо позволяет, можно iSCSI, но тут тоже наверное надо беспокоиться можно или нет делать ReadWriteMany режим доступа или надо нарезать диски через thin provisioning опять же балансировка нагрузки в кубах iSCSI CSI пока малость сырой https://github.com/kubernetes-csi/csi-driver-iscsi можно наверное через kubernetes и https://github.com/minio/directpv CSI сделать но там под капотом XFS и опять же непонятно что с ReadWriteMany чтобы CPU на HDD полках можно было бы задейтвовать...

Slach [altinity]
да, если железо позволяет, можно iSCSI, но тут тож...

тут нет задачи с readWriteMany, холодная хранилка будет не на одной машине хотим к каждому серверу клика (dell powerage 8x4Tb SSD) докинуть сторадж, просто добавив нод с 4x16Tb HDD

Максим Киселев
тут нет задачи с readWriteMany, холодная хранилка ...

а какой сетап? puppet/ansible/salt? или кубы? просто потом переключение этого самого storage, не видится чем то легким ну и ваш CPU на cold storage IMHO будет обслуживать iSCSI довольно шустро

Slach [altinity]
а какой сетап? puppet/ansible/salt? или кубы? про...

в кубы это не потащили из-за размера данных, достался сетап на дедиках к примеру на pvc в цефе это не выживет, малейшая ребалансировка - и перемещение сотни теребайт данных положит цеф можно конечно сделать отдельные ноды с локал-стораджем под кликхаус в любом случае миграция такого объема данных - довольно затратная операция, что по времени, что по серверам (и деньгам соответственно) поэтому нарастить cold storage через сетевое блочное устройство показалось меньшим из зол

Slach [altinity]
да, если железо позволяет, можно iSCSI, но тут тож...

А может есть какой-то способ вытеснять парты на другой сервер CH, с медленными дисками, отличны от detach/scp/attach ? Аналогично как они вытесняются на другой сторадж.

Максим Киселев
А может есть какой-то способ вытеснять парты на др...

Скорее нет, чем есть Можете чуть подсластить пилюлю с помощью ALTER TABLE xxx FETCH PARTITION FROM или попробовать https://github.com/ClickHouse/ClickHouse/pull/17871

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта