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

Всем привет. Подскажите, а есть ли возможность для ReplcaingMT /

CollpasingMT сделать некоторый аналог hot-cold storage, как в apache pinot, чтоб данные к примеру месячной давности игнорировались FINAL'ом? Чтоб грубо говоря FINAL на лету склеивал данные только за последний месяц / неделю, а остальное как в обычном MT

С ходу подумал про две таблицы, UNION'ы и прочее, но возможно такое можно сделать нативно?

11 ответов

8 просмотров

Можно с помощью prewhere выгребать данные за нужный промежуток до применения final

Stranger- Автор вопроса
Danny
Можно с помощью prewhere выгребать данные за нужны...

SELECT * FROM table FINAL PREWHERE ts > 'today_minus_30_days' UNION ALL SELECT * FROM table PREWHERE ts < 'today_minus_30_days' Типо такого?

Stranger
SELECT * FROM table FINAL PREWHERE ts > 'today_min...

Типа того, во второй части запроса можно просто where. Но с prewhere нужно быть аккуратным, в нем можно фильтровать только по полям, значения которых одинаковы для всех версий строк, иначе final некорректно схлопнет выбранные строки

Stranger- Автор вопроса
Danny
Типа того, во второй части запроса можно просто wh...

Понял, у меня ts входит в ключ сортировки, так что он точно будет одинаковым. Я правильно понял что лучшее решение? Просто по факту мне прийдется переписать все тяжелые запросы под подобный UNION, а делать обычный View будет явно ошибкой

Stranger- Автор вопроса
Danny
Не факт, что лучшее, нужно проверять

а флаг prefer_not_to_merge мне не поможет, верно?

Stranger- Автор вопроса
Danny
Не факт, что лучшее, нужно проверять

Я правильно понял, что сам CH мне с этой историей помочь не может?

Stranger
Я правильно понял, что сам CH мне с этой историей ...

Можно еще попробовать сеттинг min_age_to_force_merge_seconds и выгребать все одним селектом с final. Но не факт, что мерджи закончатся к моменту запроса

Stranger- Автор вопроса
Danny
Можно еще попробовать сеттинг min_age_to_force_mer...

А если остановиться на варианте с двумя SELECT'ами, то лучше оставить это в рамках одной таблички, или сделать две, что было типо? SELECT * FROM hot FINAL .... UNION ALL SELECT * FROM cold И переносить данный cron'ом Тогда не надо париться о PREWHERE... хотя может есть и подводные камни

Stranger
А если остановиться на варианте с двумя SELECT'ами...

Если партиций много, то сильно помогает settings do_not_merge_across_partitions_select_final = 1

Stranger- Автор вопроса
Danny
Можно еще попробовать сеттинг min_age_to_force_mer...

Доброй ночи еще раз, подскажите, а как адекватно оценить - может быть мне просто делать мутации через ALTER UPDATE ? Может быть есть какие-то формулы или примерные метрики, по которым можно понять насколько "адекватно" использования мутаций, или же делать более сложные схемы (с FINAL, скеливанием и тд)

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

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

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
А что ты вообще делаешь ?
Yesgoter
13
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
18
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
Подскажите, почему в правом коде с1 дополняется до 8байт, а не до 4?
Sergey
9
Карта сайта