У меня есть поток пользовательских данных, загружаемых [концентраторами событий Azure] (https://docs.microsoft.com/en-us/azure/event-hubs/).
Я собираю эти данные с помощью [Azure Stream Analytics] (https://docs.microsoft.com/en-us/azure/stream-analytics/) от COUNT (*) представлений для данного идентификатора продукта.
Затем я обновляю счетчик представлений productId в CosmosDB.
В прототипе я выполнил запрос в задании Stream Analytics, например:
SELECT
productId, COUNT(*) AS views
INTO
cosmosDbOutput
FROM
eventHubInput
TIMESTAMP BY moment
GROUP BY productId, System.Timestamp()
Этот запрос все время просматривал представления продукта на .
Я запустил запрос в Cosmos для получения наиболее популярных представлений:
SELECT TOP 10 * FROM c
ORDER BY c.views DESC
Я хотел бы только сохранить представления, которые продукт видел за за последние 30 дней .
Я вижу, что в заданиях Stream Analytics есть [функции управления окнами] (https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-window-functions), которые имеют максимальное время 7 дней.
Учитывая лимит для оконных функций, есть ли способ написать запрос, который агрегируется за 7+ дней?
Если нетЕсть ли другой подход с точки зрения инструментов или хранения, которые я должен рассмотреть?