天天看點

連載:阿裡巴巴大資料實踐—資料模組化綜述1.關系資料庫系統和資料倉庫2.從OLTP和OLAP系統的差別看模型方法論的選擇3.典型的資料倉庫模組化方法論

前言:

-更多關于數智化轉型、資料中台内容請加入

阿裡雲資料中台交流群—數智俱樂部 和關注官方微信公總号(文末掃描二維碼或 點此加入

-阿裡雲資料中台官網 https://dp.alibaba.com/index

來源:數智化轉型俱樂部

随着DT時代網際網路、智能裝置及其他資訊技術的發展,資料爆發式增長,如何将這些資料進行有序、有結構地分類組織和存儲是我們面臨的一個挑戰。

如果把資料看作圖書館裡的書,我們希望看到它們在書架上分門别類地放置;如果把資料看作城市的建築,我們希望城市規劃布局合理;如果把資料看作電腦檔案和檔案夾,我們希望按照自己的習慣有很好的檔案夾組織方式,而不是糟糕混亂的桌面,經常為找一個檔案而不知所措。

資料模型就是資料組織和存儲方法,它強調從業務、資料存取和使用角度合理存儲資料。Linux的創始人Torvalds有一段關于“什麼才是優秀程式員”的話:“爛程式員關心的是代碼,好程式員關心的是資料結構和它們之間的關系”,其闡述了資料模型的重要性。有了适合業務和基礎資料存儲環境的模型,那麼大資料就能獲得以下好處。

  • 性能:良好的資料模型能幫助我們快速查詢所需要的資料,減少資料的I/O吞吐。
  • 成本:良好的資料模型能極大地減少不必要的資料備援,也能實作計算結果複用,極大地降低大資料系統中的存儲和計算成本。
  • 效率:良好的資料模型能極大地改善使用者使用資料的體驗,提高使用資料的效率。
  • 品質:良好的資料模型能改善資料統計口徑的不一緻性,減少資料計算錯誤的可能性。

是以,毋庸置疑,大資料系統需要資料模型方法來幫助更好地組織和存儲資料,以便在性能、成本、效率和品質之間取得最佳平衡。

1.關系資料庫系統和資料倉庫

E .F .Codd是關系資料庫的鼻祖,他首次提出了資料庫系統的關系模型,開創了資料庫關系方法和關系資料理論的研究。随着一大批大型關系資料庫商業軟體(如Oracle、Informix、DB2等)的興起,現代企業資訊系統幾乎都使用關系資料庫來存儲、加工和處理資料。資料倉庫系統也不例外,大量的資料倉庫系統依托強大的關系資料庫能力存儲和處理資料,其采用的資料模型方法也是基于關系資料庫理論的。

雖然近年來大資料的存儲和計算基礎設施在分布式方面有了飛速的發展,NoSQL技術也曾流行一時,但是不管是Hadoop、Spark還是阿裡巴巴集團的MaxCompute系統,仍然在大規模使用SQL進行資料的加工和處理,仍然在用Table存儲資料,仍然在使用關系理論描述資料之間的關系,隻是在大資料領域,基于其資料存取的特點在關系資料模型的範式上有了不同的選擇而已。關于範式的詳細說明和定義,以及其他一些關系資料庫的理論是大資料領域模組化的基礎,有興趣的讀者可以參考相關的經典資料庫理論書籍,如《資料庫系統概念》。

2.從OLTP和OLAP系統的差別看模型方法論的選擇

OLTP系統通常面向的主要資料操作是随機讀寫,主要采用滿足3NF的實體關系模型存儲資料,進而在事務進行中解決資料的備援和一緻性問題;而OLAP系統面向的主要資料操作是批量讀寫,事務進行中的一緻性不是OLAP所關注的,其主要關注資料的整合,以及在一次性的複雜大資料查詢和進行中的性能,是以它需要采用一些不同的資料模組化方法。

3.典型的資料倉庫模組化方法論

ER模型

資料倉庫之父Bill Inmon提出的模組化方法是從全企業的高度設計一個3NF模型,用實體關系(Entity Relationship,ER)模型描述企業業務,在範式理論上符合3NF。資料倉庫中的3NF與OLTP系統中的3NF的差別在于,它是站在企業角度面向主題的抽象,而不是針對某個具體業務流程的實體對象關系的抽象。其具有以下幾個特點:

1)需要全面了解企業業務和資料;

2)實施周期非常長;

3)對模組化人員的能力要求非常高;

采用ER模型建設資料倉庫模型的出發點是整合資料,将各個系統中的資料以整個企業角度按主題進行相似性組合和合并,并進行一緻性處理,為資料分析決策服務,但是并不能直接用于分析決策。其模組化步驟分為三個階段:

1)高層模型:一個高度抽象的模型,描述主要的主題以及主題間的關系,用于描述企業的業務總體概況。

2)中層模型:在高層模型的基礎上,細化主題的資料項。

3)實體模型(也叫底層模型):在中層模型的基礎上,考慮實體存儲,同時基于性能和平台特點進行實體屬性的設計,也可能做一些表的合并、分區的設計等。

ER模型在實踐中最典型的代表是Teradata公司基于金融業務釋出的FS-LDM(Financial Services Logical Data Model),它通過對金融業務的高度抽象和總結,将金融業務劃分為10大主題,并以設計面向金融倉庫模型的核心為基礎,企業基于此模型做适當調整和擴充就能快速落地實施。

**次元模型

**

次元模型是資料倉庫領域的Ralph Kimball大師所倡導的,他的The Data Warehouse Toolkit-The Complete Guide to Dimensional Modeling是資料倉庫工程領域最流行的資料倉庫模組化的經典。

