Запрос Application Insights для получения времени между 2 пользовательскими событиями - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь написать запрос, который даст мне среднее время между двумя пользовательскими событиями, отсортированное по сеансу пользователя.Я добавил пользовательские события отслеживания в это приложение и хочу запросить время, которое уходит у пользователя от события «Настройка» до события «Процесс».

let allEvents=customEvents
| where timestamp between (datetime(2019-09-25T15:57:18.327Z)..datetime(2019-09-25T16:57:18.327Z))
| extend SourceType = 5;
let allPageViews=pageViews
| take 0;
let all = allEvents
| union allPageViews;
let step1 = materialize(all
| where name == "Setup" and SourceType == 5
| summarize arg_min(timestamp, *) by user_Id
| project user_Id, step1_time = timestamp);
let step2 = materialize(step1
| join
    hint.strategy=broadcast                      (all
    | where name == "Process" and SourceType == 5
    | project user_Id, step2_time=timestamp
)
on user_Id
| where step1_time < step2_time
| summarize arg_min(step2_time, *) by user_Id
| project user_Id, step1_time,step2_time);
let 1Id=step1_time;
let 2Id=step2_time;
1Id
| union 2Id
| summarize AverageTimeBetween=avg(step2_time - step1_time)
| project AverageTimeBetween

Когда я запускаю этот запрос, он выдает это сообщение об ошибке:

'' оператор: не удалось разрешить таблицу или столбец или скалярное выражение с именем 'step1_time'

Я относительно новичок в написании запросов с ИИ и не нашел много ресурсов, чтобы помочь с этой проблемой,Заранее благодарю за помощь!

1 Ответ

1 голос
/ 25 сентября 2019

Я не уверен, для чего предназначены строки let 1id=step1_time.

эти строки пытаются объявить новое значение, но step1_time - это не вещь, это было поле в другом запросе

я также не уверен, почему вы делаете это pageviews | take 0 и объединяете его с событиями?

let allEvents=customEvents
| where timestamp between (datetime(2019-09-25T15:57:18.327Z)..datetime(2019-09-25T16:57:18.327Z))
| extend SourceType = 5;
let step1 = materialize(allEvents
| where name == "Setup" and SourceType == 5
| summarize arg_min(timestamp, *) by user_Id
| project user_Id, step1_time = timestamp);
let step2 = materialize(step1
| join
    hint.strategy=broadcast (allEvents
    | where name == "Process" and SourceType == 5
    | project user_Id, step2_time=timestamp
)
on user_Id
| where step1_time < step2_time
| summarize arg_min(step2_time, *) by user_Id
| project user_Id, step1_time,step2_time);
step2
| summarize AverageTimeBetween=avg(step2_time - step1_time)
| project AverageTimeBetween

если я удаляю вещи, которые я не делаю 'я не понимаю (например, объединение с 0 просмотрами страниц, и давайте, я получаю результат, но у меня нет ваших данных, поэтому мне пришлось использовать другие значения, кроме «Настройка» и «Процесс», поэтому я не знаю, если эточто вы ожидаете?

вы можете посмотреть результаты запроса step2 без суммирования, чтобы просто увидеть, что вы получаете, соответствует тому, что вы ожидаете.

...