【问题标题】:Replicating PostgreSQL data for analytics复制 PostgreSQL 数据以进行分析
【发布时间】:2017-01-23 05:54:31
【问题描述】:

我目前正在研究一个潜在的开发项目,我们将开发一个分析解决方案来支持生产应用程序。显然,我们希望对合理的最新数据运行查询,但我们不希望直接使用(可能是昂贵的)分析查询来查询主数据库的操作风险。

为此,我相信我们想做以下事情:

  • 将“生产”PostgreSQL 数据库复制到单独的“分析”数据库中
  • 向“分析”数据库添加额外的表/视图等,这将仅支持分析解决方案,成为应用程序数据库的一部分。
  • 以合理的最新方式维护生产数据的副本(并非严格需要实时复制,但最好延迟几秒钟)

数据库不会太大(它是一个拥有大量用户但最不可能在任何时候都处于活动状态的网络/移动应用程序)。

这对于 PostgreSQL 是否可行,如果可行,最好的策略/复制技术是什么?

【问题讨论】:

  • 您找到更好的答案了吗?在使用解决方案 1 年后,您可以扩展您的经验吗?多少 TB 数据?

标签: database postgresql analytics


【解决方案1】:

您不能为此使用streaming replication,因为您不能将表添加到只读数据库。但您可能会重新考虑不将额外表添加到生产数据库的要求。

但是,还有其他复制技术,例如 SlonyBucardoLondiste

您应该记住的一件事是,适用于在线事务处理数据库的数据模型通常不太适合分析应用程序,并且您最终可能对分析查询的性能非常不满意。对于这些,通常要做的事情是构建某种data warehouse,其中数据以更加非规范化的形式存储,通常以star schema 之类的形式存储。

但为此你不能有“不超过几秒钟的延迟”。仔细检查这是否真的必要,它通常不适用于分析查询。

【讨论】:

  • pglogical 或 BDR 也可以是选项
  • 感谢您的回答,我怀疑可能是这种情况。很清楚原始数据表不适合分析查询(这是额外表的主要原因......)
猜你喜欢
  • 1970-01-01
  • 2017-08-16
  • 2018-08-31
  • 1970-01-01
  • 2015-03-10
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
相关资源
最近更新 更多