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

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

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

11 ответов

20 просмотров

а что не так?

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 очень мало кейсов и документации, спасибо что подсказали решение 🙏

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

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

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...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта