首页 > 解决方案 > 生成规范化关系数据的非规范化视图

问题描述

我参与了一个正在开发基于 CQRS 的应用程序的项目。应用程序将从 NoSQL 存储中获取其所有数据,并在其中以非规范化格式检索数据。但是,实际数据驻留在关系系统中。NoSQL 存储用作关系数据的视图。此视图应定期更新(可能每隔几分钟)。

我不确定应该使用什么技术来自动化这个更新过程。非规范化视图是可以在 SQL 查询中生成的 JSON,但这会使更新过程数据库供应商特定,这将成为一个问题。我尝试使用 Pentaho Kettle,但构建一个真正的非规范化结构被证明是非常乏味和耗时的。

考虑到它应该易于维护和适应,什么技术是合适的?

我正在考虑编写 Python 脚本,但我不确定它们的可维护性。

NoSQL 存储是 Couchbase,用于开发的 RDBMS 是 MariaDB。

标签: jsonnosqletldenormalizationdenormalized

解决方案


一个似乎运作良好的解决方案是仅使用 Pentaho Kettle 来查询数据库和更新 NoSQL 存储。JSON 作为查询的一部分生成(大多数 JSON 函数在 RDBMS 之间进行标准化,所以这很好)。因为我的数据库用户不能使用JSON_ARRAYAGG所有子查询都表示为序列化的 JSON,它在 Kettle 转换中被解析并替换为实际的 JSON。


推荐阅读