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 #1Table #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