series_periods_validate()
检查时序是否包含给定长度的定期模式。
通常,测量应用程序流量的指标以每周或每天的时间段为特征。 可通过运行 series_periods_validate()
(检查每周和每天时间段)来确认此时间段。
语法
series_periods_validate(
series,
period1 [ ,
period2 ,
。 。 。 ] )
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
series | dynamic |
✔️ | 数值的数组,通常是 make-series 或 make_list 运算符生成的输出。 |
period1、period2 等。 | real |
✔️ | 以箱大小为单位进行验证的周期。 例如,如果将序列按 1 小时的箱分箱,则一个每周期间为 168 箱。至少需要一个周期。 |
重要
- 对于每个 period 参数,其最小值是 4,最大值是输入序列长度的一半。 对于在这些界限之外的 period 参数,输出分数将会是 0。
- 输入时序必须有规律(也就是必须在常数箱中聚合),并且如果是使用 make-series 创建的,则输入时序总是有规律。 否则,输出就没有意义。
- 该函数最多可接受 16 个要验证的时间段。
返回
此函数输出一个包含两个列的表:
- periods:一个动态数组,包含要验证的时间段(在输入中提供)。
- scores:一个动态数组,包含一个界于 0 到 1 之间的分数。 该分数显示时间段在 periods 数组中其各自位置上的重要性。
示例
下面的查询嵌入某应用程序流量一个月的快照,每天聚合两次(箱大小为 12 小时)。
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| render linechart
如果对此序列运行 series_periods_validate()
来验证一个每周时间段(长度为 14 个点),它会产生一个高分,而在验证一个 5 天时间段(长度为 10 个点)时分数为 0。
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| project series_periods_validate(y, 14.0, 10.0)
输出
series_periods_validate_y_periods | series_periods_validate_y_scores |
---|---|
[14.0, 10.0] | [0.84, 0.0] |