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

Привет! Приодил уже с вопросом, но так ничего и не

придумал внятного
Как на момент выборки получать дедуплицированные данные?
ReplacingMergeTree не дает гарантий, что данные будут дедуплицированы в селекте, тк только во время мержа схлопывает их, а OPTIMIZE дергать каждый раз не комильфо и долго
MatView делает агрегацию только для инсертируемого батча данных, но, как я понял из доки, две одинаковых строки в разных батчах не будут дедуплицироваться друг относительно друга и рядышком в матвью лягут, одна за другой.
Задача дедупликации вообще звучит как супер базовая вещь и для нее должно быть какое-то хрестоматийное решение

19 ответов

16 просмотров

https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree/

Я обычно добавляю hash от всех строк при вставке, индексирую по этому полю, и потом при след вставке проверяю есть ли такой hash, но это если batch. В остальном проблему дублей каждый решает своими костылями...

а вариант с FINAL не подходит ?

Danila-Romanov Автор вопроса
Алексей Веселов
а вариант с FINAL не подходит ?

говорят, перформанс страдает)

>Задача дедупликации вообще звучит как супер базовая вещь да, и она конечно решается до заливки в DWH, причем безотносительно какая база используется, это одинаковая проблема и решение для КХ, вертики, redshift , ...

Dmnk ninja
Я обычно добавляю hash от всех строк при вставке, ...

пипец, и сколько строк в секунду удается вставить?, вы душите вставки раз в 100

Denny [Altinity]
пипец, и сколько строк в секунду удается вставить?...

это только для таблиц которые раз в день загружаются... ночью отрабатывает, есть 2 таблицы, одна Log куда вставляю данные, затем INSERT INTO

Danila-Romanov Автор вопроса
Denny [Altinity]
>Задача дедупликации вообще звучит как супер базов...

Хм Окей Тогда другой момент Версионирование данных В табличке лежат и старые (Version < N) и новые данные(Version = N) Как считать агрегаты только по новым данным? Это тоже своего рода дедупликация VersionedMergeTree опять же не даёт гарантий ни на что:/

Danila-Romanov Автор вопроса
Denny [Altinity]
argMax

АргМакс даст последнее значение - т.е. сагрегирует набор данных в одну единицу данных А мне нужны агрегаты вроде суммы/среднего Агрегат от агрегата кх считать не умеет как я понял View пилить?

Danila-Romanov Автор вопроса
Denny [Altinity]
в чем проблема с select from select

Достаточно ли кх умный, чтобы фильтры из первого селекта прокинуть во второй и не аргмаксить всю таблицу для получения, скажем, по конкретному id

Denny [Altinity]
пипец, и сколько строк в секунду удается вставить?...

А вообще несколько плохо так писать insert в Log -> insert into MergeTree с проверкой на hash, если не реалтайм? а очень редкие вставки раз в день ну или в час

Dmnk ninja
А вообще несколько плохо так писать insert в Log -...

да можно если вам надо мало строк инжестить, я просто когда про КХ разговариваю, я думаю про вставки 100тыс - 1 мл. строк в секунду 24*7

Denny [Altinity]
да можно если вам надо мало строк инжестить, я про...

а ну нет, для такого конечно так делать не буду)

Danila-Romanov Автор вопроса
Denny [Altinity]
да, есть id в groupby

Спасибо, сильно помогли!:)

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

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

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