activity_metrics 插件
适用于:✅Azure 数据资源管理器
计算有用的指标,有用的指标包括非重复计数值、新值的非重复计数、保留率和流失率。 此插件与 activity_counts_metrics 插件的不同之处在于,每个时间窗口将与前面的所有时间窗口进行比较。
语法
T | evaluate
activity_metrics(
IdColumn,
TimelineColumn,
[Start,
End,
] Window [,
dim1,
dim2,
...])
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
T | string |
✔️ | 用于计算活动指标的输入。 |
IdCoumn | string |
✔️ | 列的名称,其 ID 值表示用户活动。 |
TimelineColumn | string |
✔️ | 表示时间线的列的名称。 |
Start | datetime |
✔️ | 分析开始时段。 |
End | datetime |
✔️ | 分析结束时段。 |
步骤 | 十进制、日期/时间或时间跨度 | ✔️ | 分析窗口时段。 该值也可以是 week 、month 或 year 的字符串,在这种情况下,所有时段分别是 startofweek、startofmonth 或 startofyear。 |
dim1, dim2, ... | dynamic |
维度列的数组,用于切分活动指标计算。 |
返回
该插件返回一个表,其中包含每个时间线时段和每个现有维度组合的非重复计数值、新值的非重复计数、保留率和流失率。
输出表架构如下:
TimelineColumn | dcount_values | dcount_newvalues | retention_rate | churn_rate | dim1 | .. | dim_n |
---|---|---|---|---|---|---|---|
类型:自 TimelineColumn 起 | long |
long |
double | Double | .. | .. | .. |
说明
保留率定义
一段时间内 Retention Rate
的计算方法为:
在该时段回头的客户数 /(除以)该时段最初的客户数
其中的 # of customers returned during the period
定义为:
该时段结束时的客户数 -(减)在该时段赢得的新客户数
Retention Rate
可以在 0.0 到 1.0 之间变化。评分越高,表示回头用户数越多。
流失率定义
一段时间内 Churn Rate
的计算方法为:
该时段内丢失的客户数 /(除以)该时段最初的客户数
其中的 # of customer lost in the period
定义为:
该时段最初的客户数 -(减)该时段内返回的客户数
Churn Rate
可以在 0.0 到 1.0 的范围内变化。评分越高,表示未重新使用该服务的用户数越多。
流失率与保留率 流失率与保留率派生自 Churn Rate
和 Retention Rate
的定义。 以下计算始终正确:
[
Retention Rate
] = 100.0% - [Churn Rate
]
示例
每周保留率和流失率
下一个查询计算每周保留率和流失率。
// Generate random data of user activities
let _start = datetime(2017-01-02);
let _end = datetime(2017-05-31);
range _day from _start to _end step 1d
| extend d = tolong((_day - _start)/1d)
| extend r = rand()+1
| extend _users=range(tolong(d*50*r), tolong(d*50*r+200*r-1), 1)
| mv-expand id=_users to typeof(long) limit 1000000
//
| evaluate activity_metrics(['id'], _day, _start, _end, 7d)
| project _day, retention_rate, churn_rate
| render timechart
输出
_day | retention_rate | churn_rate |
---|---|---|
2017-01-02 00:00:00.0000000 | NaN | NaN |
2017-01-09 00:00:00.0000000 | 0.179910044977511 | 0.820089955022489 |
2017-01-16 00:00:00.0000000 | 0.744374437443744 | 0.255625562556256 |
2017-01-23 00:00:00.0000000 | 0.612096774193548 | 0.387903225806452 |
2017-01-30 00:00:00.0000000 | 0.681141439205955 | 0.318858560794045 |
2017-02-06 00:00:00.0000000 | 0.278145695364238 | 0.721854304635762 |
2017-02-13 00:00:00.0000000 | 0.223172628304821 | 0.776827371695179 |
2017-02-20 00:00:00.0000000 | 0.38 | 0.62 |
2017-02-27 00:00:00.0000000 | 0.295519001701645 | 0.704480998298355 |
2017-03-06 00:00:00.0000000 | 0.280387770320656 | 0.719612229679344 |
2017-03-13 00:00:00.0000000 | 0.360628154795289 | 0.639371845204711 |
2017-03-20 00:00:00.0000000 | 0.288008028098344 | 0.711991971901656 |
2017-03-27 00:00:00.0000000 | 0.306134969325153 | 0.693865030674847 |
2017-04-03 00:00:00.0000000 | 0.356866537717602 | 0.643133462282398 |
2017-04-10 00:00:00.0000000 | 0.495098039215686 | 0.504901960784314 |
2017-04-17 00:00:00.0000000 | 0.198296836982968 | 0.801703163017032 |
2017-04-24 00:00:00.0000000 | 0.0618811881188119 | 0.938118811881188 |
2017-05-01 00:00:00.0000000 | 0.204657727593507 | 0.795342272406493 |
2017-05-08 00:00:00.0000000 | 0.517391304347826 | 0.482608695652174 |
2017-05-15 00:00:00.0000000 | 0.143667296786389 | 0.856332703213611 |
2017-05-22 00:00:00.0000000 | 0.199122325836533 | 0.800877674163467 |
2017-05-29 00:00:00.0000000 | 0.063468992248062 | 0.936531007751938 |
不同的值和不同的“新”值
下一个查询计算每周的不同值和“新”值(上一个时间窗口中没有出现的 ID)。
// Generate random data of user activities
let _start = datetime(2017-01-02);
let _end = datetime(2017-05-31);
range _day from _start to _end step 1d
| extend d = tolong((_day - _start)/1d)
| extend r = rand()+1
| extend _users=range(tolong(d*50*r), tolong(d*50*r+200*r-1), 1)
| mv-expand id=_users to typeof(long) limit 1000000
//
| evaluate activity_metrics(['id'], _day, _start, _end, 7d)
| project _day, dcount_values, dcount_newvalues
| render timechart
输出
_day | dcount_values | dcount_newvalues |
---|---|---|
2017-01-02 00:00:00.0000000 | 630 | 630 |
2017-01-09 00:00:00.0000000 | 738 | 575 |
2017-01-16 00:00:00.0000000 | 1187 | 841 |
2017-01-23 00:00:00.0000000 | 1092 | 465 |
2017-01-30 00:00:00.0000000 | 1261 | 647 |
2017-02-06 00:00:00.0000000 | 1744 | 1043 |
2017-02-13 00:00:00.0000000 | 1563 | 432 |
2017-02-20 00:00:00.0000000 | 1406 | 818 |
2017-02-27 00:00:00.0000000 | 1956 | 1429 |
2017-03-06 00:00:00.0000000 | 1593 | 848 |
2017-03-13 00:00:00.0000000 | 1801 | 1423 |
2017-03-20 00:00:00.0000000 | 1710 | 1017 |
2017-03-27 00:00:00.0000000 | 1796 | 1516 |
2017-04-03 00:00:00.0000000 | 1381 | 1008 |
2017-04-10 00:00:00.0000000 | 1756 | 1162 |
2017-04-17 00:00:00.0000000 | 1831 | 1409 |
2017-04-24 00:00:00.0000000 | 1823 | 1164 |
2017-05-01 00:00:00.0000000 | 1811 | 1353 |
2017-05-08 00:00:00.0000000 | 1691 | 1246 |
2017-05-15 00:00:00.0000000 | 1812 | 1608 |
2017-05-22 00:00:00.0000000 | 1740 | 1017 |
2017-05-29 00:00:00.0000000 | 960 | 756 |