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

Здравствуйте, коллеги, в проекте возникла нужда в аналитической бд и

сделали выбор в сторону КХ, и на меня упала обязанность в данный момент все это дело оптимизировать под наши нужды.
И читая документацию столкнулся с небольшим недопониманием, а именно какой движок использовать.
Задача хранение данных которые могут изменяться, прим. (Платежи пользователей которые иногда могут отменяться, и сбор статистики по установкам из разных источников, работает по крону и сохраняет сводную инфу затирая предыдущие значения.)
Выбор пал на 2 возможных движка это ReplacingMergeTree и CollapsingMergeTree оба позволяют удалять дублирующиеся данные, обновляя её при этом. но не совсем понятен момент выборки.
Поясню почитал доку и пару статей, и инфа разнится. в одной говорят о том что при работе с таблицами надо использовать FINAL в запросе. в другой говорят не трогать его если большой объем данных ибо он будет медленный, но при этом для выборки актуальных данных предлагают в запросе указывать либо тонну логики(при реплэйсинг) либо по полю sign в случае с коллапсом... но касательно коллапса нужно где-то хранить данные предыдущие...
и вот по итогу от изобилия информации я запутался. и прошу помощи у Вас :)
1. какой движок лучше использовать в моем случае ? ( ReplacingMergeTree \ CollapsingMergeTree)
2. как по итогу правильно делать запросы? используя FINAL в конце или применять шаолиньскую магию в запросах стараясь избегать старых данных?

Заранее спасибо за ответы!

9 ответов

22 просмотра

Мы у себя используем ReplacingMergeTree и argMax для выборки данных.

Replacing удалять не умеет

Александр- Автор вопроса
【D】【J】
Replacing удалять не умеет

я написал удалять дублирование...) имелось ввиду производить замену)

Александр
я написал удалять дублирование...) имелось ввиду п...

Учтите, что Replacing и прочие без final не гарантируют вам удаление дубликатов. С диска дубликаты удалятся когда-нибудь. Может быть.

Александр- Автор вопроса
Boris
Учтите, что Replacing и прочие без final не гарант...

Да это я понимаю, что когда-нибудь удалятся, и это норма лиж бы в запросе не было дублированных, это важно)

Александр
Да это я понимаю, что когда-нибудь удалятся, и это...

без дедубликации в запросе дубликаты обязательно будут. когда-нибудь - это для экономии диска.

Александр- Автор вопроса
Boris
без дедубликации в запросе дубликаты обязательно б...

Ну можно же сделать запрос таким образом чтобы для группы данных ответ вернулся без дедубликации? например вот тестовую таблицу пытаю. 1 вариант с дубликацией нескольких полей, 2 вариант выдает файнал, пытаюсь придумать запрос который бы выдал тот же результат что и final .

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

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

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