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
如果 Id
是 Timeline
的除数(时间线 % 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