數據倉庫系統架構和數倉分層體系介紹

2020-12-14 騰訊網

一、數據倉庫體系架構

公司藉助的第三方數據平臺,在此平臺之上建設數據倉庫。因為第三方平臺集成了很多東西,所以省去了不少功夫。

數據倉庫的體系架構,無外乎就是數據源、數據採集方式、計算存儲系統、數據應用層,這幾個方面。

1、數據源:

內部數據:如交易數據、會員數據,日誌數據,由公司業務系統產生的數據。

外部數據:網際網路數據和第三方服務商數據等。網際網路數據就是我們使用爬蟲爬取的網際網路數據,而第三方數據,一般多指公司合作方產生的數據。

2、採集方式

離線採集,包括全量同步和增量同步。實時採集,顧名思義就是採用實時的策略採集數據,如我們想統計實時的交易數據。當產生一筆訂單存入業務庫時,我們可以通過Binlog等多種方式感知數據的變化,把新產生的數據同步的kafka其他消息隊列,實時的消費使用數據。

第三方採集,跟公司商務合作的其他公司,他們暴露接口給我們,我們通過接口取數據,當然這只是其中一種方式,不同公司取數據的策略是不一樣的。

數據倉庫的體系架構圖

3、存儲計算

通過集群的分布式計算能力和分布式文件系統,來計算和存儲數據。我們使用的阿里雲服務,把業務數據存儲到hive中,然後劃分為不同的層級,來規劃整合數據。藉助分布式文件系統可以存儲大數據量的數據,包括久遠之前的歷史數據。

4、數據應用

使用HQL、Mapreduce、SparkSql、UDF函數等多種處理方式,對各種業務數據進行處理,形成一定規範模式的數據。把這些建模成型的數據提供給外界使用。如BI應用、挖掘分析、算法模型、可視化大屏系統。

當然最重要的是對數據的管理,數據就是我們的資產,只有管理的有條不紊,使用起來才能得手應心。我們可以建立數據地圖、數據規範、數據質量系統,配置完整的任務調度(如Oozie)。

當然運維方面是必不可少的,如果一個任務失敗了,我們需要第一時間知道,這時就需要告警系統。另外還可以設置角色權限,整個系統有一個最高權限,還有開發權限,訪問權限等等,這個需要根據公司需求來做。

二、數據倉庫分層

數據倉庫分層

1、數據倉庫分層模式作用

1.1、數據結構化更清晰:對於不同層級的數據,他們作用域不相同,每一個數據分層都有它的作用域,這樣我們在使用表的時候能更方便地定位和理解。

1.2、數據血緣追蹤:提供給外界使用的是一張業務表,但是這張業務表可能來源很多張表。如果有一張來源表出問題了,我們可以快速準確的定位到問題,並清楚每張表的作用範圍。

1.3、減少重複開發:數據分層規範化,開發一些通用的中間層數據,能夠減少重複計算,提高單張業務表的使用率。

1.4、簡化複雜的問題:把一個複雜的業務分成多個步驟實現,每一層只處理單一的步驟,比較簡單和容易理解。而且便於維護數據的準確性,當數據出現問題之後,可以不用修復所有的數據,只需要從有問題的步驟開始修復。有點類似Spark RDD的容錯機制。

1.5、減少業務的影響:業務可能會經常變化,這樣做就不必改一次業務就需要重新接入數據。

2、數據倉庫分層介紹

2.1、ODS原始數據層

ODS層保存所有操作數據,不對原始數據做任何處理。在業務系統和數據倉庫之間形成一個隔離,源系統數據結構的變化不影響其他數據分層。減輕業務系統被反覆抽取的壓力,由ODS統一進行抽取和分發。記住ODS層數據要保留數據的原始性。

處理原則:

根據源業務系統表的情況以增量或全量方式抽取數據;

ODS層以流水錶和快照表為主,按日期對數據進行分區保存,不使用拉鍊表;

ODS層的數據不做清洗和轉換,數據的表結構和數據粒度與原業務系統保持一致。

2.2、DWD數據明細層

DWD層的數據是經由ODS層數據經過清洗、轉換後的明細數據,滿足對標準化數據需求。如對NULL值處理,對數據字典解析,對日期格式轉換,欄位合併、髒數據處理等。

處理原則:

數據結構與ODS層一致,但可以對表結構進行裁剪和匯總等操作;

對數據做清洗、轉換;

DWD層的數據不一定要永久保存,具體保存周期視業務情況而定。

2.3、DWS數據匯總層

DWS層數據 按主題對數據進行抽象、歸類,提供業務系統細節數據的長期沉澱。這一層是一些匯總後的寬表,是根據DWD層數據按照各種維度或多種維度組合,把需要查詢的一些事實欄位進行匯總統計。可以滿足一些特定查詢、數據挖掘應用,面向業務層面,根據需求進行匯總。

處理原則:

面向全局、數據整合;

存放最全的歷史數據,業務發生變化時易於擴展,適應複雜的實際業務情況;

