【发布时间】:2017-07-31 23:11:46
【问题描述】:
我有一个具有非常规范化数据的 PostgreSQL 数据库,因此大量请求会产生大量连接,而我的数据库运行缓慢。我想对来自 PostgreSQL 的数据进行非规范化并将其存储在 NoSQL DB 中以进行只读访问。为此,我必须提供 PostgreSQL 和 NoSQL 之间的同步(允许很少的延迟)。我想考虑不同的方式,以便选择最合适的方式。
当发生变化时,我可以使用模型中的事件并将它们放入队列中。之后,工作人员可以处理事件并向 NoSQL 添加必要的数据,但是我有很多质量很差的遗留代码,我不想对其进行太多更改。另外,我可以对数据进行非规范化并将其放入 PostgreSQL,但不知道这是否合适。
此类任务有哪些解决方案?
【问题讨论】:
-
您可能想查看foreign data wrappers。
-
@Dmitrii Goldring 感谢您的建议。我了解外国数据包装器,但我想获得有关如何从头到尾实施所有流程的建议。例如,如何使用提供同步的外部数据包装器?我可以使用 SQL 触发器、ORM 事件,但实际上由于有很多遗留问题,我认为更好的解决方案可能是不更改遗留代码,并且可以使用数据库复制或二进制日志。
标签: postgresql denormalization nosql