我如何按日汇总数据并仍尊重时区?

我们目前正在使用汇总表,以UTC时间为单位按小时为用户汇总信息。 我们遇到的问题是这张桌子变得太大,并且极大地减慢了我们的系统。 我们已经完成了为PostgreSQL推荐的所有调优技术,并且我们仍然遇到了缓慢。

我们的想法是开始按天而不是按小时进行汇总,但问题是我们允许客户更改时区,以重新计算当天的数据。

有谁知道存储每日总结的方式,但仍然尊重切换时区时的数字和总数?


使用timeoffset列汇总表格中的数据,并在特定摘要行中显示“日”字段(日期)。 索引(timeoffset,day,其他相关字段),如果可能的话聚集(大概PostgresSQL有聚簇索引?),并且一切都会好的。


我假设你已经完成了所有的分区考虑,比如用户分区。

我可以看到针对您的问题的几种解决方案,具体取决于使用模式。

  • 每天,每个用户选择的汇总数据。 在时区更改的情况下,以编程方式重新计算此合作伙伴的总计。 如果时区更改不频繁,并且用户更改时区时可能会引入某些数据延迟,则这种做法是合理的。

  • 如果您的措施相对较少,则可以为每个度量维护24列 - 每个度量描述不同时区中度量的每日总计。

  • 如果时区变化频繁且有很多措施,似乎需要24个不同的汇总表才能走。


  • 我也遇到过这个问题。 我采用这种解决方案:由于统计索引是本地的,因此使用date类型的数据使用本地时区,其他使用datetime类型的数据使用UTC时区。 另一个原因是现在我们只有本地数据。

    链接地址: http://www.djcxy.com/p/47217.html

    上一篇: How Do I aggregate Data By Day and Still Respect Timezone?

    下一篇: OAuth and HTTParty