您好,登錄后才能下訂單哦!
?隨著企業的發展,其內部集聚的數據也會越來越多,如何保證整個企業不同業務數據的一致性、準確性以及數據的快速服務能力,是每個企業在數據累計到一定數量時都將面臨的問題。以下內容為我們公司的治理方式,僅供大家參考。
?公司目前累計數據為P級,日新增數據為T級,數據主要為結構化數據和半結構化數據,采用hive建設數據倉庫的方式進行數據處理,同時嚴格按照倉庫的建設規范進行,以保證數倉中的數據層次清晰,各層間的數據具有完整的一致性,同時保障hive每日跑批生成的數據準確性。數據的獲取到數據提供到最終的應用方,數據倉庫中,我們將其分為源數據層、操作數據層、數倉公共層、集市層四個層次。
1.數據源包含實時數據和離線數據兩種,實時數據通過kafka+storm的方式采集,離線數據則通過sqoop從各業務從庫獲取,數據采集到后會根據數據本身特性分別進入stage和ods,stage區的數據處理過后也會存入ods中,對后面的服務統一由ods提供(什么數據放入stage區后面會講到);
2.數倉公共層的數據統一來自于ods,其自身總共包含明細層(DWD)和匯總層(DWS),匯總層的數據又分為輕度匯總數據(DWB)和重度匯總數據(DWS);
3.數據集市層(DM)的數據主要用來為業務需求提供服務,其包含應用產品所需數據、需求報表、指標等,同時該層還可為業務部門創建專用數據庫以及數據探索庫。
?
下面分別將數倉中的ods層、dwd層、dws層、dm層分開展示:
?
ods層建設:
?無論是web端還是app端的log數據采集到后會統一傳送到kafka中,經storm簡單處理后存放到stage庫中;對于業務庫中量級較大的表(比如金融支付相關表,每天都是上億的記錄,并且還會對最近60天交易記錄存在更新的情況),我們采取增量抽取的方式先放入stage,保證數據每天可以快速進入數倉,然后再根據業務需要處理后放入ods庫。
?
dwd層建設:
?dwd層是數倉非常重要的一個層次,上層數據的主要來源地,也是完成數據管理的重要入口,因此該層的數據處理要求較多。我們主要按照以下方式進行建設:
(1)數據粒度鎖定,該層數據跟ods層的數據粒度一致,都為明細級數據,區別在于該層會剔除掉測試數據;
(2)數據標準統一,該層需要保證同樣含義的數據具有一致的標準,比如姓名這類數據,無論其在之前的業務庫中叫什么,該層任何表中該字段統一命名為name;同時對于性別類數據,一些業務記錄為F/M,一些記錄為男/女,該層任何表中統一存儲為男/女;
(3)如果原始數據中存在電話號碼、×××號碼之類的敏感數據,在該層需要進行脫敏,此后表中記錄的數據皆為脫敏后的數據,并且建立專門的敏感數據庫對原始敏感數據進行備份存儲;
(4)多源數據整合,對于同類型數據,但由于業務需要在業務庫是分庫分表存儲的數據,在該層需要進行統一為一張表;
(5)既然是數據倉庫建設,則應該按照數據模型的建設方式進行,該層數據模型統一基于業務流程進行建模,采用kimball維度建模的方式處理變動性較大的業務,采用Inmon范式建模的方式處理穩定性較高的主題;
?
dws層建設:
?dws層包含了兩部分數據,輕度匯總數據(dwb)和重度匯總數據(dws),輕度匯總數據主要存儲以用戶、產品、協議等為維度各業務線進行的簡單統計數據;重度匯總數據來源包括dwd和dwb,其主要記錄多業務的統計數據和時間跨度大的統計數據,dws的數據大多以寬表形式存在。
?
dm層建設:
?數據集市層的數據主要用作直接的數據服務,數據服務對象包括:分析報表、應用產品數據、BI、tableu、探索數據等,根據需要該層可以創建多個數據庫,以滿足業務需要為主。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。