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

Появился вопрос по движку ReplacingMergeTree. Можно ли понять хотя бы

примерно через какое время он должен произвести мердж данных и удалить дубли?

9 ответов

32 просмотра

расчитывайте что это никогда не произойдёт и пишите запросы исходя из этого

это может и не произойти, надо делать или OPTIMIZE ... FINAL, но все равно это не даст гарантии, или в запросе указывать к таблице на движке ReplacingMergeTree SELECT...FINAL. В идеале еще стоит предусмотреть логику работы с дублями на стороне приложения

Vaska-Kasatka Автор вопроса
Konstantin Ilchenko
расчитывайте что это никогда не произойдёт и пишит...

А почему так может быть? Изучал, что применять постоянно optimize не очень хорошая идея. Учитывая автоматическую вставку, то и optimize нужно будет учитывать при крон запросе. А если не делать постоянно optimize, то по итогу база будет очень быстро расширяться засчет таблицы с дублями, хотя эти дубли как раз не нужны

Vaska Kasatka
А почему так может быть? Изучал, что применять пос...

база не будет расширяться, постепенно дубли будут схлопываться. Но до конца это скорее всего не произойдёт и какой-то процент дублей всётаки останется. Поэтому запросы на выборку надо писать исходя из того что надо финальную дедупликацию провести Техники дедубликации https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree/ https://kb.altinity.com/altinity-kb-queries-and-syntax/altinity-kb-final-clause-speed/

Vaska-Kasatka Автор вопроса
Konstantin Ilchenko
база не будет расширяться, постепенно дубли будут ...

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

Vaska Kasatka
Понял, спасибо за ответ! Я пока что тестирую данны...

важно ещё понимать что схлопывание происходит только в пределах одной партиции

Vaska-Kasatka Автор вопроса
Konstantin Ilchenko
важно ещё понимать что схлопывание происходит толь...

Как я понимаю, проблему с дубликацией данных в идеале нужно учитывать на уровне приложения при записи данных в бд. Но не подскажете, какие могут быть бэст кейсы, когда данные записываются из внешнего источника (из Mysql с помощью интеграционной таблицы). В данный момент искал любые способы инсертить оттуда всю таблицу, но на уровне бд в клике ограничить появление дублей, чтобы только новые уникальные записи появлялись.

Vaska Kasatka
Как я понимаю, проблему с дубликацией данных в иде...

если данных не много, то проще кроном с нуля перезаписывать если что-то посложней можно смореть в сторону MaterializedMySQL движка или Debezium(CDC)

Vaska-Kasatka Автор вопроса
Konstantin Ilchenko
если данных не много, то проще кроном с нуля перез...

Пробовал MaterializedMySQL, к сожалению, он не работает с MariaDB Про Debezium не слышал, посмотрю, спасибо

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

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

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