2010-05-14 100 views
0

小背景:將獨立數據導入數據庫的最佳方法是什麼?

我有一個遠程獨立的SQL Server數據庫,每個週末都會截斷。這些數據幾乎沒有關係,根本沒有規範化,而且非常煩人。最重要的是,該數據庫的模式根本無法修改,因爲它是由第三方應用程序重新創建的。在數據庫每週銷燬之前,會創建該週數據的備份。平均每個數據庫將有500,000到2,000,000條記錄。

我的任務是創建這個數據庫的歷史版本,它是所有這些數據庫備份的超集。它應該與包含相關信息集的其他數據庫綁定。我已經開始了一個應用程序來執行這個任務,並且我已經到了可以將數據與其他數據庫匹配的地步,但是我想知道是否有任何處理這種導入的最佳實踐。

如何確保我在此數據庫的歷史版本中具有唯一ID? SQL Server中有沒有什麼功能可以爲我做一些繁重的工作?

感謝您在此上的時間。

回答

1

SQL Server中肯定有一項功能可以幫助您,並且該功能被稱爲SSIS(SQL Server Integration Services)。對於ETL(提取,轉換,加載)來說,SSIS的主要用途之一就是提取來自多個不同來源的數據,將其轉換爲您需要進入目標數據庫的任何內容(例如數據倉庫 - 與現有的任何鏈接數據也會在這裏發生),並最終將其加載到目標數據庫中。

我認爲最好的入門方式是,如果這就是你想要的,當然是拿起一本關於SSIS的好書並通過它。在閱讀時,不要忘記玩BIDS(商業智能開發工作室 - SQL Server工具之一)來創建一些測試包。 此外,在互聯網上,你會發現很多「入門」文章。

特別是對於我還能做什麼你的情況是:

  • 創建一個通用的軟件包,可以從源數據庫(你每週DB的一個)導入數據,並將其插入到目標數據庫 - 這包可以使用父包配置進行參數化。
  • 創建一個主要程序包,它可以遍歷某個文件夾中的所有備份,逐個還原它們併爲每個還原調用通用導入程序包。每次成功導入後,控制流將刪除以前恢復的數據庫。

我想我已經給了你足夠的材料來調查現在:-)

祝你好運, 華倫天奴。

+0

要添加到Valentino所說的內容,請創建您自己的標識並對錶格進行舞臺佈置,以便您可以在爲每條父記錄添加新標識後更新所有子表格。 – HLGEM 2010-05-14 18:16:46

相關問題