Обсуждаем 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) только в одной партиции
парты мержатся внутри партиции
да, ну еще главное чтобы PARTITION BY не противоречил sorting key (ORDER BY) ... а то парты из разных партиций не мержатся между собой
Читать полностью…и не забудьте использовать
SELECT ... FROM db.table FINALЧитать полностью…
не могу, нда, но могу просто описать что там
Читать полностью…А подскажете ситуацию в которой случилось у вас так что упал кипер кластер ? Хочу себе закинуть в 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)?
да, Final обязательно будет. А старые записи будут в фоне сами удаляться, верно?
Читать полностью…Collapsing нужен если еще хотите eventually "удалять"
Читать полностью…