【发布时间】:2017-07-18 02:29:36
【问题描述】:
我有几个 OLTP 数据库与 API 对话。我也有每隔几个小时将数据推送到 OLAP 数据库的 ETL 作业。
我的任务是构建一个自定义仪表板,显示来自 OLAP 数据库的高级数据。我想构建几个指向 OLAP 数据库的 API。我应该:
- 添加到我现有的 API 并调用 OLAP 数据库并使用 CQRS 类型模式,因此读取来自 OLAP,而写入来自 OLTP。我在这里担心的是读取和写入之间的数据可能不匹配。数据的不匹配程度取决于您运行 ETL 作业的频率(在我的例子中是小时数)。
- 添加到我现有的 API 并调用 OLAP 数据库,然后让客户端选择是否需要 API 重叠的 OLAP 或 OLTP 数据。我担心的是客户端不需要知道数据来自哪里的实现细节。
- 编写仅指向 OLAP 数据库的新 API。这是很多额外的工作。
【问题讨论】:
-
我可能会选择:>
Write new API's that only point to the OLAP database. This is a lot of extra work.这应该更好地满足您的需求,并避免混淆现有 API 的职责和功能......这种方法将使自己获得更好的可维护性和更多强大的解决方案...我的 2 美分 -
这听起来几乎像一个文本案例示例,其中 CQRS 与事件源并使用它来创建投影很有意义。您的 OLTP 将轻松转换为事件,并且您的 OLAP 数据库听起来像是预测会为您提供相当大的性能改进,如果与您现在运行 ETL 作业的频率相比,这可能基本上是实时的。
标签: api olap microservices cqrs oltp