專欄筆記 基於hadoop生態圈的資料倉儲實踐

2021-08-31 00:09:31 字數 944 閱讀 9603

資料倉儲是乙個面向主題的、整合的、隨時間變化的、非易失的資料集合,用於支援決策。它主要的目標是分析和處理資料,和傳統的操作型事務處理有很大區別。

之所以不直接在操作型系統上執行分析查詢,而是從操作型系統抽取資料,最主要有以下兩個原因:(1)在操作型系統上直接執行分析查詢會使業務系統受到影響,很可能使其變慢甚至宕機。(2)在操作型系統中很可能查不到分析所需要的資料。出於效能的考慮,操作型系統一般都不會保留很長的歷史記錄,而只是保留近期活躍的資料,但資料倉儲中理論上應該保留所有決策需要的資料,即除了活躍資料外,還應該包含大量的歷史歸檔資料。

資料倉儲主要有規範化資料模型、多維資料模型、data vault資料模型等建模方法,其中前兩種使用最為廣泛。規範化模型用於企業級資料倉儲(edw)建模,而多維模型多用於資料集市建模。規範化模型對於資料庫設計者來說非常熟悉,其核心思想就是消除資料冗餘以保證資料一致性和事務處理的效能。通常業務資料庫、oltp系統都採用規範化模型,其中常見的有1nf、2nf和3nf。簡單地說,1nf就是消除重複元組,並保持列的原子性,具體到資料庫設計上就是每個表都要有乙個主鍵來唯一標識一行記錄。2nf就是在1nf的基礎上消除了部分依賴,即非鍵屬性必須完全依賴於主鍵。3nf在2nf基礎上消除了傳遞依賴,即非鍵屬性只能完全依賴於主鍵。一般資料庫設計需要滿足3nf。而對於多維模型最簡單的描述是,按照事實表、維度表來構建資料倉儲或資料集市,這種模型被人們熟知的有星型和雪花型。

hadoop mapreduce的實現分為split、map、shuffle和reduce四步:

hdfs分布資料。

向yarn請求資源以建立reducer例項。

在可用的節點上建立reducer例項。

使用hive作為多維資料倉儲的主要挑戰是處理漸變維(scd)和生成**鍵。處理漸變維需要配置hive支援行級更新,並在建表時選擇適當的檔案格式。生成**鍵在關聯式資料庫中一般都是用自增列或序列物件,但hive中沒有這樣的機制,得用其它辦法實現,在後面etl部分再詳細討論。

Hadoop生態圈普及

大資料一路走來,從最開始的hadoop1.0 逐漸發展到hadoop2.0。hadoop的橫空出世引領了大資料行業技術的發展。逐漸以分布式並行離線處理框架mapreduce 分布式檔案儲存系統hdfs以及排程系統yarn為中心,發展出龐大的生態圈,比如hive hbase zookeeper等等,豐...

Hadoop生態圈初識

一 簡介 hadoop是乙個由apache 會所開發的分布式系統基礎架構。hadoop的框架最核心的設計就是 hdfs和mapreduce。hdfs為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算。二 hdfs hadoop distributed file system,簡稱hd...

Hadoop生態圈之zookeeper

zookeeper是乙個分布式服務框架,主要用來解決分布式應用中經常遇到的一些資料管理問題,如 統一命名服務 狀態同步服務 集群管理 分布式應用配置項的管理等。簡而言之就是 zookeeper 檔案系統 監聽通知機制。每個子目錄如nameservice都被稱為znode 目錄節點 和檔案系統一樣,我...