我目前正在努力查询存储在分区表中的数据块(每个日期的分区)
数据看起来是这样的:
date, product_id, orders
2019-11-01, 1, 100
2019-11-01, 2, 200
2019-11-02, 1, 300我有数百个日期分区,每个日期有数百万行。
现在,例如,如果我想要查询产品id 1和2在2周内的总订单,并按日期分组(在每个日期的图形中显示),数据库必须转到2周的分区并获取它们的数据。
当产品数量很多或所需的时间框架很长时,该过程可能会花费很长时间。
我读到过AWS Redshift适用于这类任务。我正在考虑将我的分区表(每天的聚合分析)转移到该技术上,但我不知道这是否真的是我应该做的,以使这些查询运行得更快。
谢谢!
发布于 2019-11-21 18:41:59
根据您的用例,Redshift对您来说确实是一个很好的选择。要获得Redshift的最佳性能,设置适当的分布和排序关键字是非常重要的。在本例中,"date“列应该是分配关键字,"productid”应该是排序关键字。另一个重要的注意事项是,不要对"date“和"productid”列进行编码。你应该得到更好的性能。
发布于 2019-11-21 20:47:35
如果您正在为传统的SQL数据库而苦苦挣扎,那么Amazon Redshift无疑是一个不错的选择。它可以处理数十亿行的表。
这将涉及将数据从亚马逊S3加载到Redshift中。这将允许Redshift优化数据存储的方式,使其更快地进行查询。
或者,您可以考虑使用亚马逊雅典娜,它可以直接从亚马逊S3查询数据。它理解被划分到不同目录中的数据(例如基于日期)。
发布于 2019-11-21 16:09:04
您使用的是哪个版本的PostgreSQL?您使用的是本机分区还是继承分区trigger-based
最新版本的
改进了分区管理。
https://stackoverflow.com/questions/58969723
复制相似问题