Обсуждаем ClickHouse
в целом не предполагается что весь кластер упадет, потому что у меня
5 кипер нод - все в разных дц
6 серверов - 3 шарда + реплика каждому
Работаем на опережение.
А скиньте мне свой рекавери план? ))
SYSTEM DROP REPLICA 'имя_реплики' FROM TABLE db.table
Нельзя сделать если в текущем сервере есть живая (пусть и readonly) таблица
поэтому рекомендуют DETACH чтобы данные почистить
вы делаете from remote
вам предлагали наоборот INSERT INTO FUNCTION remote()
если инициатором будет 22.5 то ошибки про allow_experimental_analyzer не будет
судя по интернету, это лечится апдейтом 22.5 клика
Читать полностью…remote не работаетDB::Exception: Unknown setting allow_experimental_analyzer.
Читать полностью…ну простейшееINSERT INTO FUNCTION remote() SELECT ...
да
Replacing при объединении двух партов
берет все записи с одним ORDER BY ...
и делает из них одну...
при этом если ReplacingMergeTree(version_field_name)
тогда с максимальным значением version_field
нет, это у меня ключ сортировки, поля, которые мы обычно указываем в WHERE для какой-либо агрегации, для каждой комбинации id1, id2 есть тысячи разных date_check. А мне нужно чтобы другие поля записи (которых нет в ключе) можно было бы апдейтить. Я, кажется, все понял, у меня все "апдейтящие" записи будут находиться в рамках одной партиции (они будут включать в себя полный ключ сортировки, = будут схлопываться), спасибо вам большое!
Читать полностью…ну у вас проблема с зукипером, я думаю по логам зукипера все будет понятно
у вас КХ сервер не может сделать инсерт потому что зукипер отваливается
order by (id1, id2, date_check) -- нормально
комбинация (id1, id2, date_check) только в одной партиции
парты мержатся внутри партиции
мне - да, вполне
есть еще резервный кластер с таким же конфигом
само собой шард и его реплика в разных дц, межнконтинетальный сценарий не предусмотрен
терраформ скрипт сам переподнимает ноды и сетапит новые
не могу, нда, но могу просто описать что там
Читать полностью…А подскажете ситуацию в которой случилось у вас так что упал кипер кластер ? Хочу себе закинуть в disaster recover plan
Читать полностью…>Вопрос в контексте задачи по написанию скриптов
вообще это экстренные ситуации, какие скрипты вы можете писать? или вы про runbook-и?
SYSTEM DROP REPLICA выполняют на ноде где есть таблица, чтобы взять ее зукипер путь, ну и там можно просто дропнуть разом для всех таблиц, т.е. drop replica находит все zk пути и в цикле вычищает удаляемую реплику по этим путям, естественно это другая нода, не та которую удаляют, в ногу выстрелить не получится.
если использовать SYSTEM DROP REPLICA ZKPATH то можно выполнять с любой ноды, вообще даже из clickhouse-local, там просто нужен доступ к зукиперу и она удалит все из replicas/{replica} по конкретному указанному пути
Добрый день!
Вопрос в контексте задачи по написанию скриптов
В случае:
- “Zookeeper loss metadata” предлагается выполнить
system restore replica … оn cluster
https://clickhouse.com/docs/sql-reference/statements/system#restore-replica
detach table, system drop, attach table, system restore, system sync
https://altinity.com/blog/a-new-way-to-restore-clickhouse-after-zookeeper-metadata-is-lost
из 22.5 переезжаем на 25.5. Селект из 25.5 (SELECT * FROM remote() ) не срабатываете с ошибкой
Читать полностью…вы 25.5 -> 22.5 качаете?
ну на приемнике тогда
INSERT INTO db.table SELECT .. FROM remote()Читать полностью…
он позволит вставить данные в любом порядке... и оно корректно заменит при FINAL
Читать полностью…да, я как раз хочу туда поставить временную метку (DateTime), чтобы нормально схлопывать
Читать полностью…хай чат, есть 2 кх версий 22.5 и 25.5, есть ли какой-то способ завести remote() между ними, чтобы данные перекачать, без апгрейда 22.5 ? Если нет, есть ли какие-то другие способы данные перетащить ?
Читать полностью…у вас всегда комбинация id1, id2, date_check одинаковая?
вам что нужно ? чтобы id1, id2 всегда последний date_check хранили или что?
а что конкретно таймаутит? вставку или что?
Читать полностью…вот про это не слышал, у меня
PARITION BY (date_check)
ORDER BY (id1, id2, date_check)
это является противоречием?
то есть обычно информация нужна по id1/id2, но при этом диапазон дат большой, поэтому в фильтре select-a накладываем where date_check >= '' and date_check < ''
может, мне нужно сделать
ORDER BY (date_check, id1, id2)?