复制PostgreSQL数据进行分析



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

为了做到这一点,我相信我们想做以下事情:

  • 将一个"生产"PostgreSQL数据库复制到一个单独的"分析"数据库中
  • 将额外的表/视图等添加到"分析"数据库中,该数据库将仅支持分析解决方案,而是应用程序数据库的一部分
  • 以合理的最新方式维护生产数据的副本副本(实时复制不是严格需要的,但延迟不超过几秒是好的)

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

这在PostgreSQL中可行吗?如果可行,最好的策略/复制技术是什么?

不能使用流复制,因为不能将表添加到只读数据库中。但是,您可能会重新考虑不向生产数据库添加额外表的要求。

然而,还有其他复制技术,如Slony、Bucardo或Londiste。

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

但为此,您不能有“不超过几秒钟的延迟";。仔细检查这是否真的很重要,通常不适用于分析查询。

最新更新