Azure Stream Analytics: рассчитать COUNT (*) за периоды более 7 дней - PullRequest
0 голосов
/ 24 октября 2019

У меня есть поток пользовательских данных, загружаемых [концентраторами событий 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+ дней?

Если нетЕсть ли другой подход с точки зрения инструментов или хранения, которые я должен рассмотреть?

1 Ответ

1 голос
/ 24 октября 2019

Я предполагаю, что ваши прошлые данные не изменятся, поэтому нет необходимости использовать Stream Analytics для них. Как только вы вычислите число, вы можете сохранить его в базе данных SQL или табличных службах (Cosmos / Storage) и создать материализованное представление.

enter image description here

moreинформация о материализованном виде: https://docs.microsoft.com/en-us/azure/architecture/patterns/materialized-view

...