Data warehouse(可簡寫為DW或者DWH)資料倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘資料資源、為了決策需要而産生的,它是一整套包括了etl、排程、模組化在内的完整的理論體系。資料倉庫的方案建設的目的,是為前端查詢和分析作為基礎,主要應用于OLAP(on-line Analytical Processing),支援複雜的分析操作,側重決策支援,聽且提供直覺易懂的查詢結果。比較流行的有:AWS Redshift,Greenplum,Hive等。
面向主題:
操作型資料庫組織面向事務處理任務,而資料倉庫中的資料是按照一定的主題域進行組織。
主題是指使用者使用資料倉庫進行決策時所關心的重點方面,一個主題通過與多個操作型資訊系統相關。
內建
需要對源資料進行加工與融合,統一與綜合
在加工的過程中必須消除源資料的不一緻性,以保證資料倉庫内的資訊時關于整個企業的一緻的全局資訊。(關聯關系)
不可修改
DW中的資料并不是最新的,而是來源于其他資料源
資料倉庫主要是為決策分析提供資料,涉及的操作主要是資料的查詢
與時間相關
處于決策的需要資料倉庫中的資料都需要标明時間屬性
DW:專門為資料分析設計的,涉及讀取大量資料以了解資料之間的關系和趨勢
資料庫:用于捕獲和存儲資料
特性
資料倉庫
事務資料庫
适合的工作負載
分析、報告、大資料
事務處理
資料源
從多個來源收集和标準化的資料
從單個來源(例如事務系統)捕獲的資料
資料捕獲
批量寫入操作通過按照預定的批處理計劃執行
針對連續寫入操作進行了優化,因為新資料能夠最大程度地提高事務吞吐量
資料标準化
非标準化schema,例如星型Schema或雪花型schema
高度标準化的靜态schema
資料存儲
使用列式存儲進行了優化,可實作輕松通路和高速查詢性能
針對在單行型實體塊中執行高吞吐量寫入操作進行了優化
資料通路
為最小化I/O并最大化資料吞吐量進行了優化
大量小型讀取操作
資料分層,每個企業根據自己的業務需求可以分成不同的層次,但是最基礎的分層思想,理論上資料分為三個層:資料營運層、資料倉庫層、資料服務層。基于這個基礎分層之上,再送出資訊的層次,來滿足不同的業務需求。
ODS:Operation Data Store 資料準備區,也稱為貼源層。資料倉庫源頭系統的資料表通常會原封不動的存儲一份,這稱為ODS層,是後續資料倉庫加工資料的來源。
ODS層資料的來源方式:
業務庫
經常會使用sqoop來抽取,例如每天定時抽取一次。
實時方面,可以考慮用canal監聽mysql的binlog,實時接入即可。
埋點日志
日志一般以檔案的形式儲存,可以選擇用flume定時同步
可以用spark streaming或者Flink來實時接入
kafka也OK
消息隊列:即來自ActiveMQ、Kafka的資料等。
DW資料分層,由下到上為DWD,DWB,DWS。
DWD:data warehouse details 細節資料層,是業務層與資料倉庫的隔離層。主要對ODS資料層做一些資料清洗和規範化的操作。
資料清洗:去除空值、髒資料、超過極限範圍的
DWB:data warehouse base 資料基礎層,存儲的是客觀資料,一般用作中間層,可以認為是大量名額的資料層。
DWS:data warehouse service 資料服務層,基于DWB上的基礎資料,整合彙總成分析某一個主題域的服務資料層,一般是寬表。用于提供後續的業務查詢,OLAP分析,資料分發等。
使用者行為,輕度聚合
主要對ODS/DWD層資料做一些輕度的彙總。
ADS:applicationData Service應用資料服務,該層主要是提供資料産品和資料分析使用的資料,一般會存儲在ES、mysql等系統中供線上系統使用。
我們通過說的報表資料,或者說那種大寬表,一般就放在這裡
ETL :Extract-Transform-Load,用于描述将資料從來源端經過抽取、轉換、加載到目的端的過程。
含義:指字段比較多的資料庫表。通常是指業務主體相關的名額、緯度、屬性關聯在一起的一張資料庫表。
特點:
寬表由于把不同的内容都放在同一張表,寬表已經不符合三範式的模型設計規範:
壞處:資料有大量備援
好處:查詢性能的提高和便捷
寬表的設計廣泛應用于資料挖掘模型訓練前的資料準備,通過把相關字段放在同一張表中,可以大大提供資料挖掘模型訓練過程中疊代計算的消息問題。
為了建立備援較小、結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關系型資料庫中這種規則就稱為範式。範式時符合某一種設計要求的總結。
第一範式:確定每列保持原子性,即要求資料庫表中的所有字段值都是不可分解的原子值。
第二範式:確定表中的每列都和主鍵相關。也就是說在一個資料庫表中,一個表中隻能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中。
作用:減少了資料庫的備援
第三範式:確定每列都和主鍵列直接相關,而不是間接相關。
作者:AmyZYX
出處:http://www.cnblogs.com/amyzhu/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。