【问题标题】:Does CQRS With OLTP and OLAP Databases Make Sense?带有 OLTP 和 OLAP 数据库的 CQRS 有意义吗?
【发布时间】:2017-07-18 02:29:36
【问题描述】:

我有几个 OLTP 数据库与 API 对话。我也有每隔几个小时将数据推送到 OLAP 数据库的 ETL 作业。

我的任务是构建一个自定义仪表板,显示来自 OLAP 数据库的高级数据。我想构建几个指向 OLAP 数据库的 API。我应该:

  1. 添加到我现有的 API 并调用 OLAP 数据库并使用 CQRS 类型模式,因此读取来自 OLAP,而写入来自 OLTP。我在这里担心的是读取和写入之间的数据可能不匹配。数据的不匹配程度取决于您运行 ETL 作业的频率(在我的例子中是小时数)。
  2. 添加到我现有的 API 并调用 OLAP 数据库,然后让客户端选择是否需要 API 重叠的 OLAP 或 OLTP 数据。我担心的是客户端不需要知道数据来自哪里的实现细节。
  3. 编写仅指向 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


【解决方案1】:

不要使用#1:当管理层谈论分析报告时,它不会打扰 ETL 流程之间的数据不匹配 - 显然,您将在当天完成 ETL 后生成一份 CEO 报告

不要使用#2:这样你会加载带有分析开销的跨国系统,并消除两个系统目的之间的隔离(不利于操作和维护)

使用 #3 作为获取 处理结果 的最佳方式,使用现代工具(如 Excel、PowerQuery、PowerBI)让您快速创建丰富的仪表板,而不是进入表格并编写 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多