更新 OLAP Cube 數據
我們在我們的項目中使用 OLAP,我們面臨一個場景,我們需要每天使用實時數據更新多維數據集。
我需要一些關於更新多維數據集中數據的最佳方法的建議。
每當新數據到達並在該表中創建條目時,我們需要像觸發器一樣更新多維數據集中的目前值。
很難為您提供最佳設置的具體指導,但無論如何都不存在寫入 OLAP 多維數據集的觸發器之類的東西。
不過,我可以給你一些起點。
您需要研究多維數據集的不同儲存選項。
預設情況下,多維數據集使用MOLAP(多維 OLAP),您可以在其中按計劃處理多維數據集
$$ 1 $$所有數據和聚合都儲存在 OLAP 數據庫中。這具有延遲,因為關係數據僅在處理後在多維數據集中可見。 從開發人員的角度來看,這是迄今為止最簡單的選擇,但不能解決您的要求。
$$ 1 $$使用 MOLAP,請參閱下面的主動記憶體選項 還有一種ROLAP(關係 OLAP)儲存模式,它將聚合儲存在關係數據庫的索引視圖中。多維數據集中沒有數據副本,但數據在多維數據集中立即可用。
這當然會影響 SSAS 多維數據集的查詢性能。通常查詢會返回較慢,處理時間會更長。
如果性能太慢,還有第三種選擇,稱為HOLAP(混合 OLAP),它將數據儲存在關係數據庫中,但聚合儲存在 OLAP 數據庫中。更新源數據時,將再次處理聚合。當從聚合中解析查詢時,這提供了零延遲和相對不錯的性能,但是當使用者向下鑽取或查詢必須訪問關係儲存時,性能會降低。
主動記憶體
您還應該查看確定聚合更新頻率的**主動記憶體。**這應該是處理對關係數據庫的負載與 SSAS 查詢的性能和多維數據集的延遲之間的平衡。
如果您使用主動記憶體,多維數據集會偵聽基礎數據源中的更改並按照您選擇的計劃處理您的 MOLAP 分區。
查看這篇SQL Server Proactive Caching 簡介,了解其工作原理