2015-08-20 5 views
2

Мы создали веб-аналитику с использованием пути Application Insights -> Stream Analytics -> Power BI.Azure Application для веб-поиска, отображение уникальных пользователей в силе BI

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

Пользователи считаются уникальными, если [context].[user].anonId отличаются. Время находится в [context].[data].eventTime в комментариях 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 не поддерживает квалифицированных полей. Без этого, , мы фактически привязываем пользователей к времени не по фактическому времени посещения страницы, а к тому времени, когда эти данные вошли в аналитику потока. Это означает, что мы можем потерять кучу уникальных uesrs или посчитать некоторые из них дважды.

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

+0

Так что просто знать - наш текущий запрос (считается багги) идеально соответствует количеству отчетливого пользователя, отображаемому в лазурном портале. Полагаю, это ошибка. –

ответ

0

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

+0

На самом деле невозможно выполнить 'TIMESTAMP BY [context]. [Data] .eventime', поскольку timestamp не поддерживает квалифицированные поля. Таким образом, нет возможности делать то, что вы предлагаете –

1

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

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 
+0

Не следует ли группировать «eventTime» в последней строке? –