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

Всем привет! Подскажите пожалуйста, как такое вышло? https://fiddle.clickhouse.com/b6881162-a97e-4867-b3f6-053aace13780 Обе строчки находятся в

одной партиции, причем если поменять порядок, сначала вставить 1 потом -1 все будет работать, но ведь это не должно ни на что менять....

11 ответов

12 просмотров

а что не так?

Stranger- Автор вопроса
Tetra
а что не так?

я вставил 2 записи с одинаковым ORDER BY , которые оказываются в одной партиции, с противположными sign, по смыслу CollapsingMT данные строчки должны схлопнуться

Stranger
я вставил 2 записи с одинаковым ORDER BY , которые...

For each resulting data part ClickHouse saves: The first “cancel” and the last “state” rows, if the number of “state” and “cancel” rows matches and the last row is a “state” row. из https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/collapsingmergetree#table_engine-collapsingmergetree-collapsing-algorithm Собсна без файнала как раз показывает что остаются обе строки, т.к. sign=1 добвлена позже в любом случае вы не можете полагаться на результат даже файнала и должны писать правильный запрос с агрегатом с учетом sign

Stranger- Автор вопроса
Tetra
For each resulting data part ClickHouse saves: Th...

Я это понимаю, из документации же следует что FINAL или optimize table final схлопывает записи с одинаковым ключом сортировки

Stranger
Я это понимаю, из документации же следует что FIN...

я привел цитату из доки - не смерживает в вашем случае

Stranger- Автор вопроса

Благодаря вам узнал, что у VersionedCollapsingMT version может быть не Int'ом (в документации сказано исключительно Int8)

Stranger- Автор вопроса

а в вашем примере version то одинаковые, при этом данные схлопнулись, верно?

Stranger
Благодаря вам узнал, что у VersionedCollapsingMT v...

version точно может быть int32, datetime это конечно интересно. видимо считается что за одну секунду два раза нельзя поменяться.

Stranger- Автор вопроса

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

Stranger
Мне нужно удалять строчку и желательно чтоб оно в ...

да, именно это и написано в описании к VCMT VersionedCollapsingMergeTree serves the same purpose as CollapsingMergeTree but uses a different collapsing algorithm that allows inserting the data in any order with multiple threads. In particular, the Version column helps to collapse the rows properly even if they are inserted in the wrong order. In contrast, CollapsingMergeTree allows only strictly consecutive insertion.

Stranger- Автор вопроса

К сожалению по VersionedCollapsingMergeTree очень мало кейсов и документации, спасибо что подсказали решение 🙏

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

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

Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
анрей С какой целью зашёл?
КТ315
42
Всем привет 👋 Подскажите пожалуйста, а чего тут не хватает permission или образ битый? Running with gitlab-runner 17.0.0 (44feccdf) on gitlab-runner-c58775949-d7znz YxYz2zp...
Max
2
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
Коллеги, у меня тут возникла одна очень интересная задачка. Есть один бандл, который содержит в себе 2 типа образов - бэкенд и фронтенд. Выкатываются последовательно, сперва б...
სერგეი ქრისტოვი
12
Всем привет ребят! Мб кто-то сталкивался? adminСomponents .get("searchСomponents", use: searchComponents) .openAPI( summary: ...
Admin Adminov
2
Насколько моя реализация Exercise 1 плохая? data MessageType = Info | Warning | Error Int deriving (Show, Eq) type TimeStamp = Int data LogMessage = LogMessage ...
= ?
10
Карта сайта