我們正在構建一個應用程序。我們現在有一個ms sql數據庫,我們把所有數據放在需要的地方。 我們希望使用另一個數據庫僅用於報告,這將是主數據庫的非規範化版本,並針對快速數據檢索進行了優化。 有一對夫婦的問題,我們有:報告數據庫同步
- 什麼類型的數據庫最適合工作報告(SQL,RavenDB)
- 如何將這兩個數據庫同步?
作爲數據訪問我們使用NHibernate 3.2。
請幫忙。 謝謝
我們正在構建一個應用程序。我們現在有一個ms sql數據庫,我們把所有數據放在需要的地方。 我們希望使用另一個數據庫僅用於報告,這將是主數據庫的非規範化版本,並針對快速數據檢索進行了優化。 有一對夫婦的問題,我們有:報告數據庫同步
作爲數據訪問我們使用NHibernate 3.2。
請幫忙。 謝謝
你可以使用SQL Server分析服務來安置一個適當的數據倉庫,從你的問題聽起來像你要去的方式。 SQL Server Integration Services可用於執行將填充並保持倉庫最新的ETL(Extract-Transform-Load)過程。
這個過程已經有很多很好的綜合指南。
RavenDB通常不用於報告,通常的做法是將您的RavenDB數據平鋪到表結構中(使用索引)並將其導出到SQL Server並使用Crystal或SQL Reporting Services。
首先選擇能夠滿足您報告需求的數據庫(或搜索引擎)。然後構建一個ETL過程以將數據導入報告引擎並保持其更新。 ETL意味着Extract-Transform-Load,並且有些工具可以爲您完成所有工作,或者您可以編寫自己的特殊用途工具。
如果您的數據庫架構在每條記錄上提供了「上次更新」時間戳,那麼您可以推出自己的ETL工具,這會有所幫助。你甚至都不需要保持這種更新,因爲SQL Server將做你,如果你有這樣的:
CREATE TABLE Orders
(
OrderId int NOT NULL PRIMARY KEY,
ProductName varchar(50) NOT NULL,
LastUpdated datetime NOT NULL DEFAULT GETDATE()
)
這將無法保持更新,雖然嘗試... – gliljas
感謝,將與此 – Luka