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

Привет! А существует ли способ создать таблицу с помощью ON CLUSTER

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

12 ответов

16 просмотров

не существует

Vasilij-Abrosimov Автор вопроса
Denny [Altinity]
не существует

Мне пришла в голову идея создать ещё один кластер, впихнуть в него только реплики одного шарда, и посмотреть запустятся ли реплики с таким конфигом. Если да - то по идее можно будет делать CRTEATE ... ON CLUSTER cluster_shard1, и цель будет достигнута. Но проверю только завтра.

Vasilij Abrosimov
Мне пришла в голову идея создать ещё один кластер,...

Репликация не связана с on cluster. Если у вас 25 шардов и вам надо на каждом индивидуально создавать то придется +25 кластеров описать. Если вам надо создать таблицу без шардов типа 50 реплик, то для этого не надо ещё один кластер создавать, on cluster позволяет такое.

Vasilij-Abrosimov Автор вопроса
Denny [Altinity]
Репликация не связана с on cluster. Если у вас 25 ...

У нас кейс немного другой - надо создавать kafka-консьюмеры, с учетом того что мы сами регулируем какой топик на какой шард писать. Если создать консьюмеры на всех шардах - то писаться будет, как я понимаю, на случайный. Нам это не надо.

Vasilij Abrosimov
У нас кейс немного другой - надо создавать kafka-к...

А как вы планируете говорить консумеру что он будет читать?

Vasilij-Abrosimov Автор вопроса
Nick
А как вы планируете говорить консумеру что он буде...

Тут как раз не сложно, очереди для разных шардов разделены на разные топики. Соответственно делается консумер по нужному списку топиков.

Vasilij Abrosimov
Тут как раз не сложно, очереди для разных шардов р...

Правильно ли понял что у вас однотипные данные в кафке в разных топиках. Вы хотите эти однотипные данные сливать в одну дистрибьютед таблицу в клике, но делать это через заливку в локальные таблицы консумерами кафки. Т.е. у вас и данные которые должны быть в одном топике почемуто размазаны, так еще и заливку хотите целенаправленно перекашивать по шардам, чтобы и там разброд с потреблением ресурсов был?

Vasilij-Abrosimov Автор вопроса
Nick
Правильно ли понял что у вас однотипные данные в к...

Не совсем. У нас каждая физическая нода нашего SaaS пишет поток в свой топик. А дальше мы хотим выбирать сами, на какой шард пойдут данные с какой ноды (и соответственно топика) и писать сразу в физическую таблицу (не distributed). То есть сами реализуем шардирование. Из distributed мы только читаем.

Vasilij Abrosimov
Не совсем. У нас каждая физическая нода нашего Saa...

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

Vasilij-Abrosimov Автор вопроса
Nick
значит все правильно понял. А зачем надо настолько...

Лить в один топик точно не будем - из этих топиков читают и другие приложения, не только clickhouse, и для них удобнее держать в отдельных топиках. А выливать сразу в Distributed одним потоком не хочется, потому что не гибко. 1. Если происходит что-то на одной ноде (скажем, в очередь начинают литься неконсистентные данные; да что угодно) - встаёт всё. А так мы можем очень гибко регулировать, что, куда и как. 2. В планах разносить шарды далеко друг от друга физически, и тогда надо будет лить данные ноды в шард поближе.

Vasilij Abrosimov
Мне пришла в голову идея создать ещё один кластер,...

Да, так можно. У нас есть кластер 3 шарда по две реплики и к нему ещё три кластера: шард1, шард2 и шард3. Т.е. каждая года в двух кластерах. Полёт нормальный.

Vasilij Abrosimov
Лить в один топик точно не будем - из этих топиков...

макросы можно использовать в неожиданных местах, возможно в имени топика можно использовать макрос shard (я не проверял)

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

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

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
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта