數(shù)據(jù)倉庫
考點導讀:這個考點近幾年都有考到。內(nèi)容主要包括數(shù)據(jù)倉庫的概念、功能、特點、與數(shù)據(jù)庫的區(qū)別、架構與ETL操作等,屬于能力拓展的知識內(nèi)容,出題的可能性極大,注意理解掌握。
數(shù)據(jù)倉庫的定義
數(shù)據(jù)倉庫(Data Warehouse),是為了企業(yè)所有級別的決策制定計劃過程,提供所有類型數(shù)據(jù)類型的戰(zhàn)略集合。它出于分析性報告和決策支持的目的而創(chuàng)建。為需要業(yè)務智能的企業(yè),指導業(yè)務流程改進,時間、成本、質量的控制等。
對于數(shù)據(jù)倉庫的概念我們能夠從兩個層次予以理:
(1)數(shù)據(jù)倉庫用于支持決策,面向分析型數(shù)據(jù)處理,它不同于企業(yè)現(xiàn)有的操作型數(shù)據(jù)庫;
(2)數(shù)據(jù)倉庫是對多個異構數(shù)據(jù)源的有效集成,集成后依照主題進行了重組,并包括歷史數(shù)據(jù),并且存放在數(shù)據(jù)倉庫中的數(shù)據(jù)一般不再改動。
數(shù)據(jù)倉庫的作用
把信息加以整理、歸納和重組,并及時提供給對應的管理決策人員是數(shù)據(jù)倉庫的根本任務。
舉例:(1)年度銷售目標的制定,需要根據(jù)以往的歷史報表進行決策,不能隨便制定。
(2)優(yōu)化業(yè)務流程
例如:某電商平臺某品牌的手機,在過去5年主要的購買人群的年齡在什么年齡段,在哪個季節(jié)購買量人多,這樣就可以根據(jù)這個特點為目標人群設定他們主要的需求和動態(tài)分配產(chǎn)生的生產(chǎn)量,和倉庫的庫存。
數(shù)據(jù)倉庫的特點(????)
-
主題導向:數(shù)據(jù)倉庫中的數(shù)據(jù)是按照業(yè)務主題(如銷售、庫存等)進行組織的,這有助于用戶更容易地從業(yè)務角度理解和查詢數(shù)據(jù)。
-
集成性:數(shù)據(jù)倉庫整合了來自多個數(shù)據(jù)源的數(shù)據(jù),例如不同部門、系統(tǒng)或業(yè)務流程的數(shù)據(jù)。為了保持數(shù)據(jù)的一致性,數(shù)據(jù)倉庫在存儲之前會進行清洗和轉換。
-
時間變化:數(shù)據(jù)倉庫會記錄數(shù)據(jù)隨時間的變化,這使得用戶可以分析歷史趨勢和進行時間序列分析。數(shù)據(jù)倉庫通常會保存一定時間范圍內(nèi)的數(shù)據(jù),如過去幾年的數(shù)據(jù)。
-
非易失性:數(shù)據(jù)倉庫中的數(shù)據(jù)一旦存儲,就不會輕易地被修改或刪除。這有助于確保數(shù)據(jù)的穩(wěn)定性和一致性,以支持長期的數(shù)據(jù)分析和報告。
-
大規(guī)模數(shù)據(jù):數(shù)據(jù)倉庫通常存儲大量數(shù)據(jù),這些數(shù)據(jù)可能來自于多個業(yè)務系統(tǒng)或數(shù)據(jù)源,使得數(shù)據(jù)倉庫具有很高的存儲和處理能力。
-
高性能查詢:數(shù)據(jù)倉庫通過優(yōu)化存儲結構(如星型模式、雪花模式等)和查詢策略(如索引、分區(qū)等),提高了對大量數(shù)據(jù)進行復雜查詢和報表生成的性能。
數(shù)據(jù)倉庫的特點使其成為一個適合存儲、管理和分析海量數(shù)據(jù)的系統(tǒng),滿足了企業(yè)對數(shù)據(jù)的長期、穩(wěn)定和高效的需求。
數(shù)據(jù)倉庫的主要功能(????)
數(shù)據(jù)集成:數(shù)據(jù)倉庫的一個主要功能是集成來自各種不同源的數(shù)據(jù)。這需要運用到數(shù)據(jù)集成技術,如ETL(Extract, Transform, Load)過程,用于提取、清洗、轉換和加載數(shù)據(jù)。
數(shù)據(jù)存儲:數(shù)據(jù)倉庫提供大規(guī)模的數(shù)據(jù)存儲能力。這需要運用到數(shù)據(jù)庫管理系統(tǒng)(DBMS)和存儲技術,如OLAP(On-Line Analytical Processing),用于處理復雜的多維數(shù)據(jù)查詢。
數(shù)據(jù)查詢和分析:數(shù)據(jù)倉庫支持用戶對數(shù)據(jù)進行查詢和分析,以幫助用戶從數(shù)據(jù)中提取有價值的信息。這需要運用到數(shù)據(jù)查詢語言(如SQL)和數(shù)據(jù)分析工具,如BI(Business Intelligence)工具。
數(shù)據(jù)挖掘:數(shù)據(jù)倉庫還可以運用數(shù)據(jù)挖掘技術,通過算法模型對數(shù)據(jù)進行深入分析,以發(fā)現(xiàn)數(shù)據(jù)中的模式和關聯(lián)。
數(shù)據(jù)安全和管理:數(shù)據(jù)倉庫需要保證數(shù)據(jù)的安全性和質量,這需要運用到數(shù)據(jù)安全技術(如訪問控制、數(shù)據(jù)加密等)和數(shù)據(jù)管理技術(如數(shù)據(jù)治理、數(shù)據(jù)質量管理等)。
數(shù)據(jù)可視化:數(shù)據(jù)倉庫通過數(shù)據(jù)可視化技術,將復雜的數(shù)據(jù)信息以圖形化的方式展示出來,幫助用戶更好地理解和解釋數(shù)據(jù)。
OLTP:聯(lián)機事務處理(?????)
聯(lián)機事務處理(Online Transaction Processing,簡稱OLTP, 也稱為面向交易的處理系統(tǒng)
)是一種計算機處理模式,主要用于管理日常事務。以下是OLTP的一些關鍵特性和功能:
-
高并發(fā)性:OLTP系統(tǒng)需要支持大量用戶同時進行事務處理,例如,一個銀行系統(tǒng)需要同時處理來自成千上萬個客戶的交易請求。
-
實時性:OLTP系統(tǒng)中的數(shù)據(jù)需要實時更新,以便用戶能夠看到最新的信息。例如,當客戶進行銀行轉賬時,他們的余額應立即更新。
-
原子性:在OLTP系統(tǒng)中,一個事務(例如,銀行轉賬)要么完全執(zhí)行,要么完全不執(zhí)行。這確保了數(shù)據(jù)的一致性。
-
可靠性和恢復能力:如果系統(tǒng)發(fā)生故障,OLTP系統(tǒng)需要能夠恢復到故障發(fā)生前的狀態(tài),保證數(shù)據(jù)的完整性。
-
短交易處理時間:OLTP系統(tǒng)通常需要快速處理事務,以滿足用戶的需求。例如,一個ATM取款事務需要在幾秒鐘內(nèi)完成。
在計算機系統(tǒng)中,關系數(shù)據(jù)庫(如Oracle,SQL Server等)通常被用于實現(xiàn)OLTP,這是因為它們提供了事務處理、并發(fā)控制和恢復等必要的功能。而在業(yè)務應用中,零售銷售、銀行交易、航空訂票等都是典型的OLTP應用。
OLAP:聯(lián)機分析處理(?????)
聯(lián)機分析處理(Online Analytical Processing,簡稱OLAP, )是一種計算機處理模式,主要用于分析大量業(yè)務數(shù)據(jù),以提供決策支持。以下是OLAP的一些關鍵特性和功能:
-
多維數(shù)據(jù)模型:OLAP通常使用多維數(shù)據(jù)模型,如立方體,以便用戶能夠從多個角度(如時間、地點、產(chǎn)品等)來查看和分析數(shù)據(jù)。
-
復雜的查詢處理:OLAP支持復雜的數(shù)據(jù)查詢,如匯總、鉆取、切片和切塊等操作,這有助于用戶深入地分析數(shù)據(jù)。
-
大數(shù)據(jù)量處理:OLAP設計用于處理大量數(shù)據(jù)。例如,一個零售商可能需要分析數(shù)百萬條銷售記錄來了解銷售趨勢。
-
高性能:由于OLAP需要處理大量數(shù)據(jù),因此它通常需要優(yōu)化數(shù)據(jù)存儲和查詢處理技術,以提高查詢性能。
-
數(shù)據(jù)挖掘:OLAP還可以與數(shù)據(jù)挖掘技術結合,使用算法模型對數(shù)據(jù)進行深入分析,以發(fā)現(xiàn)數(shù)據(jù)中的模式和關聯(lián)。
在計算機系統(tǒng)中,OLAP通常使用專門的數(shù)據(jù)庫管理系統(tǒng)(如OLAP服務器)來實現(xiàn),這是因為它們提供了多維數(shù)據(jù)模型,以及優(yōu)化的數(shù)據(jù)存儲和查詢處理技術。而在業(yè)務應用中,銷售分析、財務報告、市場研究等都是典型的OLAP應用。
OLAP的基本多維分析操作(?????)
OLAP的多維分析操作主要包括以下幾種:
-
鉆?。―rill-Down):鉆取是從一個較高層次(或較粗粒度)的數(shù)據(jù)向一個較低層次(或較細粒度)的數(shù)據(jù)進行詳細查詢的過程。例如,從年度銷售額鉆取到季度銷售額,再鉆取到月度銷售額。
-
上卷(Roll-Up):上卷是鉆取的反向操作,即從一個較低層次(或較細粒度)的數(shù)據(jù)向一個較高層次(或較粗粒度)的數(shù)據(jù)進行匯總查詢的過程。例如,從月度銷售額上卷到季度銷售額,再上卷到年度銷售額。
-
切片(Slice):切片是在一個多維數(shù)據(jù)集上選擇一個維度并固定其值,從而得到一個減少了一個維度的子集。例如,從一個產(chǎn)品-地區(qū)-時間的銷售數(shù)據(jù)立方體中選擇時間維度并固定其值為2019年,得到一個產(chǎn)品-地區(qū)的銷售數(shù)據(jù)子集。
-
切塊(Dice):切塊是在一個多維數(shù)據(jù)集上選擇多個維度并固定其值,從而得到一個減少了多個維度的子集。例如,從一個產(chǎn)品-地區(qū)-時間的銷售數(shù)據(jù)立方體中選擇產(chǎn)品維度并固定其值為手機,選擇地區(qū)維度并固定其值為北京,得到一個時間的銷售數(shù)據(jù)子集。
-
旋轉(Pivot):旋轉是改變數(shù)據(jù)立方體的視圖,即改變維度的排列順序。例如,將一個產(chǎn)品-地區(qū)-時間的銷售數(shù)據(jù)立方體旋轉為地區(qū)-產(chǎn)品-時間的視圖。
這些操作可以幫助用戶從不同的角度和層次來查看和分析數(shù)據(jù),從而更好地理解業(yè)務情況和發(fā)現(xiàn)業(yè)務趨勢。
數(shù)據(jù)倉庫與數(shù)據(jù)庫的區(qū)別(???)
數(shù)據(jù)庫:是一種邏輯概念,用來存放數(shù)據(jù)的倉庫。通過數(shù)據(jù)庫軟件來實現(xiàn)。數(shù)據(jù)庫由很多表組成,表是二維的,一張表里可以有很多字段。字段一字排開,對應的數(shù)據(jù)就一行一行寫入表中。數(shù)據(jù)庫的表,在于能夠用二維表現(xiàn)多維關系。目前市面上流行的數(shù)據(jù)庫都是二維數(shù)據(jù)庫。比如,Oracle、DB2、MySQL、Sybase、MS SQL Server
等。
數(shù)據(jù)倉庫:是數(shù)據(jù)庫概念的升級。從邏輯上理解,數(shù)據(jù)庫和數(shù)據(jù)倉庫沒有區(qū)別,都是通過數(shù)據(jù)庫軟件實現(xiàn)的存放數(shù)據(jù)的地方,只不過從數(shù)據(jù)量來說,數(shù)據(jù)倉庫要比數(shù)據(jù)庫更龐大得多。數(shù)據(jù)倉庫主要用于數(shù)據(jù)挖掘和數(shù)據(jù)分析,輔助領導做決策。數(shù)據(jù)倉庫的表結構是依照分析需求,分析維度,分析指標進行設計的。
數(shù)據(jù)庫比較流行的有:MySQL, Oracle, SqlServer
等;數(shù)據(jù)倉庫比較流行的有:AWS Redshift, Greenplum, Hive
等。
數(shù)據(jù)庫與數(shù)據(jù)倉庫的區(qū)別實際講的是OLTP
與OLAP
的區(qū)別。
-
目的:數(shù)據(jù)庫主要用于存儲和管理日常業(yè)務數(shù)據(jù),支持實時的、面向事務的數(shù)據(jù)處理(如OLTP)。而數(shù)據(jù)倉庫是用于存儲大量歷史數(shù)據(jù),支持復雜的數(shù)據(jù)分析和決策支持(如OLAP)。
-
數(shù)據(jù)結構:數(shù)據(jù)庫通常采用關系模型(如表、行和列),并遵循范式化的設計原則,以減少數(shù)據(jù)冗余和提高數(shù)據(jù)一致性。而數(shù)據(jù)倉庫通常采用多維模型(如立方體、維度和度量),以便用戶能夠從多個角度和層次來查看和分析數(shù)據(jù)。
-
數(shù)據(jù)處理:數(shù)據(jù)庫主要關注插入、更新和刪除操作,以保證數(shù)據(jù)的實時性和一致性。而數(shù)據(jù)倉庫主要關注查詢和匯總操作,以支持復雜的數(shù)據(jù)分析。
-
性能優(yōu)化:數(shù)據(jù)庫通常優(yōu)化事務處理性能,如短交易處理時間和高并發(fā)性。而數(shù)據(jù)倉庫通常優(yōu)化查詢處理性能,如快速響應復雜查詢和大數(shù)據(jù)量處理。
-
數(shù)據(jù)加載和存儲:數(shù)據(jù)庫中的數(shù)據(jù)通常是實時加載的,即業(yè)務發(fā)生時立即插入或更新。而數(shù)據(jù)倉庫中的數(shù)據(jù)通常是定期加載的,即通過
ETL
(抽取、轉換、加載)過程將數(shù)據(jù)從多個源系統(tǒng)抽取、清洗、集成到數(shù)據(jù)倉庫。此外,數(shù)據(jù)倉庫通常存儲大量歷史數(shù)據(jù),以便用戶能夠分析數(shù)據(jù)的時間趨勢。
數(shù)據(jù)庫和數(shù)據(jù)倉庫之間的區(qū)別主要體現(xiàn)在它們的目的、數(shù)據(jù)結構、數(shù)據(jù)處理、性能優(yōu)化和數(shù)據(jù)加載等方面。這兩者之間的選擇取決于具體的業(yè)務需求和數(shù)據(jù)處理場景。
數(shù)據(jù)倉庫的三層體系結構(?????)
-
底層:為數(shù)據(jù)倉庫服務器,底層的數(shù)據(jù)倉庫服務幾乎總是一個關系數(shù)據(jù)庫系統(tǒng)。包括數(shù)據(jù)源和數(shù)據(jù)的存儲與管理。
(1)數(shù)據(jù)源
是數(shù)據(jù)倉庫系統(tǒng)的基礎,是整個系統(tǒng)的數(shù)據(jù)源泉。通常包括企業(yè)內(nèi)部信息和外部信息。內(nèi)部信息包括存放于RDBMS中的各種業(yè)務處理數(shù)據(jù)和各類文檔數(shù)據(jù)。外部信息包括各類法律法規(guī)、市場信息和競爭對手的信息等;
(2)數(shù)據(jù)的存儲與管理
是整個數(shù)據(jù)倉庫系統(tǒng)的核心。數(shù)據(jù)倉庫的真正關鍵是數(shù)據(jù)的存儲和管理。數(shù)據(jù)倉庫的組織管理方式?jīng)Q定了它有別于傳統(tǒng)數(shù)據(jù)庫,同時也決定了其對外部數(shù)據(jù)的表現(xiàn)形式。要決定采用什么產(chǎn)品和技術來建立數(shù)據(jù)倉庫的核心,則需要從數(shù)據(jù)倉庫的技術特點著手分析。針對現(xiàn)有各業(yè)務系統(tǒng)的數(shù)據(jù),進行抽取、清理,并有效集成,按照主題進行組織。數(shù)據(jù)倉庫按照數(shù)據(jù)的覆蓋范圍可以分為企業(yè)級數(shù)據(jù)倉庫和部門級數(shù)據(jù)倉庫(通常稱為數(shù)據(jù)集市)。 -
中間層:為OLAP服務器,OLAP服務器對分析需要的數(shù)據(jù)進行有效集成,按多維模型予以組織,以便進行多角度、多層次的分析,并發(fā)現(xiàn)趨勢。其具體實現(xiàn)可以分為:
ROLAP(關系型在線分析處理)、MOLAP(多維在線分析處理)和HOLAP(混合型線上分析處理)
。ROLAP基本數(shù)據(jù)和聚合數(shù)據(jù)均存放在RDBMS之中;MOLAP基本數(shù)據(jù)和聚合數(shù)據(jù)均存放于多維數(shù)據(jù)庫中;HOLAP基本數(shù)據(jù)存放于RDBMS之中,聚合數(shù)據(jù)存放于多維數(shù)據(jù)庫中。
中間層OLAP服務器的實現(xiàn)可以是關系模型OLAP(ROLAP),即擴充的關系型DBMS,提供對多維數(shù)據(jù)的支持;也可以是多維OLAP(MOLAP),它是一種特殊的服務器,直接支持多維數(shù)據(jù)的存儲和操作。 -
頂層:為前端工具,頂層的前端工具主要包括各種報表工具、查詢工具、數(shù)據(jù)分析工具、數(shù)據(jù)挖掘工具和以數(shù)據(jù)挖掘及各種基于數(shù)據(jù)倉庫或數(shù)據(jù)集市的應用開發(fā)工具。其中數(shù)據(jù)分析工具主要針對OLAP服務器,報表工具、數(shù)據(jù)挖掘工具主要針對數(shù)據(jù)倉庫。
數(shù)據(jù)倉庫的四層架構(???)
按照數(shù)據(jù)流入流出的過程,數(shù)據(jù)倉庫架構可分為四層——數(shù)據(jù)采集、數(shù)據(jù)存儲與分析、數(shù)據(jù)共享、數(shù)據(jù)應用。
1.數(shù)據(jù)采集
數(shù)據(jù)采集層的任務就是把數(shù)據(jù)從各種數(shù)據(jù)源中采集和存儲到數(shù)據(jù)存儲上,期間有可能會做一些ETL(數(shù)據(jù)抽取、轉換和加載)操作。
數(shù)據(jù)源種類可以有多種:
(1)日志:所占份額最大,存儲在備份服務器上;
(2)業(yè)務數(shù)據(jù)庫:Mysql、Oracle;
(3)來自HTTP/FTP的數(shù)據(jù):合作伙伴提供的接口;
(4)其他數(shù)據(jù)源:Excel等需要手工錄入的數(shù)據(jù)。
2.數(shù)據(jù)存儲與分析
HDFS是大數(shù)據(jù)環(huán)境下數(shù)據(jù)倉庫/數(shù)據(jù)平臺最完美的數(shù)據(jù)存儲解決方案。
離線數(shù)據(jù)分析與計算,也就是對實時性要求不高的部分,Hive是不錯的選擇。
使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很樂意開發(fā)Java,或者對SQL不熟,那么也可以使用MapReduce來作分析與計算。
Spark性能比MapReduce好很多,同時使用SparkSQL操作Hive。
3.數(shù)據(jù)共享
前面使用Hive、MR、Spark、SparkSQL
分析和計算的結果,還是在HDFS上,但大多業(yè)務和應用不可能直接從HDFS上獲取數(shù)據(jù),那么就需要一個數(shù)據(jù)共享的地方,使得各業(yè)務和產(chǎn)品能方便地獲取數(shù)據(jù)。這里的數(shù)據(jù)共享,其實指的是前面數(shù)據(jù)分析與計算后的結果存放的地方,其實就是關系型數(shù)據(jù)庫和NOSQL數(shù)據(jù)庫。
4.數(shù)據(jù)應用
(1)報表:報表所使用的數(shù)據(jù),一般也是已經(jīng)統(tǒng)計匯總好的,存放于數(shù)據(jù)共享層。
(2)接口:接口的數(shù)據(jù)都是直接查詢數(shù)據(jù)共享層即可得到。
(3)即席查詢:即席查詢通常是現(xiàn)有的報表和數(shù)據(jù)共享層的數(shù)據(jù)并不能滿足需求,需要從數(shù)據(jù)存儲層直接查詢。一般都是通過直接操作SQL得到。
數(shù)據(jù)倉庫的ETL操作(????)
ETL是數(shù)據(jù)倉庫中的一個重要過程,它代表了抽?。‥xtraction)、轉換(Transformation)和加載(Load)三個步驟。
-
抽取(Extraction):這個步驟是從各種數(shù)據(jù)源(如關系數(shù)據(jù)庫、文件系統(tǒng)等)中抽取需要的數(shù)據(jù)。抽取過程中,需要確定數(shù)據(jù)源,以及從這些源中獲取哪些數(shù)據(jù)。
-
轉換(Transformation):在抽取出數(shù)據(jù)后,需要進行清洗和轉換,以滿足數(shù)據(jù)倉庫的要求。轉換過程包括數(shù)據(jù)清洗(解決數(shù)據(jù)中的錯誤和不一致性問題)、數(shù)據(jù)轉換(將數(shù)據(jù)從一種格式轉換為另一種格式)、數(shù)據(jù)集成(整合來自不同源的數(shù)據(jù))等操作。
數(shù)據(jù)清洗操作:
(1)空值處理;根據(jù)業(yè)務需要,可以將空值替換為特定的值或者直接過濾掉;
(2)驗證數(shù)據(jù)正確性;主要是把不符合業(yè)務含義的數(shù)據(jù)做一處理。比如,把一個表示數(shù)量的字段中的字符串替換為0,把一個日期字段的非日期字符串過濾掉等;
(3)規(guī)范數(shù)據(jù)格式;比如,把所有的日期都格式化成yyyy-MM-dd HH:mm:ss的格式等;
(4)數(shù)據(jù)轉碼;把一個源數(shù)據(jù)中用編碼表示的字段,通過關聯(lián)編碼表,轉換成代表其真實意義的值等;
(5)數(shù)據(jù)標準,統(tǒng)一。比如,在源數(shù)據(jù)中表示男女的方式有很多種,在抽取的時候,直接根據(jù)模型中定義的值做轉化,統(tǒng)一表示男女;
(6)其他業(yè)務規(guī)則定義的數(shù)據(jù)清洗. -
加載(Load):最后一步是將清洗和轉換后的數(shù)據(jù)加載到數(shù)據(jù)倉庫中。加載過程中,可能需要根據(jù)數(shù)據(jù)倉庫的模型(如星型模型、雪花模型等)來組織數(shù)據(jù),以便用戶能夠方便的進行查詢和分析。
ETL過程是數(shù)據(jù)倉庫構建和維護的重要部分,它直接影響到數(shù)據(jù)倉庫的數(shù)據(jù)質量和查詢性能。因此,需要對ETL過程進行充分的設計和優(yōu)化,以確保數(shù)據(jù)的準確性、一致性和及時性。文章來源:http://www.zghlxwxcb.cn/news/detail-742024.html
ETL相關工具
ELT相關的工具有很多,這里只列舉一些常用的,而且各公司的技術原型也不一樣,就需要根據(jù)實際情況來選擇。
(1)數(shù)據(jù)抽取工具:kafka、flume、sync。
(2)數(shù)據(jù)清洗:hive/tez、pig/tez、storm、spark。
(3)其他工具:
數(shù)據(jù)存儲:hadoop、hbase,ES、redis
任務管理:azkaban、oozie
數(shù)據(jù)同步:datax、sqoop
文章來源地址http://www.zghlxwxcb.cn/news/detail-742024.html
到了這里,關于【數(shù)據(jù)庫技術】金管局計算機崗位——數(shù)據(jù)倉庫(????)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!