【问题标题】:Analytics along with OLTP Database分析与 OLTP 数据库
【发布时间】:2019-01-24 08:17:37
【问题描述】:

我有一个主要用例,我想要一个使用 Postgres 的事务性关系数据库。

我还需要对数据进行频繁的聚合查询(计数、总和、平均值)。这些统计信息无法预先计算,因为我们必须提供多个搜索过滤器。

我最初考虑使用 Redshift 作为辅助存储,它可以为这些查询提供服务,但随后我还需要构建一个系统来保持两个存储之间的数据同步。

有没有更好的方法来实现这一点?

【问题讨论】:

  • 您是否确认您当前的 Postgres 服务器无法及时处理这些查询?尤其是 Postgres 11,它改进了对并行查询的支持,如果您拥有良好的硬件,JIT 可能就足够了。
  • 一些初始测试没有给我们想要的结果。虽然,我们可能会用 Redshift 本身得到类似的结果。我们的表总共有大约 200 GB 的数据,一些计数查询请求需要多达 10 秒。相比之下,由于我们的数据检索是分页的,因此我们能够以毫秒为单位提供结果。
  • 另外,我们目前有 Postgres 9.6,但我们也可以考虑升级。
  • 请注意,Postgres 12 将生成列:2ndquadrant.com/en/blog/generated-columns-in-postgresql-12

标签: database postgresql amazon-redshift


【解决方案1】:

看看 AWS DMS,您可以设置它以在 Redshift 上保留您的 Postgres 数据的近实时副本。

它可靠且需要最少的维护(例如,如果您向源数据添加新列)。

仔细阅读这两点,尤其是限制和要求。

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.htmlhttps://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html

除非您需要它们,否则我建议从同步中排除文本(和其他大型对象)列。这可以通过设置标志轻松完成,也可以逐列定制。

源 Postgres 数据库不必保存在 AWS 上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多