聊聊數據倉庫建設步驟
預計到2025年,全球數據量將增長至180ZB,企業必須處理兩個主要問題——在哪里存儲數據以及如何使用數據。數據倉庫自20世紀80年代以來就已經存在,并且其功能不斷擴展,可以幫助應對這兩個挑戰。然而,根據獨立市場研究公司VansonBourne的研究,無論技術成熟度如何,而且數據倉庫通常由專家開發,失敗項目的比例仍然高居不下。

在本文中,我們將通過概述數據倉庫設計和數據倉庫開發步驟的兩種基本方法來深入探討數據倉庫實現的細節。
什么是數據倉庫以及為什么要構建數據倉庫?
數據倉庫是一個系統,它以適合分析查詢和報告的形式整合和存儲來自不同來源的企業信息,以支持商業智能和數據分析計劃。這種存儲庫的成功實施能夠帶來多種好處,包括:
- 以業務發展速度做出的基于事實的決策,因為最終用戶可以輕松訪問和使用公司的歷史信息以及從不同異構系統收集的當前信息。
- 基于高質量信息的決策,因為數據在進入數據倉庫之前會經過全面的清洗和轉換過程。除此之外,許多數據管理活動變得自動化,這有助于消除容易出錯的手動數據聚合。
- 當數據倉庫與自助式BI解決方案(例如PowerBI或Tableau)集成時,數據文化自然會在整個公司中采用。
- 由于統一的數據治理方法,除了其他方面意味著數據安全策略的可靠定義和管理之外,數據泄露和泄漏的風險也被最小化。
數據倉庫架構的3個核心組件
當創建未來數據倉庫的架構時,必須考慮多種因素,例如有多少數據源將連接到數據倉庫、每個數據源中的信息量及其性質和復雜性、分析目標、現有技術環境等。然而,說每個架構都是獨一無二的是錯誤的,因為實際上每個架構都具有以下三個組件:
- 源系統——捕獲交易的操作數據庫、物聯網設備流傳感器數據、SaaS應用程序、外部數據源等。
- 數據暫存區域–臨時托管復制數據的區域和一組流程,可幫助加載到數據倉庫之前根據業務定義的規則清理和轉換數據。有了暫存區,就可以擁有原始數據的歷史記錄,以防ETL作業失敗。通常,一旦ETL作業成功完成,暫存區中的信息就會被刪除。但是,仍可以出于遺留原因將其保存一段時間或存檔。如果所有數據轉換都發生在數據倉庫數據庫本身中,則可以省略該區域。
- 數據存儲–為特定部門或業務線創建的公司范圍信息和數據集市的數據倉庫數據庫。
除了這些內容之外,企業數據倉庫解決方案還包含數據治理和元數據管理組件。擴展數據倉庫環境還可以包括OLAP立方體(存儲聚合數據以實現交互式查詢的多維數據結構)和數據訪問層(供最終用戶訪問和操作所存儲信息的工具和應用程序)。然而,這些內容是更大的生態系統(BI架構)的一部分,因此我們不會在這里探討它們。
使用Itransition構建高性能數據倉庫
構建數據倉庫的方法
用于構建數據倉庫的兩種基本設計方法是Inmon(自上而下)和Kimball(自下而上)方法。
Inmon的方法
在Inmon的方法中,首先,根據規范化數據模型設計企業信息的集中存儲庫,其中原子數據存儲在表中,這些表借助聯接按主題領域分組在一起。企業數據倉庫建成后,存儲的數據用于構建數據集市。
當需要執行以下操作時,Inmon的方法更為可?。?/p>
- 獲取單一事實來源,同時確保數據一致性、準確性和可靠性
- 快速開發數據集市,無需重復從原始來源提取數據、清理等。
然而,該方法的主要限制之一是,與Kimball的方法相比,設置和實施需要更多的時間和資源。
圖片
Kimball的方法
Kimball的方法建議首先創建維度數據集市,然后如果需要,公司可以繼續創建邏輯企業數據倉庫。
這種方法的倡導者指出,由于維度數據集市需要最少的規范化,因此此類數據倉庫項目需要更少的時間和資源。另一方面,可能會在表中發現重復數據,并且必須重復ETL活動,因為每個數據集市都是獨立創建的。
圖片
盡管這兩種方法可能看起來相當不同,但它們可以很好地互補,結合兩種設計方法原理的替代方法的出現證明了這一點。
構建數據倉庫的分步指南
通常的做法是通過全面的準備情況評估來啟動數據倉庫計劃。在評估數據倉庫項目的準備情況時,請考慮以下因素:
- 擁有強大的業務支持者——有影響力的管理者,他們可以預見該計劃的潛力并幫助推廣它。
- 業務動機——數據倉庫是否可以幫助解決一些關鍵業務問題。
- 目前整個公司的數據成熟度——換句話說,最終用戶是否意識到數據驅動決策、高數據質量等的重要性。
- IT專家和業務用戶協作的能力。
- 現有技術和數據環境的可行性。
在評估了項目的準備情況并希望對其感到滿意之后,需要開發一個用于項目規劃和管理的框架,然后最終繼續進行數據倉庫開發,這從業務需求的定義開始。
1.業務需求定義
業務需求幾乎影響整個數據倉庫開發過程中的每一個決策——從應該提供哪些信息到應該多久訪問一次信息。因此,可以從調研業務用戶開始定義:
- 公司的總體目標以及特定業務部門、部門等的目標。
- 用于衡量成功的方法和指標
- 企業面臨的關鍵問題
- 公司當前執行的常規數據分析的類型,包括用于分析的數據、分析進行的頻率、帶來的潛在改進等)。
在采訪業務用戶時,還應該與關鍵IT專家(數據庫管理員、運營源系統專家等)進行有效的溝通,以確定當前可用的信息是否足以滿足以下業務需求:
- 關鍵操作系統
- 數據更新頻率
- 歷史數據的可用性
- 設置哪些流程來確保向業務用戶交付信息
- 使用哪些工具來訪問和分析信息
- 通常會生成哪些類型的見解
- 臨時的信息請求是否得到妥善處理等。
2.數據倉庫概念化和技術選擇
上一步的結果將用作定義未來解決方案范圍的基礎,因此應仔細分析業務和IT用戶的需求和期望并確定優先級,以制定最佳的數據倉庫功能集。
之后,必須確定構建數據倉庫解決方案的架構方法,評估并為每個架構組件(暫存區域、存儲區域等)選擇最佳技術。在制定技術堆棧時,請考慮以下因素:
- 當前的技術環境
- 規劃的戰略技術方向
- 內部IT團隊成員的技術能力
- 具體數據安全要求等
此時,還應該定義部署選項-本地、云或混合。部署選項的選擇取決于多種因素,例如數據量、數據性質、成本、安全要求、用戶數量及其位置以及系統可用性等。
3.數據倉庫環境設計
在設計數據倉庫之前和期間,需要定義數據源并分析存儲在其中的信息-可用的數據類型和結構,每天、每月生成的信息量等,以及其質量、敏感性、刷新率頻率。
下一步是邏輯數據建模,或者將公司的數據排列成一系列稱為實體(現實世界對象)和屬性(定義這些對象的特征)的邏輯關系。實體關系建模用于各種建模技術,包括規范化模式(關系數據庫的設計方法)和星型模式(用于維度建模)。
圖片
圖片
接下來,將這些邏輯數據模型轉換為數據庫結構,例如將實體轉換為表、將屬性轉換為列、將關系轉換為外鍵約束等。
圖片
數據建模完成后,第一步是設計數據暫存區,以便首先為數據倉庫提供高質量的聚合數據,并在后續所有數據加載過程中定義和控制源到目標的數據流。
設計步驟還包括創建數據訪問和使用策略、建立元數據目錄、業務術語表等。
4.數據倉庫開發與上線
該步驟從定制和配置所選技術(DW平臺、數據轉換技術、數據安全軟件等)開始。然后,該公司開發ETL管道并引入數據安全性。
引入所有主要組件后,它們必須與現有的數據基礎設施(數據源、BI和分析軟件、數據湖等)以及彼此集成,以便之后可以遷移數據。
在最終匯總之前,必須確保最終用戶能夠處理新技術環境,這意味著他們所有人都了解可用的信息、其含義、如何訪問這些信息以及使用哪些工具。針對標準用戶和高級用戶的定制培訓以及支持文檔將對此有所幫助。除此之外,還需要:
- 測試數據倉庫性能、ETL等。
- 驗證數據質量(數據易讀性、完整性、安全性等)
- 確保用戶有權訪問數據倉庫等。
5.上線后支持與維護
初始部署后,需要關注業務用戶并提供持續的支持和培訓。隨著時間的推移,必須測量數據倉庫性能指標和用戶滿意度評分,因為它將幫助您確保數據倉庫的長期健康和增長。
需要可靠的技術合作伙伴來實現您的數據倉庫項目嗎?
數據倉庫項目的關鍵角色
專案經理
- 定義數據倉庫項目及其可交付成果的范圍。
- 概述項目計劃,包括預算估算、項目資源和時間表。
- 管理日常數據倉庫項目任務和活動(資源協調、項目狀態跟蹤、項目進度和溝通瓶頸等)
業務分析師
- 確定業務用戶的需求并確保將其清楚地傳達給技術團隊。
- 進行采訪并記錄下來。
- 協助數據建模師和DBA進行數據建模、數據映射活動等。
數據建模師
- 執行詳細的數據分析。
- 設計數據倉庫的整體技術架構以及具體的每個組件(數據暫存、數據存儲、數據模型等)。
- 監督架構開發和實施。
- 就技術堆棧提供建議。
- 記錄整個解決方案及其組成部分的范圍。
數據倉庫數據庫管理員(DBA)
- 將邏輯模型轉換為物理表結構。
- 確保數據庫的操作支持,調整數據庫性能以確保數據的可用性和完整性。
- 規劃數據備份/恢復計劃等。
ETL開發人員
- 規劃、開發和設置提取、轉化和裝載管道。
質量保證工程師
- 制定測試策略以確保數據倉庫的正常運行和數據準確性。
- 識別潛在錯誤并確保其解決。
- 對開發的DW解決方案進行測試。
除了這些關鍵角色之外,其他專業人員也可能參與該項目,例如解決方案架構師、技術支持專家、DevOps工程師、數據管理員、數據倉庫培訓師等。值得注意的是,有時個別工作人員可以扮演多種角色。
需要考慮的3種領先數據倉庫技術
使用不適當的技術是數據倉庫項目失敗的原因之一。除了需要正確識別應用場景之外,還需要從市場上眾多看似相似的選項中選擇最佳的軟件。在這里,我們回顧了具有很高客戶滿意度、在各種市場研究報告中獲得高度評價并遵循數據倉庫現代化原則的數據倉庫服務和平臺。但所描述的功能并不詳盡:在制定其描述時,我們主要關注其數據集成功能、與分析和商業智能服務的內置連接、可靠性和數據安全性。
AmazonS3
- 提供聯合查詢功能以及與AmazonS3的內置云數據集成,以跨操作數據庫和數據湖查詢和分析任何類型、格式和大小的數據。
- 允許使用AWSDataPipeline、AWSDataMigrationServices、AWSGlue和AWSKinesisFirehose在AWS服務內部和外部以流和批次方式提取和轉換數據。
- 提供與AWS分析服務(AWSLakeFormation、AmazonEMR、AmazonQuickSight、AmazonSageMaker等)的本機集成。
- 提供內置的容錯和災難恢復功能(自動集群快照、快照復制、持續集群監控和替換等)。
- 通過表的精細權限、多因素用戶身份驗證、數據加密等保護數據。
- 滿足SOC1、SOC2、SOC3、PCIDSSLevel1、HIPAA、ISO27001等合規性要求。
- 允許分離存儲和計算資源。
谷歌BigQuery
- 通過CloudFusion提供與150多個數據源的本機數據集成
- 提供多云分析支持(由GoogleBigQuery(Omni)提供),可跨AWS和Azure(即將推出)查詢數據,而無需復制數據。
- 與Looker和整個GoogleCloudAnalytics生態系統的本機集成。
- 對冷數據和熱數據以及存儲和計算資源分別收費。
- 默認情況下,在多個位置免費提供復制存儲。
- 提供對數據集、表、視圖、多因素用戶身份驗證、數據加密(默認)等的精細權限。
- 滿足HIPAA、ISO27001、PCIDSS、SOC1、SOC2等合規性要求。
Azure
- 通過Azure數據工廠擁有95多個用于本地和云數據源的本機連接器。
- 通過AzureSynapseLink提供對本機HTAP的支持。
- 使用內置的ApacheSpark和Azure流分析事件處理引擎支持大數據和流數據的引入和處理。
- 與PowerBI、Azure機器學習、Azure認知服務、AzureDataLakeStorage等的本機集成。
- 允許單獨擴展存儲和計算。
- 提供內置的容錯和災難恢復功能(自動快照、異地備份等)。
- 默認數據安全功能(模式、表、視圖、單個列、過程等的細化權限、多因素用戶身份驗證、數據加密等)。
- 滿足HIPAA、ISO27001、PCIDSS、SOC1、SOC2等合規性要求。
確保數據倉庫項目成功的技巧
進行敏捷數據倉庫開發
數據倉庫開發項目非常消耗時間和資源,因此選擇敏捷方法(這意味著通過增量投資將項目分解為迭代)盡早開始獲得投資回報,并最大限度地降低風險并避免大量的前期投資。
確保IT與業務之間的緊密合作
數據倉庫的成功是IT和業務專家的共同努力,他們共同負責從收集業務需求到數據倉庫部署和發布后支持的計劃。
關注最終用戶
為最終用戶提供可靠的支持文檔、培訓和自助數據訪問工具,確保數據倉庫的高采用水平。
考慮專家建議
構建數據倉庫通常需要將工作負載遷移到云,這并不容易,因為它需要特定的技能和專業知識。因此,當開始開發項目時,不要忽視向云遷移專家尋求建議。
小結
精心構建的現代數據倉庫可以幫助組織實現當前的許多數據管理和分析目標,包括打破數據孤島、實時分析、交互式報告和受保護的企業數據。























