Материализованные представления
Использование материализованных представлений в cassandra весьма ограничено:
все первичные ключи из исходной таблицы должны отображаться в представлении, возможно, в другомorder.
агрегатные функции, такие как avg
, не могут использоваться
GROUP BY
не разрешено
Так что я не думаю, что он подходит для вашего накопительного времени или других агрегатов.
Кстати, материализованное представление задним числом классифицировано как экспериментальное и не рекомендуется для новых производственных применений.
Ручное решение
Это замечательно, как только данные для агрегирования будут заморожены навсегда ... Если нет, согласованность будет трудно обрабатывать.
Индексы
Совершенно другим подходом к свертыванию было бы использование Elassandra для индексации временного столбца.Мы создадим вторичный индекс эластичного поиска и будем автоматически синхронизировать его.Затем используйте API-интерфейс Embedasticsearch для запроса в различных временных масштабах, используя агрегирование гистограммы дат .
Таким образом, результат агрегирования не сохраняется, а вычисляется в реальном времени из эффективного вторичногоструктура данных.