复制PostgreSQL数据以进行分析

3
我目前正在考察一个潜在开发项目,我们将开发一种分析解决方案来支持生产应用。显然,我们希望在相当新的数据上运行查询,但我们不想使用(可能非常昂贵的)分析查询直接查询主数据库,这样会有操作风险。
为此,我认为我们应该执行以下操作:
- 将“生产”PostgreSQL数据库复制到单独的“分析”数据库中。 - 向“分析”数据库添加其他表/视图等,仅支持分析解决方案,并且不是应用程序DB的一部分。 - 以相当新的方式维护生产数据的副本(实时复制不是必需的,但不超过几秒钟的延迟就很好)。
数据库不会过度庞大(它是一个Web /移动应用程序,拥有很多用户,但大部分用户不太可能同时活跃)。
PostgreSQL是否可以实现这一点?如果可以,最佳策略/复制技术是什么?

你找到更好的答案了吗?您可以在使用解决方案一年后扩展您的经验吗?有多少TB的数据? - Leo Gallucci
1个回答

3
你不能使用流复制,因为你不能向只读数据库中添加表。但是你可能需要重新考虑不将额外的表添加到生产数据库的要求。 然而,还有其他的复制技术,比如Slony, Bucardo 或者 Londiste。 需要记住的一件事是,在线交易处理数据库适用的数据模型通常不适合分析应用程序,并且你可能对分析查询的性能感到非常不满意。为此,通常做法是建立某种数据仓库,其中数据以更简化的形式存储,通常是在类似于星型模式的结构中。
但是,如果您不能“仅有几秒的延迟”,那么就无法做到这一点。请再次确认是否真的必要,通常对于分析查询来说并不需要。

2
pglogical或BDR也可以是选项。 - user330315
谢谢你的回答,我就猜到可能是这样。我很清楚原始数据表不适合进行分析查询(这也是额外表格的主要原因...)。 - mikera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接