session_count 插件

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

语法

TabularExpression| evaluatesession_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 

Example session count.