Hive資料倉儲設計的四個層次設計

2021-10-01 08:32:46 字數 2357 閱讀 5969

資料倉儲:資料倉儲全面接收源系統資料,etl程序對資料進行規範化、驗證、清洗,並最終裝載進入資料集市,通過資料集市支援系統進行資料查詢、分析,整個資料倉儲包含四大層次。

etl(extractiontransformation loading)負責將分散的、異構資料來源中的資料抽取到臨時中間層後進行清洗、轉換、整合,最後載入到資料倉儲或資料集市中。etl 是實施資料倉儲的核心和靈魂,etl規則的設計和實施約佔整個資料倉儲搭建工作量的 60%~80%.

1.資料抽取(extraction)包括初始化資料裝載和資料重新整理:初始化資料裝載主要關注的是如何建立維表、事實表,並把相應的資料放到這些資料表中;而資料重新整理關注的是當源資料發生變化時如何對資料倉儲中的相應資料進行追加和更新等維護(比如可以建立定時任務,或者觸發器的形式進行資料的定時重新整理)。

2. 資料清洗主要是針對源資料庫**現的二義性、重複、不完整、違反業務或邏輯規則等問題的資料進行統一的處理。即清洗掉不符合業務或者沒用的的資料。比如通過編寫hive或者mr清洗欄位中長度不符合要求的資料。

3.資料轉換(transformation)主要是為了將資料清洗後的資料轉換成資料倉儲所需要的資料:**於不同源系統的同一資料字段的資料字典或者資料格式可能不一樣(比如a表中叫id,b表中叫ids),在資料倉儲中需要給它們提供統一的資料字典和格式,對資料內容進行歸一化;另一方面,資料倉儲所需要的某些欄位的內容可能是源系統所不具備的,而是需要根據源系統中多個欄位的內容共同確定。

4. 資料載入(loading)是將最後上面處理完的資料匯入到對應的儲存空間裡(mysql等)以方便給資料集市提供,進而視覺化。

一般大公司為了資料安全和操作方便,都是自己封裝的資料平台和任務排程平台,底層封裝了大資料集群比如hadoop集群,spark集群,sqoop,hive,zookeepr,hbase等只提供web介面,並且對於不同員工加以不同許可權,然後對集群進行不同的操作和呼叫。以資料倉儲為例,將資料倉儲分為邏輯上的幾個層次。這樣對於不同層次的資料操作,建立不同層次的任務,可以放到不同層次的任務流中進行執行(大公司乙個集群通常每天的定時任務有幾千個等待執行,甚至上萬個,所以劃分不同層次的任務流,不同層次的任務放到對應的任務流中進行執行,會更加方便管理和維護)。

資料倉儲標準上可以分為四層。但是注意這種劃分和命名不是唯一的,一般數倉都是四層,但是不同公司可能叫法不同。比如這裡的臨時層叫複製層ssa,京東則叫bdm。同樣阿里巴巴卻是五層數倉結構,更加詳細,但是核心的理念都是從四層資料模型而來。如下分別展示京東和阿里巴巴數倉的架構層次和命名。

1. 複製層(ssa,system-of-records-staging-area)

ssa 直接複製源系統(比如從mysql中讀取所有資料匯入到hive中的同結構表中,不做處理)的資料,盡量保持業務資料的原貌;與源系統資料唯一不同的是,ssa 中的資料在源系統資料的基礎上加入了時間戳的資訊,形成了多個版本的歷史資料資訊。

2. 原子層(sor,system-of-record)

sor 是基於模型開發的一套符合 3nf 正規化規則的表結構,它儲存了資料倉儲內最細層次的資料,並按照不同的主題域對資料分類儲存;比如高校資料統計服務平台根據目前部分需求將全校資料在 sor 層中按人事、學生、教學、科研四大主題儲存;sor 是整個資料倉儲的核心和基礎,在設計過程中應具有足夠的靈活性,以能應對新增更多的資料來源、支援更多的分析需求,同時能夠支援進一步的公升級和更新.

3 .彙總層(sma,summary-area)

sma 是 sor和dm(集市層) 的中間過渡,由於 sor 是高度規範化資料,此要完成乙個查詢需要大量的關聯工作,同時dm 中的資料粒度往往要比 sor 高很多,對要生dm 中的彙總資料需要進行大量的彙總工作,此,sma 根據需求把 sor 資料進行適度的反範(例如,設計寬表結構將人員資訊、幹部資訊等多表的資料合併起來)和彙總(例如,一些常用的頭彙總、機構彙總等);從而提高資料倉儲查詢效能。

4.集市層/展現層(dm, data mart)

dm 儲存的資料供使用者直接訪問的:可以將 dm 理解成終端使用者接最終想要看的資料;dm 主要是各類粒度的事資料,通過提供不同粒度的資料,適應不同的數訪問需求;高校資料統計服務平台 dm 中的資料。

Hive開發要知道資料倉儲的四個層次設計

資料倉儲 資料倉儲全面接收源系統資料,etl程序對資料進行規範化 驗證 清洗,並最終裝載進入資料集市,通過資料集市支援系統進行資料查詢 分析,整個資料倉儲包含四大層次。etl extractiontransformation loading 負責將分散的 異構資料來源中的資料抽取到臨時中間層後進行清...

資料倉儲具有四個主要特性

1 主題性 資料倉儲是一般從使用者實際需求出發,將不同平台的資料來源按設定主題進行劃分整合,與傳統的面向事務的操作型資料庫不同,具有較高的抽象性。面向主題的資料組織方式,就是在較高層次對分析物件資料的乙個完整 統一並一致的描述,能完整及統一地刻畫各個分析物件所涉及的有關企業的各項資料,以及資料之間的...

程式設計的四個層次

大學已經學了三年了,學了三年的計算機自己總結出來程式設計的四個層次。語法階段 專家階段 執行機理 設計模式 語法階段這是程式設計的最低階段,也就是熟悉一門語言的語法就和你學英語學習的句型語法一樣,自己覺得這個階段是十分簡單的,程式語言的語法比英語日語等的簡單多了,如果你是個老手的話最多花3個小時就可...