funnel_sequence 插件
适用于:✅Azure 数据资源管理器
计算已获取州序列的用户的非重复计数,以及序列产生前/后的上一个/下一个州的分布。 该插件通过 evaluate
运算符调用。
语法
T | evaluate
funnel_sequence(
IdColumn,
TimelineColumn,
Start,
End,
MaxSequenceStepWindow, Step, StateColumn, Sequence)
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
T | string |
✔️ | 输入表格表达式。 |
IdColum | string |
✔️ | 表示 ID 的列引用。 此列必须存在于 T 中。 |
TimelineColumn | string |
✔️ | 表示时间线的列引用。 此列必须存在于 T 中。 |
Start | datetime、timespan 或 long | ✔️ | 分析开始时段。 |
End | datetime、timespan 或 long | ✔️ | 分析结束时段。 |
MaxSequenceStepWindow | datetime、timespan 或 long | ✔️ | 序列中两个顺序步骤之间允许的最大时间跨度的标量常数值。 |
步骤 | datetime、timespan 或 long | ✔️ | 分析步长时间段或箱。 |
StateColumn | string |
✔️ | 表示州的列引用。 此列必须存在于 T 中。 |
序列 | dynamic |
✔️ | 一个数组,其中包含在 StateColumn 中查找的序列值。 |
返回
返回三个输出表,用于构造已分析序列的桑基图:
表 #1 - prev-sequence-next
dcount
- TimelineColumn:分析后的时间范围
- 前一个:前一个州(如果有任何用户只存在所搜索序列的事件,而没有该序列之前的任何事件,则此项可能为空)。
- 下一个:下一个州(如果有任何用户只存在所搜索序列的事件,而没有该序列之后的任何事件,则此项可能为空)。
dcount
:时间范围内进行了prev
-->Sequence
-->next
转换的IdColumn
的非重复计数。- 示例:与行的序列对应的 ID 的数组(来自
IdColumn
)(最多返回 128 个 ID)。
表 #2 - prev-sequence
dcount
- TimelineColumn:分析后的时间范围
- 前一个:前一个州(如果有任何用户只存在所搜索序列的事件,而没有该序列之前的任何事件,则此项可能为空)。
dcount
:时间范围内进行了prev
-->Sequence
-->next
转换的IdColumn
的非重复计数。- 示例:与行的序列对应的 ID 的数组(来自
IdColumn
)(最多返回 128 个 ID)。
表 #3 - sequence-next
dcount
- TimelineColumn:分析后的时间范围
- 下一个:下一个州(如果有任何用户只存在所搜索序列的事件,而没有该序列之后的任何事件,则此项可能为空)。
dcount
:时间范围内进行了prev
-->Sequence
-->next
转换的IdColumn
的非重复计数。- 示例:与行的序列对应的 ID 的数组(来自
IdColumn
)(最多返回 128 个 ID)。
示例
暴风雨事件探究
以下查询查看表 StormEvents(2007 年的天气统计信息),并显示在 2007 年中发生所有龙卷风事件之前/之后发生的事件。
// Looking on StormEvents statistics:
// Q1: What happens before Tornado event?
// Q2: What happens after Tornado event?
StormEvents
| evaluate funnel_sequence(EpisodeId, StartTime, datetime(2007-01-01), datetime(2008-01-01), 1d,365d, EventType, dynamic(['Tornado']))
结果包括三个表:
- 表 #1:序列之前和之后发生的情况的所有可能的变体。 例如,第二行表示存在 87 个不同的事件,这些事件具有以下序列:
Hail
->Tornado
->Hail
StartTime |
prev |
next |
dcount |
---|---|---|---|
2007-01-01 00:00:00.0000000 | 293 | ||
2007-01-01 00:00:00.0000000 | 冰雹 | 冰雹 | 87 |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 雷雨大风 | 77 |
2007-01-01 00:00:00.0000000 | 冰雹 | 雷雨大风 | 28 |
2007-01-01 00:00:00.0000000 | 冰雹 | 28 | |
2007-01-01 00:00:00.0000000 | 冰雹 | 27 | |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 25 | |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 冰雹 | 24 |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 24 | |
2007-01-01 00:00:00.0000000 | 山洪 | 山洪 | 12 |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 山洪 | 8 |
2007-01-01 00:00:00.0000000 | 山洪 | 8 | |
2007-01-01 00:00:00.0000000 | 漏斗云 | 雷雨大风 | 6 |
2007-01-01 00:00:00.0000000 | 漏斗云 | 6 | |
2007-01-01 00:00:00.0000000 | 山洪 | 6 | |
2007-01-01 00:00:00.0000000 | 漏斗云 | 漏斗云 | 6 |
2007-01-01 00:00:00.0000000 | 冰雹 | 山洪 | 4 |
2007-01-01 00:00:00.0000000 | 山洪 | 雷雨大风 | 4 |
2007-01-01 00:00:00.0000000 | 冰雹 | 漏斗云 | 4 |
2007-01-01 00:00:00.0000000 | 漏斗云 | 冰雹 | 4 |
2007-01-01 00:00:00.0000000 | 漏斗云 | 4 | |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 漏斗云 | 3 |
2007-01-01 00:00:00.0000000 | 暴雨 | 雷雨大风 | 2 |
2007-01-01 00:00:00.0000000 | 山洪 | 漏斗云 | 2 |
2007-01-01 00:00:00.0000000 | 山洪 | 冰雹 | 2 |
2007-01-01 00:00:00.0000000 | 强风 | 雷雨大风 | 1 |
2007-01-01 00:00:00.0000000 | 暴雨 | 山洪 | 1 |
2007-01-01 00:00:00.0000000 | 暴雨 | 冰雹 | 1 |
2007-01-01 00:00:00.0000000 | 冰雹 | 洪水 | 1 |
2007-01-01 00:00:00.0000000 | 闪电 | 冰雹 | 1 |
2007-01-01 00:00:00.0000000 | 暴雨 | 闪电 | 1 |
2007-01-01 00:00:00.0000000 | 漏斗云 | 暴雨 | 1 |
2007-01-01 00:00:00.0000000 | 山洪 | 洪水 | 1 |
2007-01-01 00:00:00.0000000 | 洪水 | 山洪 | 1 |
2007-01-01 00:00:00.0000000 | 暴雨 | 1 | |
2007-01-01 00:00:00.0000000 | 漏斗云 | 闪电 | 1 |
2007-01-01 00:00:00.0000000 | 闪电 | 雷雨大风 | 1 |
2007-01-01 00:00:00.0000000 | 洪水 | 雷雨大风 | 1 |
2007-01-01 00:00:00.0000000 | 冰雹 | 闪电 | 1 |
2007-01-01 00:00:00.0000000 | 闪电 | 1 | |
2007-01-01 00:00:00.0000000 | 热带风暴 | 飓风(台风) | 1 |
2007-01-01 00:00:00.0000000 | 沿海洪水 | 1 | |
2007-01-01 00:00:00.0000000 | 裂流 | 1 | |
2007-01-01 00:00:00.0000000 | 大雪 | 1 | |
2007-01-01 00:00:00.0000000 | 强风 | 1 |
- 表 #2:显示按上一个事件分组的所有不同事件。 例如,第二行表明在
Tornado
之前总共发生了 150 个Hail
事件。
StartTime |
prev |
dcount |
---|---|---|
2007-01-01 00:00:00.0000000 | 331 | |
2007-01-01 00:00:00.0000000 | 冰雹 | 150 |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 135 |
2007-01-01 00:00:00.0000000 | 山洪 | 28 |
2007-01-01 00:00:00.0000000 | 漏斗云 | 22 |
2007-01-01 00:00:00.0000000 | 暴雨 | 5 |
2007-01-01 00:00:00.0000000 | 洪水 | 2 |
2007-01-01 00:00:00.0000000 | 闪电 | 2 |
2007-01-01 00:00:00.0000000 | 强风 | 2 |
2007-01-01 00:00:00.0000000 | 大雪 | 1 |
2007-01-01 00:00:00.0000000 | 裂流 | 1 |
2007-01-01 00:00:00.0000000 | 沿海洪水 | 1 |
2007-01-01 00:00:00.0000000 | 热带风暴 | 1 |
- 表 #3:显示按下一个事件分组的所有不同事件。 例如,第二行表明在
Tornado
之后总共发生了 143 个Hail
事件。
StartTime |
next |
dcount |
---|---|---|
2007-01-01 00:00:00.0000000 | 332 | |
2007-01-01 00:00:00.0000000 | 冰雹 | 145 |
2007-01-01 00:00:00.0000000 | 雷雨大风 | 143 |
2007-01-01 00:00:00.0000000 | 山洪 | 32 |
2007-01-01 00:00:00.0000000 | 漏斗云 | 21 |
2007-01-01 00:00:00.0000000 | 闪电 | 4 |
2007-01-01 00:00:00.0000000 | 暴雨 | 2 |
2007-01-01 00:00:00.0000000 | 洪水 | 2 |
2007-01-01 00:00:00.0000000 | 飓风(台风) | 1 |
现在,让我们尝试查明下面的序列如何继续进行:
Hail
->Tornado
->Thunderstorm Wind
StormEvents
| evaluate funnel_sequence(
EpisodeId,
StartTime,
datetime(2007-01-01),
datetime(2008-01-01),
1d,
365d,
EventType,
dynamic(['Hail', 'Tornado', 'Thunderstorm Wind'])
)
跳过 Table #1
和 Table #2
,查看 Table #3
,我们可以断定在以序列 Hail
->Tornado
->Thunderstorm Wind
结束的 92 个事件中,有 41 个事件继续发生了 Hail
,有 14 个事件回头发生了 Tornado
。
StartTime |
next |
dcount |
---|---|---|
2007-01-01 00:00:00.0000000 | 92 | |
2007-01-01 00:00:00.0000000 | 冰雹 | 41 |
2007-01-01 00:00:00.0000000 | 龙卷风 | 14 |
2007-01-01 00:00:00.0000000 | 山洪 | 11 |
2007-01-01 00:00:00.0000000 | 闪电 | 2 |
2007-01-01 00:00:00.0000000 | 暴雨 | 1 |
2007-01-01 00:00:00.0000000 | 洪水 | 1 |