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

Подскажите, неужели нельзя сделать аналог master-slave с clickhouse? Просто без

zookeeper'a... кластер не нужен, просто суть slave'a для того что бы некие люди, без прав на запись, могли читать данные (ну грубо говоря это регулятор, которому доступ в прод точно не стоит давать).

Сейчас стоит вопрос (от безысходности) всё таки поднять cluster с zookeeper'ом...

Думали использовать clickhouse-copier, но он вроде как дропает таблички, не умеет инкрементить (ну как в случае с Mysql бин логами), и вроде как сделан просто для разовой миграции данных...

Как быть? :)

14 ответов

33 просмотра

сделать простой distributed - это всего несколько строк в конфиге. Подключаете так slave на master, и уже на мастере делаете MV, которое копирует что вам надо (можно и не все) в табличку, которая подключена как remote, а физически живет на slave

SM- Автор вопроса
Boris
сделать простой distributed - это всего несколько ...

Спасибо 🙏 Получается что мы на мастере (проде), в конфиге прописываем несколько строк в блоке <remote_servers> и данные просто будут пересылаться аналогично FDW (Foreign Data Wrappers), просто в другую базу. Но ведь поидее он не проверяет целостность данных... Что например будет если сервак на другой стороне (slave) проглючит, временно отстанет.. Это больше похоже на sharding? Аналог proxy_pass в nginx только умней :)

SM
Спасибо 🙏 Получается что мы на мастере (проде), в ...

не только remotes, но и MV, без него ничего само собой копироваться не будет. да, это похоже на sharding. если отвалится remote, то поведение будет непредсказуемо. но вам ведь для регулятора это не так страшно? Надежная репликация - это zookeeper или грядущий clickhouse-keeper.

SM- Автор вопроса
Boris
не только remotes, но и MV, без него ничего само с...

Ну поидее они требуют быстрой синхронизации данных.. Но с другой стороны если в мониторинге заметить разрыв, то всегда можно починить... Я понял, хороший вариант на самом деле - сейчас поизучаем. Просто предоставляя ноду из cluster'a это больше рисков для бизнеса и в таком роде... Но спасибо большое!

лог инсертов пишется в зукипер, реплики через ЗК подписываются на лог. зукипер не нужен уже cat /etc/clickhouse-server/conf.d/zookeeper.xml <?xml version="1.0" ?> <yandex> <keeper_server> <tcp_port>2181</tcp_port> <server_id>1</server_id> <log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path> <snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path> <coordination_settings> <operation_timeout_ms>10000</operation_timeout_ms> <session_timeout_ms>30000</session_timeout_ms> <raft_logs_level>trace</raft_logs_level> </coordination_settings> <raft_configuration> <server> <id>1</id> <hostname>localhost</hostname> <port>9444</port> </server> </raft_configuration> </keeper_server> <zookeeper> <node> <host>localhost</host> <port>2181</port> </node> </zookeeper> <distributed_ddl> <path>/clickhouse/oint/task_queue/ddl</path> </distributed_ddl> </yandex>

SM- Автор вопроса
Denny [Altinity]
лог инсертов пишется в зукипер, реплики через ЗК п...

А если некоторые таблицы используют ReplacingMergeTree - это не повлияет?

Andrey Dudin
На сколько оно prod ready?

сложно сказать, наверное 8 из 10. Нету известных багов, оно проходит все тесты, у меня на стейдже работает. В такой простой задаче из одной пишущей ноды, да еще с одной нодой кипера должно работать. Если надо быстро и диск сильно нагружен, то естественно на отдельном ssd <log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path> <snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>

Denny [Altinity]
лог инсертов пишется в зукипер, реплики через ЗК п...

кстати сколько минимум нодов надо чтобы housekeeper норм работал и фейловерился, так же 3? и как он реагирует на сплит-нетворк когда число нодов четное?

【D】【J】
кстати сколько минимум нодов надо чтобы housekeep...

да 3. про четное не знаю, кажется рафту плевать. Я уговариваю чтобы сделали чтобы на двух нодах работало (без ha понятно)

Denny [Altinity]
да 3. про четное не знаю, кажется рафту плевать. ...

без ХА, с уходом в оффлайн до ручного intervention?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта