自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你數(shù)據(jù)倉庫建設(shè)

大數(shù)據(jù) 數(shù)據(jù)倉庫
經(jīng)過前面一系列的ETL過程(什么是ETL?一文掌握ETL設(shè)計過程),我們最終將數(shù)據(jù)裝載到數(shù)據(jù)倉庫中。

[[426986]]

本文轉(zhuǎn)載自微信公眾號「數(shù)倉寶貝庫」,作者范鋼 孫玄 。轉(zhuǎn)載本文請聯(lián)系數(shù)倉寶貝庫公眾號。

前面部分是對數(shù)據(jù)的采集,然后經(jīng)過ETL過程,最終存入數(shù)據(jù)倉庫。這部分是通過一切手段收集數(shù)據(jù),然而它的建設(shè)與數(shù)據(jù)應用需求無關(guān)。因為數(shù)據(jù)倉庫存儲的是過去數(shù)年的數(shù)據(jù),而數(shù)據(jù)應用需求總是在變。如果數(shù)據(jù)應用需求一變化,就需要修改數(shù)據(jù)倉庫的表結(jié)構(gòu),那么這數(shù)年的數(shù)據(jù)都必須要重新計算,系統(tǒng)就會始終處于一種十分不穩(wěn)定的狀態(tài),維護成本極高。所以,只有數(shù)據(jù)倉庫的建設(shè)與數(shù)據(jù)應用需求無關(guān),才能保證需求變更對數(shù)據(jù)倉庫沒有影響,才能讓系統(tǒng)穩(wěn)定運行。

后面部分是根據(jù)不同的數(shù)據(jù)分析需求,從數(shù)據(jù)倉庫中獲取數(shù)據(jù),完成各自的數(shù)據(jù)分析,將最終的分析結(jié)果寫入數(shù)據(jù)集市。數(shù)據(jù)集市的建設(shè)是與各自的數(shù)據(jù)分析的需求息息相關(guān)的,每次需求變更時,變更的是各自的數(shù)據(jù)集市,而不是數(shù)據(jù)倉庫。

01多維數(shù)據(jù)建模

經(jīng)過前面一系列的ETL過程(什么是ETL?一文掌握ETL設(shè)計過程),我們最終將數(shù)據(jù)裝載到數(shù)據(jù)倉庫中。數(shù)據(jù)倉庫是按照多維數(shù)據(jù)模型的思路進行建設(shè)的。在多維數(shù)據(jù)模型中,動態(tài)數(shù)據(jù)就轉(zhuǎn)化為了事實表,靜態(tài)數(shù)據(jù)就轉(zhuǎn)化為了維度表。進項發(fā)票事實表、銷項發(fā)票事實表都是事實表,但從其中關(guān)聯(lián)出來了日期維度表、納稅人維度表、稅務機關(guān)維度表、地域維度表與行業(yè)維度表。

多維數(shù)據(jù)模型的設(shè)計有兩種思路:雪花模型與星形模型,如下圖所示。

雪花模型與星形模型

左圖是雪花模型的設(shè)計,它最大的特點是在維度表上還要關(guān)聯(lián)維度表,如在納稅人維度表的基礎(chǔ)上還要關(guān)聯(lián)行業(yè)維度表。這樣設(shè)計比較容易理解,但會造成頻繁的join操作,在海量數(shù)據(jù)中降低查詢性能。譬如,要對進項發(fā)票進行地域的統(tǒng)計,就需要將進項發(fā)票事實表與納稅人維度表相關(guān)聯(lián),再關(guān)聯(lián)稅務機關(guān)維度表、地域維度表,才能完成,這極大影響了系統(tǒng)性能。因此,為了提升查詢性能,基于空間換時間的思想,我們又提出了星形模型。

右圖是星形模型的設(shè)計,它最大的特點是不會再有維度與維度的關(guān)聯(lián),而是所有維度表都只與事實表關(guān)聯(lián)。譬如對進項發(fā)票進行地域分析,只需要進項發(fā)票事實表關(guān)聯(lián)地域維度表就可以了,在海量數(shù)據(jù)中的性能將得到極大的提升。

接著,在以上事實表的基礎(chǔ)上,還可以從不同的維度與粒度對數(shù)據(jù)進行匯總,形成聚合表。譬如,對進項發(fā)票事實表按照行業(yè)進行匯總,或者按照地域進行匯總,形成“進項發(fā)票行業(yè)聚合表”與“進項發(fā)票地域聚合表”,等等。

