session_count 插件

适用于:✅Azure 数据资源管理器

根据时间线上的 ID 列计算会话计数。 该插件通过 evaluate 运算符调用。

语法

TabularExpression | evaluate session_count(IdColumn, TimelineColumn, Start, End, Bin, LookBackWindow [, dim1, dim2, ...])

详细了解语法约定

参数

客户 类型​​ 必需 说明
TabularExpression string ✔️ 用作输入的表格表达式。
IdColumn string ✔️ 列的名称,其 ID 值表示用户活动。
TimelineColumn string ✔️ 表示时间线的列的名称。
Start 标量 (scalar) ✔️ 分析时段开始。
End 标量 (scalar) ✔️ 分析时段结束。
Bin 标量 (scalar) ✔️ 会话的分析步长时段。
LookBackWindow 标量 (scalar) ✔️ 会话回溯期。 如果 IdColumn 中的 ID 在 LookBackWindow 之内的时间窗口中出现,则该会话被视为现有会话。 如果该 ID 未出现,则该会话被视为新会话。
dim1, dim2, ... string 维度列的列表,用于切分会话计数计算。

返回

返回一个表,该表包含每个时间线期间的以及每个现有维度组合的会话计数值。

输出表架构如下:

TimelineColumn dim1 .. dim_n count_sessions
类型:自 TimelineColumn 起 .. .. .. long

示例

对于此示例,数据是确定性的,并且我们使用具有两列的表:

  • Timeline:一个 1 至 10,000 之间的顺序号
  • Id:1 至 50 之间的用户 ID

如果 IdTimeline 的除数(时间线 % Id == 0),则该 ID 会出现在特定的 Timeline 时段。

Id==1 的事件将出现在任何 Timeline 时段,Id==2 的事件将每隔一个 Timeline 时段出现,依此类推。

下面是 20 行数据:

let _data = range Timeline from 1 to 10000 step 1
    | extend __key = 1
    | join kind=inner (range Id from 1 to 50 step 1 | extend __key=1) on __key
    | where Timeline % Id == 0
    | project Timeline, Id;
// Look on few lines of the data
_data
| order by Timeline asc, Id asc
| take 20

输出

时间线 ID
1 1
2 1
2 2
3 1
3 3
4 1
4 2
4 4
5 1
5 5
6 1
6 2
6 3
6 6
7 1
7 7
8 1
8 2
8 4
8 8

我们换一种说法来定义会话:只要用户 (Id) 在 100 个时段的时间范围内出现至少一次,而会话回看窗口是 41 个时段,则会话被视为活跃。

下一个查询根据上述定义显示活跃会话的计数。

let _data = range Timeline from 1 to 9999 step 1
    | extend __key = 1
    | join kind=inner (range Id from 1 to 50 step 1 | extend __key=1) on __key
    | where Timeline % Id == 0
    | project Timeline, Id;
// End of data definition
_data
| evaluate session_count(Id, Timeline, 1, 10000, 100, 41)
| render linechart 

会话计数示例。