2014-03-25 166 views
1

我正在編寫使用來自MSSQL 2012數據庫(由另一個更大的應用程序使用)部分的數據的Intranet應用程序(在LAMP環境中)。SQL Server 2012數據集成

在我看來我的選擇是:

  • 直接從應用程序查詢數據庫。
  • 創建一個Web服務
  • 使用Microsoft SQL Server集成服務有數據 自動集成到我的應用程序的數據庫

我敢肯定,在這裏最好的解決方案將使用SSIS,但是我已經在最後期限時前沒有這樣做 - 所以,如果是這樣的話可能會有人讓我知道

一)與我在這方面的經驗有限,我將能夠設定了,

二)什麼AR e上述選項的優缺點?

我已經想到了會還可以理解的

+0

SSIS是一種選擇,但不會自動認爲這是最佳選擇。它有它自己的複雜性。爲什麼你的應用程序不能直接讀取數據庫? –

+0

@ElectricLlama這是一個選項,我想我正在尋找自己的方法的利弊。安全是顯而易見的。從服務器更新我的應用程序數據庫將更安全 – JohnnyFaldo

+0

根據您對SSIS的瞭解,您的應用程序的體系結構,支持系統之間的接口,根據您的定義組織等等。對於我們來說,有太多的變數給出了一個很好的答案。我會說,在過去,我已經剔除了許多未公開的Windows任務調度程序接口。 –

回答

0

選項中的選項之外的任何其他建議:

直接查詢從應用程序的數據庫。

潛在上升空間:

  • 決不任何過時的數據

缺點:

  • 您的應用程序現在包含特定的代碼,並捆綁是 應用
  • 如果您在商家的常見情況是 購買含有相同的主數據的另一種應用程序,你現在 需要特殊的代碼連接到兩個應用程序
  • 供應商可能不喜歡它
  • 可能會在源應用

使用Windows任務計劃程序的性能影響/ SQL Agent運行腳本或SSIS以x分鐘左右的時間間隔複製數據。

潛在上升空間:

  • 您的應用程序只與您的本地數據庫,它可以根據需要自定義的副本。如果您的源應用程序移動到雲或其他東西,那麼您不需要更改應用程序,只需集成更改
  • 如果其他源應用程序顯示的主數據類型相同,則現在可以將其複製到本地數據庫而不是使應用程序更改連接到2個數據庫。

缺點:

  • 陳舊數據的可能性
  • 更糟糕的是:沒有用戶在應用程序中
  • 另一個組件保持
  • 意識到這一點,有信心後續損失陳舊數據的可能性

如果您編寫批處理腳本,.Net應用程序或SSIS,它們都是需要計劃運行

另一種選擇是使用差異複製來複制數據庫,如果您的源數據庫是Oracle或SQL,則可以使用複製將其複製到另一個數據庫中。

你需要考慮幾年後你會在哪裏。數據複製方法可能會使您更靈活地適應源系統中的更改,因爲只需要更改集成,而不是整個應用程序,前提是源系統發生嚴重變化。

您還需要考慮:是否會被要求以其他方式傳播變化,即更新本地副本中的數據並將其推回到源系統。