以上的分析都是在“開票主題域”中進行的,但是按照業(yè)務流程,還有“申報主題域”“征收主題域”“稽查主題域”等,如下圖所示。這樣,數(shù)據(jù)中臺就按照業(yè)務模塊劃分為了多個主題域,然后在各個主題域進行多維建模,形成數(shù)據(jù)倉庫。但各個主題域可以擁有共同的維度表,如納稅人維度表、稅務機關(guān)維度表等。

主題域模型

02數(shù)據(jù)中臺的分層

數(shù)據(jù)中臺的建設(shè),除了按照主題域進行縱向劃分,還要通過分層進行橫向劃分。數(shù)據(jù)中臺通過分層,劃分為原始數(shù)據(jù)層(STAGE)、細節(jié)數(shù)據(jù)層(ODS/DWD)、輕度綜合層(MID/DWS)與數(shù)據(jù)集市層(DM),如下圖所示。每一層的數(shù)據(jù)都存儲在Hive數(shù)據(jù)庫中,然后通過Schema劃分出不同的層次。

數(shù)據(jù)中臺的系統(tǒng)分層

最底層是原始數(shù)據(jù)層(STAGE)。所有的原始數(shù)據(jù)都在這里,通過Schema進行劃分,來自哪個數(shù)據(jù)來源就存儲在哪個Schema中,并且表名與原始庫的表名一致。

接著是細節(jié)數(shù)據(jù)層(ODS/DWD),它是經(jīng)過ETL過程以后導入數(shù)據(jù)倉庫的事實表與維度表。ETL過程的中間臨時表存入名為etl的Schema,數(shù)據(jù)倉庫的事實表與維度表存入名為dw的Schema。同時,制訂命名規(guī)范,事實表以dw_fact_xxx命名,如訂單事實表dw_fact_order,維度表以dw_dim_xxx命名,如日期維度表dw_dim_date。

緊接著是輕度綜合層(MID/DWS),它是在事實表的基礎(chǔ)上按照不同維度與粒度形成的聚合表。聚合表以dw_agg_xxx命名,如進項發(fā)票按納稅人聚合表dw_agg_jxfp_nsr、進項發(fā)票按稅務機關(guān)聚合表dw_agg_jxfp_swjg等。

最后,是在數(shù)據(jù)倉庫之上的數(shù)據(jù)集市層(DM),它通過抽取前兩層中的事實表與聚合表的數(shù)據(jù),按照不同的用戶需求進行數(shù)據(jù)分析,最后形成數(shù)據(jù)結(jié)果。數(shù)據(jù)集市既包括最終結(jié)果表,也包括中間結(jié)果表。數(shù)據(jù)集市以dw_dm_xxx命名,如“購車人未繳納車輛購置稅預警”屬于“機動車消費稅”分析模塊,它需要計算出應免稅數(shù)據(jù)dw_dm_jdcxfs_ms,然后計算出未繳稅數(shù)據(jù)dw_dm_jdcxfs_wjs。大多數(shù)常規(guī)數(shù)據(jù)分析就是這樣通過SparkSQL進行的。

 

本書摘編自《架構(gòu)真意:企業(yè)級應用架構(gòu)設(shè)計方法論與實踐》,經(jīng)出版方授權(quán)發(fā)布。

 

責任編輯:武曉燕 來源: 數(shù)倉寶貝庫
相關(guān)推薦

2021-07-14 09:00:00

JavaFX開發(fā)應用

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2020-11-27 07:38:43

MongoDB

2017-05-18 12:45:35

數(shù)據(jù)分析數(shù)據(jù)理解數(shù)據(jù)

2011-04-21 10:32:44

MySQL雙機同步

2021-02-26 11:54:38

MyBatis 插件接口

2011-02-22 13:46:27

微軟SQL.NET

2021-12-28 08:38:26

Linux 中斷喚醒系統(tǒng)Linux 系統(tǒng)

2022-01-08 20:04:20

攔截系統(tǒng)調(diào)用

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2023-04-26 12:46:43

DockerSpringKubernetes

2022-12-07 08:42:35

2022-07-27 08:16:22

搜索引擎Lucene

2020-04-14 10:20:12

MySQL數(shù)據(jù)庫死鎖

2016-04-27 09:49:16

用戶模型產(chǎn)品總結(jié)

2021-08-04 08:55:02

Socket Java開發(fā)

2020-07-09 08:59:52

if else模板Service

2009-11-09 14:57:37

WCF上傳文件

2011-01-06 10:39:25

.NET程序打包
點贊
收藏

51CTO技術(shù)棧公眾號