次元模組化從分析決策的需求出發構模組化型,為分析需求服務,是以它重點關注使用者如何更快速地完成需求分析,同時具有較好的大規模複雜查詢的響應性能。其典型的代表是星形模型,以及在一些特殊場景下使用的雪花模型。其設計分為以下幾個步驟。

選擇需要進行分析決策的業務過程。業務過程可以是單個業務事件,比如交易的支付、退款等;也可以是某個事件的狀态,比如目前的賬戶餘額等;還可以是一系列相關業務事件組成的業務流程,具體需要看我們分析的是某些事件發生情況,還是目前狀态,或是事件流轉效率。

1)選擇粒度:在事件分析中,我們要預判所有分析需要細分的程度,進而決定選擇的粒度。粒度是次元的一個組合。

2)識别維表:選擇好粒度之後,就需要基于此粒度設計維表,包括次元屬性,用于分析時進行分組和篩選。

3)選擇事實:确定分析需要衡量的名額。

Data Vault模型

Data Vault是Dan Linstedt發起建立的一種模型,它是ER模型的衍生,其設計的出發點也是為了實作資料的整合,但不能直接用于資料分析決策。它強調建立一個可審計的基礎資料層,也就是強調資料的曆史性、可追溯性和原子性,而不要求對資料進行過度的一緻性處理和整合;同時它基于主題概念将企業資料進行結構化組織,并引入了更進一步的範式處理來優化模型,以應對源系統變更的擴充性。Data Vault模型由以下幾部分組成。

1)Hub:是企業的核心業務實體,由實體key、資料倉庫序列代理鍵、裝載時間、資料來源組成。

2)Link:代表Hub之間的關系。這裡與ER模型最大的差別是将關系作為一個獨立的單元抽象,可以提升模型的擴充性。它可以直接描述1:1、1:n和n:n的關系,而不需要做任何變更。它由Hub的代理鍵、裝載時間、資料來源組成。

3)Satellite:是Hub的較長的描述内容,一個Hub可以有多個Satellite。它由Hub的代理鍵、裝載時間、來源類型、詳細的Hub描述資訊組成。

Data Vault模型比ER模型更容易設計和産出,它的ETL加工可實作配置化。通過Dan Linstedt的比喻更能了解Data Vault的核心思想:Hub可以想象成人的骨架,那麼Link就是連接配接骨架的韌帶,而Satellite就是骨架上面的血肉。看如下執行個體(來自Data Vault Modeling Guide,作者Hans Hultgren),如圖所示。

連載:阿裡巴巴大資料實踐—資料模組化綜述1.關系資料庫系統和資料倉庫2.從OLTP和OLAP系統的差別看模型方法論的選擇3.典型的資料倉庫模組化方法論

Data Vault模型執行個體

Anchor模型

Anchor對Data Vault模型做了進一步規範化處理,Lars. Rönnbäck的初衷是設計一個高度可擴充的模型,其核心思想是所有的擴充隻是添加而不是修改,是以将模型規範到6NF,基本變成了k-v結構化模型。我們看一下Anchor模型的組成。

1)Anchors:類似于Data Vault的Hub,代表業務實體,且隻有主鍵。

2)Attributes:功能類似于Data Vault的Satellite,但是它更加規範化,将其全部k-v結構化,一個表隻有一個Anchors的屬性描述。

3)Ties:就是Anchors之間的關系,單獨用表來描述,類似于Data Vault的Link,可以提升整體模型關系的擴充能力。

4)Knots:代表那些可能會在多個Anchors中公用的屬性的提煉,比如性别、狀态等這種枚舉類型且被公用的屬性。

在上述四個基本對象的基礎上,又可以細劃分為曆史的和非曆史的,其中曆史的會以時間戳加多條記錄的方式記錄資料的變遷曆史。

Anchor模型的建立者以此方式來擷取極大的可擴充性,但是也會增加非常多的查詢join操作。建立者的觀點是,資料倉庫中的分析查詢隻是基于一小部分字段進行的,類似于列存儲結構,可以大大減少資料掃描,進而對查詢性能影響較小。一些有資料表裁剪(Table Elimination)特性的資料庫如MariaDB的出現,還會大量減少join操作。但是實際情況是不是如此,還有待商榷。下面是一個Anchor模型圖(來自Anchor Modeling-Agile Information Modeling in Evolving Data Environments,作者Lars. Rönnbäck),如圖所示。

連載:阿裡巴巴大資料實踐—資料模組化綜述1.關系資料庫系統和資料倉庫2.從OLTP和OLAP系統的差別看模型方法論的選擇3.典型的資料倉庫模組化方法論

節選自《大資料之路:阿裡巴巴大資料實踐》已受版權保護,未經授權不得轉載

連載1:阿裡巴巴大資料實踐—資料開發平台>> 連載2:阿裡巴巴大資料實踐—實時技術>> 連載3:阿裡巴巴大資料實踐—資料服務>> 連載4:阿裡巴巴大資料實踐—資料模組化綜述 連載5:阿裡巴巴大資料實踐—阿裡巴巴的資料模型實踐綜述>>

資料中台是企業數智化的新基建,阿裡巴巴認為資料中台是集方法論、工具、組織于一體的,“快”、“準”、“全”、“統”、“通”的智能大資料體系。目前正通過阿裡雲資料中台解決方案對外輸出,包括

零售

金融 網際網路 政務

等領域,其中核心産品有:

官方站點:

資料中台官網

https://dp.alibaba.com
連載:阿裡巴巴大資料實踐—資料模組化綜述1.關系資料庫系統和資料倉庫2.從OLTP和OLAP系統的差別看模型方法論的選擇3.典型的資料倉庫模組化方法論