AWS Aurora Postgres中的并行计划/查询

时间:2018-08-28 15:33:58

标签: postgresql amazon-web-services parallel-processing amazon-rds-aurora

并行来说,我的意思是将单个(分析)查询的工作负载分配到多个线程甚至副本。

我看到OSS Postgres从9.6开始支持它们:https://www.postgresql.org/docs/9.6/static/parallel-plans.html

AWS Aurora添加了此预览,但仅适用于MySQL变体:https://aws.amazon.com/about-aws/whats-new/2018/02/amazon-aurora-parallel-query-is-available-for-preview/

但是普通的AWS RDS(不是Aurora)确实支持它们,因为有了Postgres 9.6: https://aws.amazon.com/blogs/database/performing-parallel-queries-and-phrase-searching-with-amazon-rds-for-postgresql-9-6-1/

  1. 我是否可以推断AWS Aurora Postgres 不支持并行计划?
  2. 如果是这样,这是否意味着普通RDS Postgres在分析查询方面可能比Aurora更好?
  3. 是否对Aurora Postgres的查询并行性的未来支持有任何了解?

非常感谢!

1 个答案:

答案 0 :(得分:2)

一些解释:

postgres9.6 +中的“并行计划”将满足您的要求:通过启动并行执行过程来加快单个查询的速度。

用于MySQL的Aurora“并行查询”是完全不同的,尽管它也会产生您想要的结果。

Aurora(适用于MySQL和Postgres)具有一个特殊的分布式存储层,该层可存储6个冗余副本,可用于只读副本和故障恢复。 “并行查询”利用此存储层(包括与相关CPU进行管理的存储)来执行一些查询计算,从而减轻了DB VM的负担。

例如,可以过滤掉与查询无关的行和列,将其下推到存储层,而不是将所有数据读回VM并将其丢弃。

总而言之:

postgres9.6 +中的“并行计划”在VM内创建并行执行过程

Aurora中的“并行查询”将计算推入存储层,从而减轻了VM的负担。

回答您的问题:

  1. 正确
  2. 也许:见上文。取决于将数据过滤下推到存储层所获得的收益。
  3. 根据AWS博客,正在开发针对postgres的“并行查询”: “我们正在启动对MySQL 5.6的支持,并致力于对MySQL 5.7和PostgreSQL的支持。” https://aws.amazon.com/blogs/aws/new-parallel-query-for-amazon-aurora/

我认为对Postgres进行分析的“显着”提升对于支持事务Postgres系统上的“实时运营分析”是必要的。 9.6+中的“并行计划”是一个开始。 Aurora“并行查询”是另一种不同的方法。可能还有其他方法可以加快对postgres的分析速度……我想在AWS以外的多个云上看到这样的解决方案:Azure,GCP。

我已经提交了有关Azure的请求-如果您同意,请在此处进行投票:

https://feedback.azure.com/forums/597976-azure-database-for-postgresql/suggestions/35794984-transactional-db-with-analytics