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

2020-12-06 騰訊網

一、數據倉庫體系架構

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

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

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等其他資料庫中。

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

相關焦點

  • 數據倉庫(OLAP)與資料庫(OLTP)的區別及數倉的分層結構
    數據倉庫(OLAP)與資料庫(OLTP)的區別OLAP(數據倉庫):分析型處理,聯機分析處理。OLTP(資料庫):操作型處理,聯機事務處理。注意:數據倉庫的出現不能取代資料庫的存在。區別:OLAP:A指的是分析聯機分析處理面向分析指的就是數據倉庫,例如Apache Hive Apche lmpala。
  • 你的數據倉庫既要有「維度模型設計」也要看「分層架構」
    維度模型設計和分層架構都是數據倉庫必不可缺的。維度建模以分析決策的需求出發構建模型,構建的數據模型為分析需求服務,因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應性能。而分層架構的設計的主要是為在管理數據的時候,能對數據有一個更加清晰的掌控。這篇乾貨將帶你認清數據倉庫「維度模型設計」與「分層架構」。
  • 數據湖 VS 數據倉庫之爭?阿里提出大數據架構新概念:湖倉一體
    它的開放性和和開源體系類似,並在2019年推出Lake Formation 解決產品間的安全授信問題。雖然這套架構在企業級能力上和相對成熟的雲數據倉庫產品相去甚遠,但對於開源技術體系的用戶來說,架構相近理解容易,還是很有吸引力。AWS 之後,各個雲廠商也紛紛跟進數據湖的概念,並在自己的雲服務上提供類似的產品解決方案。雲廠商主推的數據倉庫類產品則發展良好,數倉核心能力方面持續增強。
  • 馬蜂窩數據中臺起步建設:數倉的架構、模型與應用
    在這樣的思想下,我們結合自身業務特點建設了馬蜂窩的數據中臺,核心架構如下:在中臺建設之前,馬蜂窩已經建立了自己的大數據平臺,並積累了一些通用、組件化的工具,這些可以支撐數據中臺的快速搭建。作為中臺的另一大核心部分,馬蜂窩數據倉庫主要承擔數據統一化建設的工作,包括統一數據模型,統一指標體系等。下面介紹馬蜂窩在數據倉庫建設方面的具體實踐。
  • 關於數據倉庫建設,了解這7點就夠了
    編輯導讀:在數據分析中,實時數據倉庫很重要,它決定了報表和BI到底能不能實時展現數據。但很多人可能都對它不夠了解,本文作者結合自己的工作實踐,從7個方面分享了數據倉庫建設的相關步驟和需要注意的問題,一起來看看~之前發了一篇數據倉庫的文章,發現大家對數據倉庫還是非常感興趣的。今天再和大家一起聊聊實時數倉吧!實時數倉可謂是決定性的東西,能決定什麼?
  • 數據產品必備技術知識:數據倉庫入門,看這這一篇就夠了
    四、數據倉庫結構用AXURE畫了個結構圖,如下:簡單來說,就是把各數據源的數據ETL到數倉中,數倉再對數據進行集成和統計,然後再輸出給各數據應用,圖中涉及的模塊,接下來會分別介紹。五、ETLETL分別代表:抽取extraction、轉換transformation、加載load。
  • 一文讀懂數據架構的進化史
    近期看到很多企業在設計自己的數據平臺,以及選型一些數據分析工具,正好拜讀了數據倉庫之父的《數據架構:大數據、數據倉庫以及Data Vault》一書,有些許感觸,就來聊一下個人思考吧。首先從企業信息化發展階段時,數據平臺結構的程度來看。
  • 數據倉庫模型設計與工具
    數據模型對於數倉是最核心的東西,數據模型是數據組織和存儲方法,模型的好壞,決定了數倉能支撐企業業務多久。為什麼大多數企業,數倉都要重建,這不僅僅是業務拓展、發展迅速,很大一部分是因為模型建的很爛。
  • 【原創】-數據倉庫架構的設計
    概述 架構是數據倉庫建設的總體規劃,從整體視角描述了解決方案的高層模型,描述了各個子系統的功能以及關係,描述了數據從源系統到決策系統的數據流程。業務需求回答了要做什麼,架構就是回答怎麼做的問題。
  • 漫談數倉OLAP技術
    數據應用,是真正體現數倉價值的部分,包括且又不局限於 數據可視化、BI、OLAP、即席查詢,實時大屏,用戶畫像,推薦系統,數據分析,數據挖掘,人臉識別,風控反欺詐,ABtest等等。
  • 傳統行業如何建立數據倉庫?
    在理解建立商業智能系統目標的基礎上,建立有效的企業管理模式,制定出詳細的企業數據倉庫業務管理規範,設計出常用的ETL數據採集規範和工作流程,從而明確商業智能系統的實施範圍和目標。為了提高企業的分析決策能力,可以利用當下的區域網技術和網際網路技術實現企業對各種信息的查詢和分析,通過建立企業業務數據模型,分析商業智能系統的系統架構、數據源之間的差異、對數據質量的評估和各種信息的處理方法,有效地提高企業商業智能系統的分析和決策能力。
  • 大數據篇:一文讀懂@數據倉庫
    數據經集成進入數據倉庫後是極少或根本不更新的。隨時間變化即反映歷史變化操作型資料庫主要關心當前某一個時間段內的數據,而數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到目前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。企業數據倉庫的建設,是以現有企業業務系統和大量業務數據的積累為基礎。
  • 《數據中臺實戰》:數據中臺的分層建模體系
    各層數據模型之間的關係如圖1-1所示。圖1-1 分層模體系第一層是ODS和DIM層。ODS層數據是數據倉庫的第一層數據,是業務資料庫的原始數據的複製,例如,每條產品線的用戶信息、訂單信息等數據一般都是原封不動地同步到數據中臺的ODS層中。
  • 民生銀行大數據體系架構設計與演進
    一、大數據簡介   大數據起源於網際網路,在2003年左右由Google發布GFS和MapReduce論文為節點拉開了新技術應用的序幕,介紹了一種利用普通PC伺服器構建大規模分布式系統,來解決海量數據的存儲和計算問題。在此論文基礎上發展出來的Hadoop開源體系逐步成為海量數據處理的一種通用技術框架。
  • 如何深入淺出理解數據倉庫建模?
    數據模型能夠促進業務與技術進行有效溝通,形成對主要業務定義和術語的統一認識,具有跨部門、中性的特徵,可以表達和涵蓋所有的業務。大數據系統需要數據模型方法來幫助更好地組織和存儲數據,以便在性能、成本、效率和質量之間取得最佳平衡!
  • DTCC2020阿里雲李飛飛:雲原生分布式資料庫與數據倉庫系統點亮數據...
    真正需要分布式的能力就可以結合Shared Nothing架構和技術來做擴展,所以要根據應用需求從客戶視角出發設計系統和應用遷移改造方案。2.2雲原生數據倉庫與數據湖除了事務處理,資料庫系統也需通過計算分析實現數據處理的一體化,例如在數據倉庫和數據湖領域發揮作用。
  • 微軟,賽貝斯和Vertica展開數據倉庫之爭
    本周的第一個公告來自軟體巨人-微軟公司,他們在TDWI大會上推出了其Fast Track Data Warehouse參考體系架構。將目前SQL Server現有的4千兆存儲容量擴展為32千兆存儲包,經過重新設計的數據倉庫有些類似甲骨文的Optimized Warehouses和IBM公司的Balanced Configuration Units。
  • 「零信任」安全體系架構和實踐
    02、傳統IT系統中的可信任驗證體系  傳統IT系統(如作業系統、資料庫以及其他各類信息化系統)幾乎都嚴格遵循了類似生活中可信任驗證的安全設計理念:每個人對於自己所擁有的一切具有任意處置權。比如:在Oracle資料庫中,Schema帳戶對於存儲在Schema下的所有對象擁有任意處置權,可以任意查詢、更新、刪除和清除。
  • 傳統數倉如何轉型大數據
    什麼是數據倉庫?》二、傳統數據倉庫開發傳統的數據倉庫用Oracle的居多,多半是單機或者一個雙機環境運行。本身硬體,系統都容易形成單點故障。慢慢發展,應該會開始通過存儲形成容災的一個環境。我了解的傳統的數據開發一般分為3個崗位:數據工程師、ETL工程師、數據倉庫架構師,大多數人屬於前兩者。
  • 數據湖與數據倉庫兩者之間區別
    儘管出現了基於Hadoop和其他一些大數據技術的數據湖這一概念,但隨著公司越來越需要從更多不同的源系統收集和分析業務數據,這使得數據倉庫仍然具有其實用價值,甚至比以前更加重要。   但作為數據管理體系結構的一部分,在對數據倉庫平臺進行投資之前,首先還是要檢查您的組織是否真的需要一個數據倉庫平臺,以及通過實施部署,組織可以藉此獲取哪些業務收益。