Аналитика приложений Azure для Интернета, отображение уникальных пользователей в Power BI

Настраиваем веб-аналитику по Application Insights -> Stream Analytics -> Power BI path.

Мы хотели бы видеть диаграмму ежедневных уникальных посетителей в панели управления Power BI.

Пользователи считаются уникальными, если [context].[user].anonId разные. Время помещается в [context].[data].eventTime в insights json.

Запрос на экспорт должен выглядеть примерно так (мы знаем, как исправить отсутствующее ключевое слово unique, поэтому я воспользуюсь им для простоты):

SELECT
    count(unique A.[context].[user].anonId)
    SYSTEM.TIMESTAMP
FROM
    [export-input] A
    TIMESTAMP BY A.[context].[data].eventTime
GROUP BY 
    TumblingWindow(day, 1)

Проблема в том, что TIMESTAMP BY не поддерживает уточненные поля. Без этого мы фактически устанавливаем временные метки для пользователей не по фактическому времени посещения страницы, а по времени, когда эти данные поступили в потоковую аналитику. Это означает, что мы можем потерять несколько уникальных пользователей или пересчитать некоторые из них дважды.

Есть ли обходной путь для этого?


person Rustem Mustafin    schedule 20.08.2015    source источник
comment
Так что просто чтобы знать - наш текущий запрос (который считается ошибочным) идеально соответствует определенному количеству пользователей, отображаемому на лазурном портале. Полагаю, это ошибка.   -  person Rustem Mustafin    schedule 21.08.2015


Ответы (2)


TIMESTAMP BY теперь поддерживает квалифицированные поля, так что это больше не должно быть проблемой. Однако учтите, что в Stream Analytics нет ключевого слова "Уникальный / отличительный". Вам нужно будет переписать свой запрос следующим образом, чтобы вычислить уникальное количество:

WITH step1 AS
(
SELECT
    COUNT(*) countPerAnonId
FROM
    [export-input] A
    TIMESTAMP BY A.[context].[data].eventTime
GROUP BY 
    A.[context].[user].anonId,
    TumblingWindow(day, 1)
)

SELECT COUNT(*)
FROM step1
GROUP BY System.Timestamp
person Konstantin Zoryn    schedule 21.01.2016
comment
Разве нам не следует сгруппировать по eventTime в последней строке? - person Rustem Mustafin; 22.01.2016

Не могли бы вы на стороне ASA просто отправить «время просмотра» как свойство вашего события (от клиента), а затем выбрать его в ASA. Я не очень знаком с ограничениями ASA, но могу найти кого-нибудь, кто поможет, если вышеперечисленное не сработает. В Power BI вы можете делать запросы вопросов и ответов, например «показать отдельный идентификатор anonID за последние 24 часа» или «... за последний день». Что, если есть поле даты, должно соответствовать вашему ожидаемому поведению.

person Lukasz P.    schedule 26.08.2015
comment
На самом деле это невозможно сделать TIMESTAMP BY [context].[data].eventime, поскольку метка времени не поддерживает квалифицированные поля. Так что нет возможности делать то, что вы предлагаете - person Rustem Mustafin; 27.08.2015