一、數據倉庫中,什么是business key
在數據倉庫中,Business key(業務鍵)是指與業務相關的那些主鍵或少數標識符,通常由業務領域專家確定。它是用于標識業務實體或事務的關鍵屬性,例如客戶姓名、訂單編號、產品代碼等。
在數據倉庫建模中,Business key是一個重要的概念,因為它可以幫助將數據轉換為可分析的形式并且為數據集成提供了一個很好的起點。通常,數據倉庫和數據倉庫中的數據模型都是基于業務鍵而不是原始數據庫中的物理主鍵來設計的。
二、數據倉庫概述
1、數據倉庫誕生的原因
歷史數據積存:歷史數據使用頻率過低,堆積在業務數據庫中,會導致查詢性能下降企業數據分析需要:各個部門自己建立獨立的數據抽取系統,導致數據不一致,資源 浪費嚴重,數據庫權限也會存在風險2、數據倉庫的基本概念
數據倉庫,英文名稱為Data Warehouse,可簡寫為DW或DWH。數據倉庫顧名思義,是一個很大的數據存儲集合,出于企業的分析性報告和決策支持目的而創建,對多樣的業務數據進行篩選與整合。它為企業提供一定的BI(商業智能)能力,指導業務流程改進、監視時間、成本、質量以及控制。
數據倉庫將各個異構的數據源數據庫的數據給統一管理起來,并且完成了質量較差的數據的剔除、格式轉換,最終按照一種合理的建模方式來完成源數據組織形式的轉變,以更好的支持到前端的可視化分析。數據倉庫的輸入方式是各種各樣的數據源,最終的輸出用于企業的數據分析、數據挖掘、數據報表等方向。
3、數據倉庫的主要特征
數據倉庫是面向主題的(Subject-Oriented )、集成的(Integrated)、穩定的(Non-Volatile)和時變的(Time-Variant )數據集合,面向數據分析,用以支持管理決策。
主題性:不同于傳統數據庫對應于某一個或多個項目,數據倉庫根據使用者實際需求,將不同數據源的數據在一個較高的抽象層次上做整合,所有數據都圍繞某一主題來組織。集成性:數據倉庫中存儲的數據是來源于多個數據源的集成,原始數據來自不同的數據源,存儲方式各不相同。要整合成為最終的數據集合,需要從數據源經過一系列抽取、清洗、轉換的過程。穩定性:數據倉庫中保存的數據是一系列歷史快照,不允許被修改。用戶只能通過分析工具進行查詢和分析。這里說明一點,數據倉庫基本上是不許允許用戶進行修改,刪除操作的。大多數的場景是用來查詢分析數據。時變性:數據倉庫會定期接收新的集成數據,反應出最新的數據變化。這和穩定特點并不矛盾。另外說明,上面我們已經說了數據倉庫中的歷史數據是不能修改的,那我們每天修改或新增的數據,從業務數據庫中導入數據倉庫中,可以以時間戳標記版本來標記最新數據,老舊的數據就可以定期刪除,保證數據分析的準確性。
4、數據倉庫分層架構
按照數據流入流出的過程,數據倉庫架構可分為三層——源數據、數據倉庫、數據應用。
數據倉庫的數據來源于不同的源數據,并提供多樣的數據應用,數據自下而上流入數據倉庫后向上層開放應用,而數據倉庫只是中間集成化數據管理的一個平臺。
源數據層(ODS): 操作性數據(Operational Data Store) ,是作為數據庫到數據倉庫的一種過渡,ODS的數據結構一般與數據來源保持一致,可以增加字段用來進行數據管理,存儲的歷史數據只是只讀的,提供業務系統查詢使用, 而且ODS的數據周期一般比較短。ODS的數據為后一步的數據處理做準備。數據倉庫層(DW):數據倉庫(Data Warehouse),是數據的歸宿,這里保持這所有的從ODS到來的數據,并長期保存,而且這些數據不會被修改,DW層的數據應該是一致的、準確的、干凈的數據,即對源系統數據進行了清洗(去除了雜質)后的數據。數據應用層(DA):數據應用(Data Application),為了特定的應用目的或應用范圍,而從數據倉庫中獨立出來的一部分數據,也可稱為部門數據或主題數據,該數據面向應用。如根據報表、專題分析需求而計算生成的數據。????5、數據倉庫之ETL
建立OLAP應用之前,我們要想辦法把各個獨立系統的數據抽取出來,經過一定的轉換和過濾,存放到一個集中的地方,成為數據倉庫。這個抽取,轉換,加載的過程叫ETL(Extract, Transform,Load),目的是將企業中分散、零亂、標準不統一的數據整合到一起。
ETL是數據倉庫的流水線,也可以認為是數據倉庫的血液,它維系著數據倉庫中數據的新陳代謝,而數據倉庫日常的管理和維護工作的大部分精力就是保持ETL的正常和穩定。
6、與數據庫的區別
數據庫是面向事務的設計,數據倉庫是面向主題設計的。數據庫一般存儲業務數據,數據倉庫存儲的一般是歷史數據。數據庫設計是盡量避免冗余,一般針對某一業務應用進行設計,比如一張簡單的User表,記錄用戶名、密碼等簡單數據即可,符合業務應用,但是不符合分析。數據倉庫在設計是有意引入冗余,依照分析需求,分析維度、分析指標進行設計。數據庫是為捕獲數據而設計,數據倉庫是為分析數據而設計。延伸閱讀1:數據倉庫使用的主要技術
并行:計算的硬件環境、操作系統環境、 數據庫管理系統和所有相關的數據庫操作、查詢工具和技術、應用程序等各個領域都可以從并行的最新成就中獲益。分區:分區功能使得支持大型表和索引更容易,同時也提高了數據管理和查詢性能。數據壓縮:數據壓縮功能降低了數據倉庫環境中通常需要的用于存儲大量數據的磁盤系統的成本,新的數據壓縮技術也已經消除了壓縮數據對查詢性能造成的負面影響。