每 x 行的 BigQuery return 数据
BigQuery return data per x rows
最近的一个项目,我想画一个传感器的运动图。
很简单,我的数据是一个时间戳,一个以毫米为单位的值。
现在,这个值可能会有点波动,所以我已经通过获取这些值的滚动中位数得到了帮助,所以图表变得平滑了。
现在,如果我想绘制一年的运动,它包含 100.000 个数据点。这对于浏览器加载或绘制来说太多了,而且分辨率过高。在人物屏幕上,我应该可以画出 250 个点,但要给出图形的特征。
现在,有几种选择:
首先,我猜中位数永远是起点。
- 每 x 行,return 平均值
有道理。但是我怎样才能让 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
来查找有很多变化的时间:
您可能会注意到,找到高差异点是很正常的 - 特别是在这种情况下每天早上。所以你真的不需要关心高方差,而是与一条正常的趋势线进行比较。这将是一个有趣的新问题的开始。
最近的一个项目,我想画一个传感器的运动图。 很简单,我的数据是一个时间戳,一个以毫米为单位的值。
现在,这个值可能会有点波动,所以我已经通过获取这些值的滚动中位数得到了帮助,所以图表变得平滑了。
现在,如果我想绘制一年的运动,它包含 100.000 个数据点。这对于浏览器加载或绘制来说太多了,而且分辨率过高。在人物屏幕上,我应该可以画出 250 个点,但要给出图形的特征。
现在,有几种选择: 首先,我猜中位数永远是起点。
- 每 x 行,return 平均值
有道理。但是我怎样才能让 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
来查找有很多变化的时间:
您可能会注意到,找到高差异点是很正常的 - 特别是在这种情况下每天早上。所以你真的不需要关心高方差,而是与一条正常的趋势线进行比较。这将是一个有趣的新问题的开始。