2017-02-27 43 views
5

我有幾個API與他們交談的OLTP數據庫。我也有ETL作業每隔幾個小時將數據推送到OLAP數據庫。具有OLTP和OLAP數據庫的CQRS有意義嗎?

我的任務是構建一個顯示來自OLAP數據庫的高級數據的自定義儀表板。我想建立幾個指向OLAP數據庫的API。我應該:

  1. 添加到我現有的API並調用OLAP數據庫並使用CQRS類型模式,所以讀取來自OLAP,而寫入來自OLTP。我的擔心是讀寫之間的數據可能不匹配。數據的不匹配取決於您運行ETL作業的頻率(以我的情況爲例)。
  2. 添加到我現有的API並調用OLAP數據庫,然後要求客戶端選擇他們是否想要API重疊的OLAP或OLTP數據。我的關注點是客戶不需要知道數據來自何處的實現細節。
  3. 編寫僅指向OLAP數據庫的新API。這是很多額外的工作。
+1

我可能會去: >編寫只指向OLAP數據庫的新API。這是很多額外的工作。' 這應該更好地滿足您的需求,並避免混淆現有API的職責和功能......這種方法會使自己更好地維護和更健壯的解決方案...我的2美分 –

+0

這聽起來像是一個文本案例,其中CQRS與事件採購並使用它來創建投影有很大意義。您的OLTP很容易轉化爲事件,並且您的OLAP數據庫聽起來像預測會爲您提供相當大的性能改進,與您現在運行ETL作業的頻率相比,這可能基本上是實時的。 – Arwin

回答

0

不要使用#1:當分析報告管理談話它不打擾ETL過程之間數據不匹配 - 很明顯,你會完成ETL一天後生成CEO報告

不要使用#2:通過這種方式,您可以使用分析開銷加載跨國系統並解除兩個系統之間的隔離(不適合操作和維護)

使用#3作爲其獲取處理結果的最佳方法,使用現代工具,如Excel,PowerQuery,PowerBI您可以快速創建豐富的儀表板,而無需進入表格和編寫API。