每 x 行的 BigQuery return 数据

BigQuery return data per x rows

最近的一个项目,我想画一个传感器的运动图。 很简单,我的数据是一个时间戳,一个以毫米为单位的值。

现在,这个值可能会有点波动,所以我已经通过获取这些值的滚动中位数得到了帮助,所以图表变得平滑了。

现在,如果我想绘制一年的运动,它包含 100.000 个数据点。这对于浏览器加载或绘制来说太多了,而且分辨率过高。在人物屏幕上,我应该可以画出 250 个点,但要给出图形的特征​​。

现在,有几种选择: 首先,我猜中位数永远是起点。

有道理。但是我怎样才能让 BigQuery return 说一个 ts 和每个 100 行块的平均值?

但是,如果在这 100 行中,我们有一个明显的尖峰,它将被拉平,因此不可见(有趣的数据点)

所以,也许我想查看这 100 行的最大值或最小值,return 这样客户端就可以在该数据块上绘制一个峰值。

我是一名程序员,不是统计人员,但也许这类问题并不少见:)

按小时对数据点进行分组(如果点太多,则按天分组),图表 3 行:

  • 平均
  • 最大
  • 分钟

例如:

#standardSQL
SELECT SensorName, TIMESTAMP_TRUNC(Timestamp, hour) hour
  , COUNT(*) c, AVG(Data) avg, MAX(Data) max, MIN(Data) min
FROM `data-sensing-lab.io_sensor_data.moscone_io13`
WHERE SensorName='XBee_40670F5F/light'
GROUP BY 1,2
ORDER BY 2

一次可视化一个传感器时,这很容易 - 但您是否正在寻找可以同时显示 X 个传感器的图表?

如果您添加 VARIANCE 来查找有很多变化的时间:

您可能会注意到,找到高差异点是很正常的 - 特别是在这种情况下每天早上。所以你真的不需要关心高方差,而是与一条正常的趋势线进行比较。这将是一个有趣的新问题的开始。