google-bigquery - BigQuery 每 x 行返回数据
问题描述
对于最近的一个项目,我想绘制传感器运动图。这很简单,我的数据是一个时间戳,一个以 mm 为单位的值。
现在,这个值可能会有一点波动,所以我已经通过获取这些值的滚动中值得到了帮助,所以图表变得平滑了。
现在,如果我想绘制一年的运动,它由 100.000 个数据点组成。这对于浏览器来说太多了,无法加载或绘制,而且分辨率过高。在人物屏幕中,我应该能够绘制 250 个点,但要给出图形的特征。
现在,有几种选择:首先,我猜中位数始终是起点。
- 对于每 x 行,返回平均值
说得通。但是我怎样才能让 BigQuery 从每块 100 行中返回一个 ts 和平均值?
但是,如果在这 100 行中,我们有一个明显的尖峰,它将被拉平,因此不可见(有趣的数据点)
所以,也许我想查看这 100 行的最大值或最小值,并将其返回,以便客户端可以在该数据块上绘制一个峰值。
我是程序员,不是统计员,但也许这类问题并不少见 :)
解决方案
按小时(如果点太多,则每天)对数据点进行分组,图表 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
以查找有很多变化的时间:
您可能会注意到,找到高方差点是很正常的——尤其是在这种情况下每天早上。因此,您并不需要真正关心高方差,而是与正常趋势线进行比较。这将是一个有趣的新问题的开始。
推荐阅读
- apache-kafka - 什么定义了 kafka 主题的范围
- ios - 切换组件在 iOS 中单击时不会改变状态
- css - 如何通过 CSS clip-path 属性将 SVG clipPath 与 Pattern 结合使用?
- r - R Shiny mapview:仅重绘图层,而不是整个地图(即leafletProxy)
- python - 熊猫。将 n 个不可告人的行值“转换”为先前行值的最佳方法是什么?(乘以列-1)
- lua - 编写检查状态机当前状态的函数 [Lua/Love2d]
- entity-framework - Entity Framework Core - 在不使用 include() 的情况下检索整个 DbSet
- python - 无法解析经纬度 BeautifulSoup
- wso2 - WSO2EI - 版本 6.4.0 - 如何将 User-Agent 标头设置为 Axis2 以外的任何内容
- c# - 如何在 Xamarin.Android 中请求权限?