считать оконную агрегацию, например, количество записей с некоторым значением поля Х за каждый час, при этом после агрегации сырые данные уже не нужны.
идея преагрегировать каждый батч вставляемых данных, а потом доагрегировать — нормальная?
Как делаются такие вещи? Какой вариант вижу я:
Делаем таблицу, в которую вставляем сырые данные, на неё вешаем MV, которое считает агрегацию, гоняем запросы с доагрегацией к этому MV. Причём, если данные в MV уже предагрегировались и вставились, то их каким-то образом подчищать
могут ли мне как-то помочь AggregationStates?
ЧТобы миновать стадию очистики, вы можете создать таблицу с движком Null и сделать MAT VIEW
Могут помочь сильно, если вам нужно считать что-то сложнее чем sum / count. Если данные нужны только агрегированные, и вы достаточно отважны, то можно писать в таблицу с движком Null на которой сделан матвью
Ещё один вопросик у меня появился. Пусть мне при этом нужно достать стейты/значения для тех X, которые пришли в этом батче, кх может мне в этом помочь? Получается, батч надо будет вставить куда-то ещё и заджойнить, по-другому никак?
Обсуждают сегодня