适用于:✅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