數據倉庫(數據 Warehouse,DW)是一個面向主題的、集成的、穩定的、隨時間變化的數據的集合,它是一個綜合的解決方案,主要用來幫助企業有關主管部門和業務人員做出更符合業務發展規律的決策。數據倉庫的優勢在于分析歷史數據、整合多來源數據,以及保證數據質量的一致性和準確性。
數據倉庫最早的概念可以追溯到20世紀70年代,初衷是為了實現全企業的集成。而最早將數據倉庫提升到理論高度進行分析并提出數據倉庫這個概念的則是學者比爾·恩門(Bill Inmon)。數據倉庫于20世紀90年代開始流行。1994年,拉爾夫·金博爾(Ralph Kimball)提出數據集市概念,允許構建更小、更專注的數據倉庫,以解決企業級數據倉庫實施中的困難。隨著數據集市的增多,企業面臨數據一致性問題,最終比爾·恩門(Bill Inmon)提出的CIF(Corporation Information 工廠)架構將數據集市整合進行統一地企業信息框架中。
數據倉庫基本架構包括了數據源、數據存儲與計算、OLAP服務器和前端工具與應用,分為邏輯結構、客戶端-服務器(C/S)結構及不同的架構模式。其由數據源、數據抽取、數據倉庫管理、數據集市等四個層次組成,同時涵蓋索引和分區等技術。由于它為終端用戶處理所需要的決策信息提供了一種有效方法,因此在銀行、金融服務、消費物品和零售批發部門,以及諸多基于需求的產品的生產部門被廣泛應用。
發展歷程
概念萌芽階段
數據倉庫最早的概念可以追溯到20世紀70年代麻省理工學院的一項研究,該研究致力于開發一種技術框架,MIT的研究員曾提出了一個指導性的意見。他建議將業務系統和分析系統分開,業務處理和分析處理也分成不同的層次,并采用單獨的數據存儲和完全不同的設計準則。
1979年,三庫的概念被初步提出,該理念恰好與MIT的研究成果相吻合,因為二者都描述了一個與決策系統相關的理想框架。但當時數據庫技術應用并不廣泛,理論研究多于系統建設,以至于決策支持系統的開發缺乏可操作、可實施的技術、方法和工具。于是在1986年,DEC作為當時技術最先進的公司,集合人員研究了新的分析系統框架,并結合MIT的研究,創建了TA2(Technical 建筑 2)規范,該規范推動了數據倉庫的發展。后于1988年,IBM愛爾蘭公司的巴里·德夫林(Barry Devlin)和保羅·墨菲(Paul Murphy)提出了“信息倉庫”的概念,雖然IBM僅用于市場宣傳未實際應用,但數據倉庫的基本原理和架構已初步形成,相關技術如關系型數據存取、網絡、客戶端-服務器架構和圖形界面也已基本具備。
確立發展階段
1991年,比爾·恩門(Bill Inmon)發布了關于數據倉庫的開創性著作,闡釋了數據倉庫的必要性、益處,并提供了構建指南。這本書確立了他在該領域的權威地位,并為數據倉庫的基礎理論、架構和分析原則奠定了基石。
1994年,企業級數據倉庫的設計、實施逐漸出現困難,最早實施數據倉庫的公司遭遇大面積的失敗。因此,數據倉庫的建設者和分析師開始考慮只建設企業級數據倉庫的一部分,之后再逐步增加,但是該想法與比爾·恩門(Bill Inmon)相悖。此時,拉爾夫·金博爾(Ralph Kimball)提出了數據集市的概念及詳細指導意見,為傳統的關系型數據模型和多維OLTP之間建立了良好橋梁,解決了當下企業級數據倉庫實施中的困難。自此,數據集市代替數據倉庫開始流行起來。
1996年,就關于“企業級數據倉庫和部門級數據集市”“關系型和多維”兩者問題形成對立的“Inmon”和“Kimball”兩派。最初,數據集市的成功實施占據上風。但是,隨著數據集市的增多,企業面臨數據一致性問題,因此,數據集市被當作了OLTP的其中一個系統。之后數據集市頻頻出錯,這也導致了數據 Warehouse、Data Mart、ODS等一些新的應用出現,由于概念的模糊,數據倉庫被理解為OLTP。一直到2001年,比爾·恩門(Bill Inmon)提出的CIF(Corporation Information 工廠)架構最終將數據集市整合進行統一地企業信息框架中。
快速發展階段
21世紀初,隨著互聯網技術的快速發展,大數據時代逐漸到來。數據倉庫與大數據的融合也成了當下的發展趨勢,例如在傳統的數據源基礎上,引入了來自于傳感器、地理信息、社交網絡等多方面的非關系型數據。通過Hadoop進行數據處理,運用數據虛擬化技術可以將不同的數據源進行整合,再利用壓縮技術來管理更大規模的數據,從而進一步提供數據分析。
同時,OLAP技術、面向文件的hdfs、面向資源管理的yarn等一些傳統的數據倉庫工具逐漸與大數據工具融合,方便了大規模數據的分析及統計,可為決策提供參考和支持,這些工具都顯著提升了數據倉庫在決策支持系統、商業智能等領域的應用。
構成
基本架構
數據倉庫的基本架構包括了數據源、數據存儲與計算、OLAP服務器和前端工具與應用。其中數據源主要是由多個業務系統的數據匯總而來,數據存儲與計算主要負責對數據進行清洗和加工,并構建數據倉庫的基本元數據系統。OLAP服務器主要對多維數據模型的分析需求的數據進行再次重組,支持用戶多種角度和多種層次的分析,前端工具與應用主要有數據倉庫的查詢、分析、報表工具以及基于數據倉庫開發的各種應用。
核心組成
數據倉庫組成主要包括了數據源、數據抽取、數據倉庫管理、數據集市等四層。
數據源
數據倉庫的數據來源于多種數據源,主要來源于大、中型關系數據庫(如Oracle數據庫、SQL Server等)、桌面數據庫(如Access、Visual FoxPro等)、文件及其他(如Excel、Word、圖像文件、圖形文件等)、互聯網上數據(如網頁等數據、E-mail數據)。從地域上講,數據源可以分布于不同地區,從數據結構與數據模式上講,它有不同的構造形式。從數據內涵上講,它又有不同的語義理解,它們構成了數據倉庫的原始信息來源,為數據倉庫加工數據提供了基礎素材。
數據抽取
數據抽取層是數據源與數據倉庫間的數據接口層,它的任務是將散布于網絡結點中不同平臺、不同結構、不同語法(語義)的數據源經這一層的處理后構建一個統一平臺、統一結構、統一語法(語義)的數據統一體——數據倉庫。因此,這一層的功能是極為重要的。它的主要任務是為數據倉庫提供統一的數據并及時更新這些數據。
元數據
元數據是指描述數據源到數據倉庫中數據轉換過程中遵循的規則和規律。這些規則通常定義了數據如何被提取、轉換和加載。元數據通常存儲在元數據管理系統中,并由該系統進行管理。在功能上,元數據相當于數據庫管理系統中的數據字典,為數據的抽取和更新提供了基本依據和指導。
數據倉庫管理
數據倉庫管理層一般由數據倉庫管理系統完成,其管理方法與傳統關系數據庫管理系統類似。因此,一般用傳統數據庫管理系統作適當改變后用作數據倉庫管理,如:可用Oracle數據庫、DB2、SQL Server等作適當改進即作為數據倉庫管理系統,有時也可用專用的系統管理。
數據集市
數據集市是指在實際應用中將數據倉庫按部門或特定任務建立反映子主題的局部性數據組織,而數據倉庫反映主題的全局性數據組織太大。二者的關系相當于傳統數據庫中的視圖與數據庫的關系,數據集市的數據來自數據倉庫,它是數據倉庫中數據的一個部分與局部,往往是直接面向應用的一層。
邏輯結構
數據倉庫的邏輯結構包含后置數據源、中間數據存儲管理和前置數據分析三個部分。
后置數據源:主要指的是操作系統數據存儲器,數據倉庫當中的數據信息來源廣泛,包括企業內部數據和外部數據都是通過相應數據存儲器完成存儲。
中間數據存儲管理:主要是在明確決策主題要求后,進行數據建模,然后將存儲的數據信息經過清理和轉換,放置到數據倉庫當中,并劃分維數,確定數據倉庫物理存儲結構。
前置數據分析:是指數據倉庫當中的數據經過部門數據中心或者多維數據中心,形成有用信息,以供用戶查詢應用,在此過程中,需要使用多維分析工具、數據挖掘工具以及報表和查詢工具等,以此落實自身支持決策功能。
客戶端-服務器(C/S)結構
普遍的C/S結構既能夠簡化整體工作流程,同時也能夠減少系統數據傳輸量,數據倉庫就具有這樣典型的特征,提高整個數據倉庫的效率。其客戶端上主要功能要求包括客戶交互、格式化查詢,以及報表生成等,服務器端的主要功能包括輔助決策查詢,復雜計算以及其他綜合支持功能。
架構模式
星型模式
星型模式是最常見的數據倉庫結構模式,由一個大的、包含大批數據、不含冗余的事實表和一組小的維表構成,個個維度表通過主鍵連接到事實表中,形成類似星星散射的結構,維表圍繞中心表顯示在射線上。
雪花模式
雪花模式是星型模式的一個變體,其結構類似于雪花,更加規范和詳細。在這種模式中,某些維度表被進一步分化為多層次的詳細分類表,減小事實表的規模。
特征
面向主題:數據倉庫是圍繞關鍵業務領域組織的,提供了對分析對象的高層次、一致性描述,涵蓋企業各方面的數據及其相互關系。。
集成性:數據倉庫集成了來自不同數據源的信息,通過抽取、清理、加工、匯總和整理步驟,形成全面而準確的決策支持數據。這種集成是建設數據倉庫中最關鍵且最復雜的一環。
穩定性:數據倉庫存儲的是用于分析的穩定歷史數據,主要操作包括查詢和定期更新。數據一旦載入倉庫,通常會長期保存,很少進行修改或刪除。
時變性:數據倉庫包含長期歷史數據,總是涵蓋時間維度,便于研究趨勢和周期性變化。它允許用戶回顧過去的數據,分析和預測未來趨勢。
關鍵環節
數據抽取
數據抽取是數據進入倉庫的入口。由于數據倉庫是一個獨立的數據環境,它需要通過抽取過程將數據從聯機事務處理系統、外部數據源、脫機的數據存儲介質中導入數據倉庫。數據抽取在技術上主要涉及互聯、復制、增量、轉換、調度和監控等幾個方面的處理。
數據清洗
數據清洗是數據倉庫構建的關鍵步驟,主要是清除錯誤和不一致數據的過程,并且解決記錄重復問題。所以它又叫數據清理、數據擦洗。數據清洗主要應用在數據倉庫、數據挖掘、綜合數據質量管理三個領域。
數據轉換
數據轉換是將數據源中的數據根據轉換規則轉換成數據倉庫中的數據,轉換規則一般包括數據類型轉換、數據表示方法、命名轉換、數據綜合、數據篩選。數據轉換的實施一般要通過相應的軟件工具才能實現。
數據挖掘
數據挖掘(DM)是從超大型數據庫或數據倉庫中發現并提取隱藏在內部的信息的一種新技術。目的是幫助決策者尋找ju間潛在的關聯,發現經營者被忽略的要素,而這些要素對預測趨勢、決策行為也許是十分有用的信息。
設計
數據倉庫系統的設計分為五個步驟,分別是需求分析、概念模型設計、邏輯模型設計、物理模型設計和數據倉庫生成。
需求分析:是數據倉庫設計的基礎,在數據倉庫設計的開始,要詳細了解需求。
概念模型:是從現實世界到計算機世界的一個中間層次,通過概念模型可以適合計算機世界的語言和模型對客觀世界的具體問題進行描述。
邏輯模型設計:目的是對每個裝載主題的邏輯實現進行定義,并在數據倉庫元數據中記錄相關內容。
物理模型設計:主要目的是確定數據的存儲結構、索引策略和存儲策略等與物理有關的內容。
數據倉庫的生成:是構建數據倉庫的重要環節,將從數據源中抽取所需要的數據,經過數據轉換后,最終按照預先定義好的數據倉庫模型將數據加載到數據倉庫中。
相關技術
索引
索引技術的作用在于提高數據倉庫訪問效率,主要有位索引技術、廣義索引、標識技術這三種重要的數據倉庫索引技術。
位索引技術
位索引在數據倉庫存儲結構中是一項非常重要的索引技術。其在存儲數據的方式上與傳統的關系數據庫有所不同,它不是以“行記錄”而是以“列”為單位存儲數據,即對數據進行垂直分割。對于每一個記錄的字段滿足查詢條件的真假值用“1”或“0”的方式表示,或者用該字段中不能取值(即多位二進制)來表示。
廣義索引
在從操作型數據環境抽取數據并向數據倉庫中裝載的同時,可以根據用戶的需要建立各種“廣義索引”。對于一些經常性的查詢,建立“廣義索引”來代替對事實表的查詢速度要快得多。廣義索引一般以元數據方式存放,但其建立的目的和普通索引一樣,都是為了幫助用戶快速完成信息查詢。
標識技術
使用標準的數據庫技術來存儲數據倉庫是非常昂貴的,較好的替代方法是用基于標識的技術來存儲數據倉庫。其有利在于可以大量壓縮數據,可以索引所有的行和列,且數據越多,標識數據比標準的、基于記錄的數據更有利。標識技術就是為數據庫中的每個實體創建一個標識,原來的數據庫就可以被簡化為一系列標識,記錄被標識后,存儲這些記錄的空間將大大縮小。此外,數據量越大,標準的數據庫和標識數據庫的存儲需求差異也就越大,基于標識的數據庫的優勢就越明顯。
分區
數據分區在數據倉庫中非常重要,通常是在應用層進行,它是將數據分解為小的物理單元,使得數據可以在小的分開的離散單元中進行管理。這會讓數據倉庫中的數據裝載變得簡單,建立索引也更順暢,數據歸檔也變得容易。
數據治理和安全措施
數據質量管理
數據倉庫中的數據質量主要依賴于各種源系統的數據質量以及數據抽取、清洗、轉換和轉移過程的質量。主要通過數據收集、數據識別/匹配、數據標準化以及數據清理和數據聚集等過程來實現,從而保證數據具有完整性、一致性、集成性和概括性。
數據訪問控制
訪問控制在對訪問主體身份識別的基礎上,根據身份對提出的資源訪問請求加以控制。如果數據倉庫采用基于關系數據庫的星型模式數據模型實現,其訪問控制可以通過擴展原有的SQL或數據庫管理系統實現,以支持數據倉庫的訪問語義;如果數據倉庫基于超立方體數據模型實現,則需要定義不同于數據庫的、針對超立方體數據模型的訪問控制模型和機制。
常用數據倉庫安全模型
知名產品
應用領域
銀行業務
銀行部門將數據倉庫用于市場研究、個別產品的績效評估、匯率和匯率研究以及制定營銷計劃。通過對持卡人交易、消費習慣和商戶分類的分析,提供利潤豐厚的討價還價和特別優惠。銀行家可以通過數據倉庫解決方案有效地處理可用資源。幫助他們做出更好的決策,可以更好地檢查消費者數據、政府要求和市場趨勢。甚至有的銀行還利用數據倉庫來有效管理其可支配的資源。
政府
政府公共部門能將數據倉庫用于與會計相關的服務,例如:工資管理、人力資源、招聘等。除了將完整的刑法數據庫連接到下級的數據倉庫之外,政府還可以使用數據倉庫來維護和分析稅務記錄和健康保險信息。這可以幫助根據模式和趨勢預測犯罪活動、查找恐怖分子檔案、評估威脅并檢測欺詐。對前罪犯的歷史信息進行數據分析得出的模式和趨勢可用于預測犯罪活動。
制造業生產及流通
制造和分銷供應商可以利用數據倉庫將所有數據整合到一起。這有助于預測市場變化、檢查當前模式、識別潛在增長領域,并最終做出產生積極影響的決策。?
零售數據管理
零售商使用數據倉庫是用于組織數據存儲。這可以密切關注產品、廣告活動和消費者購買模式。此外,還可以使用預測消除過程通過分析銷售來識別快銷和慢銷產品線來計算每個產品線的貨架空間。
保險承保
數據倉庫對于保險業來說是重要的,它可以保存當前客戶的記錄并對其進行分析以發現模式。除了跟蹤記錄之外,還主要用于評估數據模式和未來客戶趨勢。可以為每個客戶量身定制保險促銷和優惠。最后,它最突出的用途是評估承保過程中的客戶風險并設定最佳保險費。?
其他架構對比
數據湖屋是一種現代數據架構,將數據倉庫和數據湖的功能集成在統一平臺中。可以像數據湖一樣以原始格式存儲原始數據,同時還提供像數據倉庫一樣的數據處理和分析功能。它們之間的主要區別在于它們管理和存儲數據的方法。數據倉庫以預定義模式存儲結構化數據,數據湖以其原始格式存儲原始數據,而數據湖屋是結合了兩者功能的混合方法。
以上資料來源于:
系統對比
數據庫與數據倉庫
數據庫是一種邏輯概念,是用來存放數據的倉庫,通過數據庫軟件來實現,其存放的是當前值,數據是動態變化的,且訪問量最少但訪問頻率高。數據庫中的數據結構比較復雜,有各種結構以滿足業務處理系統的需要,主要面向業務處理人員,為業務處理人員提供信息處理的支持。
數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理決策和信息的全局共享,其存放靜態的歷史數據,只是定期添加、更新數據,訪問頻率低但訪問量卻很高。數據倉庫中的數據結構相對簡單,面向高層管理人員,為其提供決策支持。它更像一個過程,這個過程涉及數據的收集、整理和加工,它生成決策所需要的信息,并且最終把這些信息提供給使用者,供他們做出正確決策。數據倉庫的重點是能夠準確、安全、可靠地從業務系統中取出數據,經過加工轉換成有規律的信息之后,供管理人員進行分析使用。
大數據的數據倉庫與傳統數據倉庫
傳統數據倉庫通常是指基于關系型數據庫的數據倉庫,但不限于SQL Server或MySQL,可以是基于任何關系型數據庫管理系統(RDBMS)的。而大數據時代,基于Hadoop生態組件的架構,數據倉庫基本上都是基于hive的數據倉庫,其中,離線數據倉庫和實時數據倉庫就是在大數據下產生的,前者通常是指基于批量處理的數據倉庫,而不是特指基于Hadoop生態組件的大數據技術,架構方案中以hive為主。后者與前者方案相似,不同之處在于數據是實時的。
參考資料 >
什么是數據倉庫?.aws.amazon.2024-04-29
The Warehouse Layer: A short history of data warehousing (Part 6).alexpetralia.2024-05-06
History of Data Warehouse.services-technologies.2024-05-06
Oracle Exadata.Oracle Exadata.2024-05-26
Amazon Redshift.Amazon Redshift.2024-05-27
Teradata.Teradata.2024-05-27
Snowflake.Snowflake.2024-05-27
Microsoft SQL Server.Microsoft SQL Server.2024-05-27
What Is a Data Warehouse? Definition, Architecture, Tools, and Applications.spiceworks.2024-05-02
What is a data warehouse?.databricks.2024-05-02