儘量減少數據訪問時的計算量,優化表的關聯。維度建模,星形模型;

事實拉寬,度量預先計算, 基本都是快照表。反規範化,有數據冗餘。

2.4、AWS數據明細層

ADS應用層是根據業務需要,由DWD、DWS數據統計而出的結果,可以直接提供查詢展現,或導入至Oracle等關係型資料庫中使用。這一層的數據會面向特定的業務部門,不同的業務部門使用不同的數據,支持數據挖掘。

處理原則:

形式各式,主要按不同的業務需求來處理;

保持數據量小,定時刷新數據;

數據同步到不同的關係型資料庫或hbase等其他資料庫中。

提供最終數據,來滿足業務人員、數據分析人員的數據需求。

相關焦點

  • 你的數據倉庫既要有「維度模型設計」也要看「分層架構」
    維度模型設計和分層架構都是數據倉庫必不可缺的。維度建模以分析決策的需求出發構建模型,構建的數據模型為分析需求服務,因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應性能。而分層架構的設計的主要是為在管理數據的時候,能對數據有一個更加清晰的掌控。
  • 馬蜂窩數據中臺起步建設:數倉的架構、模型與應用
    作為中臺的另一大核心部分,馬蜂窩數據倉庫主要承擔數據統一化建設的工作,包括統一數據模型,統一指標體系等。下面介紹馬蜂窩在數據倉庫建設方面的具體實踐。二、數據倉庫核心架構馬蜂窩數據倉庫遵循標準的三層架構,對數據分層的定位主要採取維度模型設計,不會對數據進行抽象打散處理,更多注重業務過程數據整合。
  • 數據湖 VS 數據倉庫之爭?阿里提出大數據架構新概念:湖倉一體
    AWS 構築了一套以 S3 為中心化存儲、Glue 為元數據服務,E-MapReduce、Athena 為引擎的開放協作式的產品解決方案。它的開放性和和開源體系類似,並在2019年推出Lake Formation 解決產品間的安全授信問題。雖然這套架構在企業級能力上和相對成熟的雲數據倉庫產品相去甚遠,但對於開源技術體系的用戶來說,架構相近理解容易,還是很有吸引力。
  • 數據倉庫入門,看這一篇文章就夠了
    今天跟著我來學學數據倉庫的基礎知識,通過本文的閱讀,你將獲得以下方面的認知:什麼是數倉數倉的核心概念數倉的分層架構數據倉庫概述數據倉庫,顧名思義對於數據倉庫來說,分區歸類就類似於數據倉庫的基礎架構,數據倉庫的數據存儲結構(如表)就是倉庫的貨架,而商品則是對應數據倉庫實際存儲的各種數據。無論是什麼樣的倉庫,無論倉庫大小,其目的都是為了實現物品的集中管理、有序存取,數據倉庫也是一樣,它管理存儲的是數據以及數據結構。
  • 關於數據倉庫建設,了解這7點就夠了
    編輯導讀:在數據分析中,實時數據倉庫很重要,它決定了報表和BI到底能不能實時展現數據。但很多人可能都對它不夠了解,本文作者結合自己的工作實踐,從7個方面分享了數據倉庫建設的相關步驟和需要注意的問題,一起來看看~之前發了一篇數據倉庫的文章,發現大家對數據倉庫還是非常感興趣的。
  • 58商業數倉建設實踐
    分享嘉賓:鍾云云 58同城 數據架構師編輯整理:李凱凱出品平臺:DataFunTalk、AI啟蒙者導讀:早在多年以前在Hadoop系列分布式計算與存儲、消息中間件還沒有成熟的時候,數據倉庫主要基於Oracle的數倉建設。
  • 【原創】-數據倉庫的由來?
    一、邏輯層次和概念層次,資料庫和數據倉庫在一定程度上具有相通性,都是通過資料庫軟體去管理數據,但是資料庫更關注業務交易處理過程中數據的存儲~ 數據倉庫的著重點 1、對於業務的存儲數據進行分析。
  • 數據產品必備技術知識:數據倉庫入門,看這這一篇就夠了
    四、數據倉庫結構用AXURE畫了個結構圖,如下:簡單來說,就是把各數據源的數據ETL到數倉中,數倉再對數據進行集成和統計,然後再輸出給各數據應用,圖中涉及的模塊,接下來會分別介紹。業務系統數據存儲非常明細的數據,而數據倉庫中數據是用分析的,不需要非常明細,會將業務系統數據按照數據倉庫粒度進行聚合。數據清洗,如會對不完整數據,錯誤數據和重複數據等髒數據進行清洗。
  • 從美股史上最大軟體IPO,看數據倉庫市場的增長邏輯
    當時,隨著計算機廣泛地被應用於數據管理,人們對數據在計算機上的組織形式提出了越來越高的要求,傳統文件系統已經不能滿足需求,希望能夠基於一套系統對數據進行統一管理和共享,資料庫由此誕生。經過超過半個世紀的發展,資料庫形成了非常豐富而龐雜的類別,面向的應用場景也千差萬別。一般而言,人們會從數據模型、應用場景兩個維度對DBMS進行分類。
  • 基於MaxCompute的數倉數據質量管理
    一致性一般體現在跨度很大的數據倉庫體現中。 比如公司中有很多業務數倉分支,對於同一份數據必須保證一致性。例如用戶ID,從在線業務庫加工到數據倉庫,再到各個數據應用節點,必須都是同一種類型、長度保持一致。因此在《MaxCompute數倉建設規範指南》中有了「公共層」的加工,確保數據的一致性。
  • 騰訊雲聶晶:未來五年85%企業資料庫上雲,數據倉庫雲端構建將成為...
    聶晶介紹,作為一個開放的雲廠商,騰訊雲結合騰訊數據技術實踐、開源技術組織和商業化技術合作夥伴能力,在雲端提供了涵蓋Hadoop、ES、MPP數倉在內的,豐富易用、開源開放的開箱即用數據基礎設施和數據工具,可以幫助企業快速構建安全、穩定、可擴展、可高效運營的數據IT架構。
  • 阿里雲自研數據倉庫 AnalyticDB 再捧 TPC 全球冠軍
    初識數據倉庫數據倉庫是由比爾恩門(Bill Inmon)教授在1990年提出,在概念提出伊始,主要功能是將通過聯機事務處理(OLTP)所產生大量數據,透過數據倉庫理論的資料儲存架構,進行數據的分析整理,進而支持如決策支持系統(DSS)、主管資訊系統(EIS)的創建,幫助用戶在快速有效的大量數據中
  • 數據研發同學,如何設計企業數據倉庫?
    這兩種數倉雖然從技術實現上有一定差異,但是整體模型構建上,卻有很多的相似點。離線數據倉庫設計離線數據倉庫的設計,主要分為三層結構,ODS層(原始數據層),DWD層(公共明細層)和DWS(公共匯總層),APP層(業務數據應用層)。
  • 如何設計一個規範的數據倉庫
    一.什麼是數據倉庫數據倉庫的特徵在於面向主題、集成性、穩定性和時變性,用於支持管理決策。數據倉庫的存在的意義在於對企業的所有數據進行匯總,為企業各個部門提供統一的、規範的數據出口。數據倉庫在構建過程中通常都需要進行分層處理。業務不同,分層的技術處理手段也不同。
  • 數據倉庫模型設計與工具
    數據模型對於數倉是最核心的東西,數據模型是數據組織和存儲方法,模型的好壞,決定了數倉能支撐企業業務多久。為什麼大多數企業,數倉都要重建,這不僅僅是業務拓展、發展迅速,很大一部分是因為模型建的很爛。
  • 漫談數倉OLAP技術
    數據應用,是真正體現數倉價值的部分,包括且又不局限於 數據可視化、BI、OLAP、即席查詢,實時大屏,用戶畫像,推薦系統,數據分析,數據挖掘,人臉識別,風控反欺詐,ABtest等等。
  • 構建實時數據倉庫,雲原生數據倉庫AnalyticDB for MySQL技術解密
    阿里雲分析型資料庫重磅推出基礎版,極大降低了用戶構建數據倉庫門檻。高度兼容MySQL,極低的使用成本和極高的性能,使中小企業也可以輕鬆的搭建一套實時數據倉庫,實現企業數據價值在線化。AnalyticDB for MySQL的產品系列包括基礎版(單機版)和集群版,基礎版為單個節點提供服務,極簡的架構大大的降低了基礎版的成本。存儲計算分離架構、行列混存技術、輕量的索引構建方式和分布式混合計算引擎又保證了基礎版強大的分析性能。年成本不到一萬就可以構建一套實時數據倉庫,無需成立專門的大數據團隊,為企業節省百萬成本。
  • 大數據常見面試題之數據倉庫
    一、數倉中是如何劃分主題的主題(subject)是在較高層次上將企業信息系統中的數據進行綜合,歸類和分析利用的一個抽象概念,每一個主題基本對應一個宏觀的分析領域
  • 傳統行業如何建立數據倉庫?
    在理解建立商業智能系統目標的基礎上,建立有效的企業管理模式,制定出詳細的企業數據倉庫業務管理規範,設計出常用的ETL數據採集規範和工作流程,從而明確商業智能系統的實施範圍和目標。為了提高企業的分析決策能力,可以利用當下的區域網技術和網際網路技術實現企業對各種信息的查詢和分析,通過建立企業業務數據模型,分析商業智能系統的系統架構、數據源之間的差異、對數據質量的評估和各種信息的處理方法,有效地提高企業商業智能系統的分析和決策能力。
  • 大數據篇:一文讀懂@數據倉庫
    而數據倉庫中的數據是在對原有分散的資料庫數據抽取、清理的基礎上經過系統加工、匯總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關於整個企業的一致的全局信息。具體如下:1:數據進入數據倉庫後、使用之前,必須經過加工與集成。2:對不同的數據來源進行統一數據結構和編碼。