2010-09-30 71 views
1

我們目前正在爲我們的項目準備OLTP sql server 2005數據庫。我們正在計劃建立一個單獨的報告數據庫(非標準化),以便我們可以從OLTP DB中卸載。我不太確定哪個是同步這些數據庫的最佳方法。儘管如此,我們並不是在尋找一個實時系統。 SSIS是一個不錯的選擇嗎?我對SSIS完全陌生,所以不確定可行性。請提供您的輸入。刷新報表數據庫

+0

除了一般SSIS的「是」之外,更具體一點,您需要更具體地瞭解您的要求/限制條件等。 – InSane 2010-09-30 14:34:13

+0

感謝您的評論。正如我所提到的,我一直在尋找最佳方法來刷新報告數據庫的指針。我正在查找增量負載(自上次加載後發生的更改)以同步數據庫。我還沒有開始實施它,因此在這個時候沒有任何SSIS特定問題。 – Fka 2010-09-30 14:41:45

回答

0

每個人都有自己的SSIS意見。但是我已經使用了多年的數據市場和當前的環境,這是一個完整的BI安裝。我個人非常喜歡其移動數據的能力,它仍然在30分鐘內移動了1.13 TB的世界紀錄。

至於設置,我們使用日誌傳送從我們的事務數據庫填充第二個盒子。然後使用SSIS解除歸一化和倉庫數據。 SSIS社區也非常龐大,網上有大量的免費培訓和有用的資源。

0

我們使用我們從中運行報告SSIS構建我們的數據倉庫。它是一個很大的學習曲線,它引發的錯誤並不是特別有用,它有助於擅長SQL,而不是將它視爲「逐行轉移」 - 我的意思是您應該創建基於集合的查詢sql命令任務,而不是使用大量的SSIS組件和數據流任務。

瞭解每個倉庫是不同的,你需要決定如何做到最好。 This link可能會給你一些好主意。

我們如何實現我們的(我們有一個Postgres後端和使用PGNP提供商,並充分利用鏈接服務器的可能使您的生活更輕鬆):

首先,你需要在每個時間戳列這樣你就可以在最後一次更改時使用它。

然後寫一個選擇,因爲你最後一次運行包(使用審覈表將幫助)已經改變的數據查詢和獲取數據到一個臨時表。我們運行這個作爲一個數據流任務,(使用Postgres的),我們沒有任何其他選擇,雖然你可能能夠使用一個正常參考到另一個數據庫(dbname.schemaname.tablename或財產以後這樣的),或者使用鏈接服務器查詢。無論哪種方式,這個想法都是一樣的。您最終的數據自您的查詢以來發生了變化。

然後,我們更新(基於ID)已經存在,然後插入新的數據的數據(由左連接表,找出尚不在當前倉庫存在)。

所以現在我們有一個非規範化的表格,在這種情況下每天顯示的工作。從這裏我們根據這個聚合值計算其他表格。

希望幫助,這裏是我發現一些有用的好鏈接:

Choosing .Net or SSIS

SSIS Talk

Package Configurations

Improving the Performance of the Data Flow

Trnsformations

Custom Logging/Good Blog