如何高效查询大型数据库的小时数?

问题描述 投票:0回答:0

背景是这样的

我有多个资产表存储在redshift数据库中,每个城市,共8个城市。这些资产表每小时显示一次状态更新。8张SQL表,一年的数据量约为500mil行。我还可以访问每分钟更新这些数据的服务器)。

举个例子。 一个市场可以有20k资产,每天显示480k(20k*24小时)的状态更新。

这些状态更新是原始格式,需要经过一个转换过程。 目前是用SQL视图写的。最终状态将进入我们的BI工具(Tableau),供外部利益相关者查看。

问题是

目前处理数据的方式很慢,效率很低,而且在Tableau中每小时运行这项工作可能不现实。状态转换需要我回看30天的数据,所以我确实需要在整个查询过程中回看历史。

可能的解决方案。

以下是一些我认为可能有效的解决方案 我希望得到反馈,看看在我的情况下,什么是最合理的。

  • 运行一个python脚本,查看最近的更新,并以cron作业的方式查询30天的大历史表,并将结果发送到redshift数据库中的一个表。
  • 将SQL视图具体化,并每小时运行一次增量刷新。
  • 将Tableau中的视图作为数据源,每隔一小时运行一次增量刷新。

请告诉我你会如何处理这个问题。我的知识是在SQL,有限的数据工程经验,Tableau(Prep & Desktop)和Python或R的脚本。

python r amazon-redshift database-administration
© www.soinside.com 2019 - 2024. All rights reserved.