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

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

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

12 ответов

5 просмотров

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

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 (я не проверял)

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

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

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта