Postgresql 在图表中显示数据的有效方法

Postgresql 在图表中显示数据的有效方法,postgresql,d3.js,highcharts,google-visualization,Postgresql,D3.js,Highcharts,Google Visualization,我有一个应用程序,其中一些值存储在DB中,例如每秒一个值。它是每7天604800个值,如果我想在图表中查看该值,我需要一些有效的方法,例如,如果我有800px宽度的图表,如何仅从DB获取800个值 我使用一些聚合逻辑,其中计算2、3、4、5、6、10、12分钟间隔内的值的平均值,然后计算小时和日间隔的聚合 我使用PostgreSQL,此聚合使用以下语句计算: "INSERT INTO aggre_table_ ... SELECT sum(...)/count(*) ... WHERE tim

我有一个应用程序,其中一些值存储在DB中,例如每秒一个值。它是每7天604800个值,如果我想在图表中查看该值,我需要一些有效的方法,例如,如果我有800px宽度的图表,如何仅从DB获取800个值

我使用一些聚合逻辑,其中计算2、3、4、5、6、10、12分钟间隔内的值的平均值,然后计算小时和日间隔的聚合

我使用PostgreSQL,此聚合使用以下语句计算:

 "INSERT INTO aggre_table_ ... SELECT sum(...)/count(*) ... WHERE timestamp > ... and timestamp < ..."
“插入到aggre\u表中…”选择sum(…)/count(*)…其中timestamp>…和timestamp<…”
有没有更好的方法来实现这一点,或者什么是数据聚合的最佳方法,以便以后在图表中显示

通过一些触发器或调用存储过程来实现这一点更好吗

数据库是否支持D3js、Highcharts或Google Charts的聚合?

在Highcharts(事实上是Highstock)中,数据分组用于近似(请参阅)


此外,您还可以找到有关Highstock的更多信息。

如何聚合数据是一个与您的技术选择无关的大主题。这在很大程度上取决于数据的敏感性、数据的重要指标、这些指标的含义等

单个超出范围的点是否重要?还是你在寻找整体趋势?这些大问题的答案并不总是那么容易

我的一般性建议:

  • 若要显示一周的数据,请聚合到每小时平均值

  • 在该线周围提供一个范围,指示每个平均值周围的点分布

  • 如果聚集点内发生了重大事件,则用单独的标记表示

  • 如果详细程度很重要,则为每个聚合点提供向下钻取功能,以查看绘制的完整详细程度图表(可能不是)


  • 虽然这并不能回答你的问题,但是考虑到使用谷歌可视化API中的类A可能是有效的,这将允许你通过让用户缩放、浏览和扫描数据集来避免聚集问题。