2009-01-16 130 views
9

我有一個現有的運行我們的會計/庫存應用程序的SQL Server 2005數據庫。我們正在考慮使用新的在線訂購框架 - 它有自己的數據庫。在不同數據庫模式之間同步數據的最佳技術?

如果我們使用這個新框架,我們需要將我們現有的庫存數據庫中的在線訂購數據(庫存,價格,訂單,客戶)(幾乎實時)傳輸給我們。數據傳輸不一定是實時的,但必須快速。兩個數據庫都將在SQL Server中。

所以我的問題是...什麼是在兩個數據庫之間來回傳輸數據,具有不同模式的最佳方式?

複製? SSIS?你會建議什麼,爲什麼?

任何幫助,將不勝感激!

回答

8

就我個人而言,我會盡可能快地從這個噩夢中逃離。由於您還沒有購買這個在線訂購,我建議保持數據與現有應用程序同步是不做這種事情的合理原因。如果您購買此產品,您將永遠後悔您的數據將會變得多麼糟糕,以及您花費了多少時間和金錢來試圖使事情正常工作。這是一場等待發生的災難。當倉庫裏沒有人時,你最終會讓人們按照原來的方式訂購物品。不要這樣做。這是憤怒的顧客和憤怒的管理者的保證。隨着時間的推移,僱用一些開發人員將自己的在線訂購集成到您的數據庫中將會更便宜。如果他們繼續反對,我會更新我的簡歷。

0

複製效果很好,如果它是雙向的,它可能是你唯一可行的選擇,因爲衝突解決是內置的。

如果你打算單向,SSIS或觸發器表上會罰款,並會實時推送數據(用於觸發器)或以您想要的任何間隔(SSIS)推送數據。 SSIS的好處在於它是一個後臺進程,而觸發器可能在推送數據的同時阻止供應方的交易。

如果您希望移動大量數據,還有其他可以爲您提供幫助的產品,但如果數據不是太多,則使用SQL Server工具的解決方案應該可以滿足您的所有需求。

1

從個人經驗來看,如果沒有其他選擇,我只會使用複製。你必須爲了任何架構改變而撕毀它,並且它有一種傾向於炸燬。

爲此,我很可能會使用SSIS。構建轉換包相當簡單,而且維護起來非常簡單。

11

業務規則是最困難的部分

單向同步?雙向同步?實時推送?每晚更新?轉儲和重新加載?比較和更新?解決衝突?哪一方獲勝?以一種方式推送只讀信息,並以另一種方式訂購信息?如何更改/取消/等?訂單狀態是否被推回?

你可以看到我要去的地方。技術是第二個問題。由於業務規則問題,並且由於兩個系統有不同的架構(和不同的目的),這不是一個標準的數據移動,大多數「標準」答案(複製,日誌傳送等)不在桌上。

有框架設計來幫助這個,如Microsoft BizTalkScribe Insight。儘管如此,這些都很麻煩而且很昂貴。

基於SQL觸發器或定時推送(取決於您的需要)以C#或您最喜歡的語言創建自定義隊列系統並不困難。這可能是我會走的路線。它可能會涉及一個第三個「傳輸」數據庫來保存一側所做更改的隊列,以及一個模塊來應用業務規則並將數據推送到另一側。

+0

是的,會涉及商業規則,所以您關於複製和日誌傳送的觀點很好。訂單將來自框架數據庫,其他所有內容都將進入框架。自定義隊列代碼或SSIS看起來可能適用於此場景。 – Clinemi 2009-01-16 23:22:49

+0

感謝您的輸入。我給了你一票,因爲你的觀點非常有助於我決定不使用框架。 – Clinemi 2009-01-16 23:40:10