數據倉庫的 SQL Server 2005 複製
我們正在嘗試在我現在的雇主處實施某種數據倉庫。
我們的大部分數據都在 SQL Server 2005 中,但我們也可能在 SQL Server 2008 執行時版本中集成一些 Access 數據庫和一些數據庫(這可能很重要,因為它缺少功能)。我們希望數據大約每小時複製一次。我想知道是否有人已經為此制定了解決方案。
我們的使用者希望使用 ODBC 從 Excel 或其他應用程序對倉庫進行查詢。
此外,我們的數據量約為 150 GB。
你有引號中的“數據倉庫”,這可能意味著兩件事之一:你要麼正在尋找一個實際的數據倉庫,要麼你不是(耶,老生常談!)。
如果您正在尋找一個實際的數據倉庫,作為您已購買的 SQL Server 許可的一部分,您可以使用整個 Microsoft BI 堆棧:用於 ETL 的 SQL Server 集成服務、用於創建多維數據集的 SQL Server 分析服務和 SQL Server 報告用於分析數據的服務和 PowerPivot。即使對於在設計和開發事務數據庫方面有豐富經驗的人來說,正確地做一個數據倉庫**也不是一件容易的事。**最大的問題不是學習工具和語言(儘管 MDX 與 T-SQL 如此不同,以至於它在自己的世界中),而是獲得正確的心態。如果您確實走這條路,請從 Ralph Kimball 的數據倉庫工具包開始. 這是一本相當長的書,並不是為任何特定的技術堆棧而編寫的,而是試圖讓您了解成功的數據倉庫項目的原因。即使您已經知道這些工具,正確地做這件事也可能需要數年時間,因為關於數據倉庫的最重要的事情就是了解最終使用者。您確實必須知道最終使用者(業務人員)想要什麼,他們想要什麼,他們如何理解他們所看到的,以及您擁有的數據和系統如何在一個單一的文件中轉化為他們想要的,一致的方式。
老實說,如果您嘗試“以便宜的方式”做某事,那麼失敗的可能性就更高。這就是為什麼我有點擔心您為什麼將“數據倉庫”放在引號中。是的,您可以提出一些易於開發的非倉庫模型(例如可能將所有表複製到另一台伺服器),但它們通常會屬於少數幾個中的一個(或多個)類別:
- 對於最終使用者來說太複雜了。最終使用者通常不理解規範化數據,也不應該期望知道 SQL 或 GROUP BY 子句的詳細資訊。在這種情況下,最好的結果是 IT 人員繼續針對這個新系統編寫報告;更有可能的結果是 IT 人員繼續針對舊系統編寫報告,而每個人都忘記了倉庫的存在……
- 不一致的數據。當您瀏覽此內容時,您可能會發現系統 1 說訂單 37 包括一打墨水筆的訂單,但係統 2 說它是 14 支鋼筆。系統 3 有一個自由格式的文本欄位,而不是輸入數字,有人輸入“狗”。如果它們都應該代表同一個東西,那是正確的嗎?發現(並與業務部門合作創建規則來解決)這些數據不一致是建構良好倉庫模型的關鍵部分。
- 糧食不一致。如果一個系統有訂單行,而第二個系統只有訂單,有一些方法可以協調這一點,但如果您只是將表格扔到那裡並留給最終使用者,他們可能會想出錯誤的協調方法(即,一個給出不正確的結果)而不自知。
這些是您在商業智能領域會遇到的眾多問題之一。良好的數據倉庫(無論是 Kimball 風格、Inmon 風格、混合型還是其他)並不能避免這些問題,而是為您提供一種可以理解和解決它們的思維方式。推出一個便宜又簡單的解決方案可能會讓你掩蓋開發中的問題,但我們不會僅僅通過退出開發來衡量成功;人們必須將其用於任何類型的倉庫才能有價值。
只要您擁有完成這項工作所需的硬體,每小時更新對於一個好的倉庫來說並不一定是個大問題。您可以創建 SSIS 包以在 SQL 代理作業(或通過任何其他類型的調度程序,老實說)上執行,這些作業執行必要的任務(從源系統中提取數據、執行任何轉換、執行任何必要的暫存以及建構 Analysis Services 多維數據集),因此,如果各個程序足夠快,調度就不是問題。
您將需要一種方法來區分不同的來源,但如果您這樣做了,您總是可以使用帶有過濾器的複制。這樣,您可以合併來自不同 SQL 源的所有數據,而不會相互影響。我實際上設置了這樣的東西,但它從來沒有通過測試階段,即使這樣也只有 10 個不同的數據庫,但它工作。
我使用的另一種方法是在 SSIS 包中使用 Merge。合併語句僅適用於 SQL 2008,但數據流轉換中合併的最大優勢是您可以使用不同的源。這將是您使用 Access 數據庫的唯一方法
$$ just typing that leaves a bad taste in my mouth! $$ 我們使用的第三種方法是將舊式複雜儲存過程附加到從多個來源提取的作業上。它的混亂,但它的工作原理。
我個人最喜歡的是複制方法。它相當容易,執行在其上,不易出現故障。我在我們的伺服器上設置了數百個不同的合併和事務複製作業,但我還沒有遇到真正的問題。
我確實理解引號中的“數據倉庫”,這就是我們目前工作的地方,我很想搬到一個真正的倉庫,但我們將不得不等到更大的項目完成。建構 OLAP 系統需要時間和教育,不僅對 IT 員工而且對所有“C”級管理人員都是如此。