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

數(shù)倉建?!獙挶淼脑O(shè)計(jì)

運(yùn)維 數(shù)據(jù)庫運(yùn)維
寬表主要出現(xiàn)在dwd 層和報(bào)表層,當(dāng)然有的人說dws 層也有,寬表,從字面意義上講就是字段比較多的數(shù)據(jù)庫表,通常情況下是將很多相關(guān)的數(shù)據(jù)包括維度表、實(shí)時(shí)、已有的指標(biāo)或者是dws/dwd 表關(guān)聯(lián)在一起形成的一張數(shù)據(jù)表。
本文轉(zhuǎn)載自微信公眾號(hào)「大數(shù)據(jù)技術(shù)派」,作者大數(shù)據(jù)技術(shù)派 。轉(zhuǎn)載本文請(qǐng)聯(lián)系大數(shù)據(jù)技術(shù)派公眾號(hào)。
  • 寬表的設(shè)計(jì)
    • 為什么要建設(shè)寬表
    • 寬表的好處和不足
    • 如何設(shè)計(jì)寬表
  • 總結(jié)

寬表的設(shè)計(jì)

其實(shí)寬表是數(shù)倉里面非常重要的一塊,前面我們介紹過了維度表事實(shí)表,今天我們介紹一下寬表,前面我們說過了數(shù)倉是分層的,這是技術(shù)進(jìn)步和時(shí)代變化相結(jié)合的產(chǎn)物,數(shù)倉的分層式為了更好地管理數(shù)倉以及更加高效地進(jìn)行數(shù)據(jù)開發(fā)。

寬表主要出現(xiàn)在dwd 層和報(bào)表層,當(dāng)然有的人說dws 層也有,寬表,從字面意義上講就是字段比較多的數(shù)據(jù)庫表,通常情況下是將很多相關(guān)的數(shù)據(jù)包括維度表、實(shí)時(shí)、已有的指標(biāo)或者是dws/dwd 表關(guān)聯(lián)在一起形成的一張數(shù)據(jù)表。

由于把不同的內(nèi)容都放在同一張表存儲(chǔ),寬表已經(jīng)不符合范式設(shè)計(jì)的模型設(shè)計(jì)規(guī)范而且數(shù)倉里面也不強(qiáng)調(diào)范式設(shè)計(jì),隨之帶來的就是數(shù)據(jù)的大量冗余,與之相對(duì)應(yīng)的好處就是查詢性能的提高與便捷。

分層 請(qǐng)參考 數(shù)倉建模—分層建設(shè)理論

設(shè)計(jì) 請(qǐng)參考 數(shù)倉建模—建模方法論

為什么要建設(shè)寬表

就像我們前面說過分層的目的是為了管理方便、開發(fā)高效、問題定位、節(jié)約資源等等,那么我們建設(shè)寬表呢?前面學(xué)習(xí)建模方法論的時(shí)候,提到過維度模型的非強(qiáng)范式的,可以更好的利用大數(shù)據(jù)處理框架的處理能力,避免范式操作的過多關(guān)聯(lián)操作,可以實(shí)現(xiàn)高度的并行化。數(shù)據(jù)倉庫大多數(shù)時(shí)候是比較適合使用星型模型構(gòu)建底層數(shù)據(jù)Hive表,通過大量的冗余來提升查詢效率,星型模型對(duì)OLAP的分析引擎支持比較友好,這一點(diǎn)在Kylin中比較能體現(xiàn)。

可以更好的發(fā)揮大數(shù)據(jù)框架的能力

維度模型可以更好地利用大數(shù)據(jù)框架,體現(xiàn)在哪里的,體現(xiàn)在數(shù)據(jù)數(shù)據(jù)冗余,可以避免很多的關(guān)聯(lián),怎么體現(xiàn)的呢,寬表。但是這只是站在大數(shù)據(jù)框架層面上的理解,還有其他層面上的理解。

可以提高開發(fā)效率

一般情況下,我們的寬表包含了很多相關(guān)的數(shù)據(jù),如果我們?cè)趯挶淼幕A(chǔ)上做一些開發(fā),那就很方便,我們直接從寬表里面取數(shù)據(jù),避免了我們從頭計(jì)算,你設(shè)想一下你要是沒次都從ods開發(fā)一張報(bào)表,那是多痛苦的體驗(yàn)啊。

可以提高數(shù)據(jù)質(zhì)量

寬表的準(zhǔn)確性,一般都是經(jīng)歷了時(shí)間的檢驗(yàn)的,邏輯錯(cuò)誤的可能性很小,可以直接使用,要是讓你從頭開發(fā),那這個(gè)過程中可能因?yàn)閷?duì)業(yè)務(wù)理解不透徹或者是書寫的邏輯不正確,導(dǎo)致有數(shù)據(jù)質(zhì)量問題

可以統(tǒng)一指標(biāo)口徑

其實(shí)這一點(diǎn)和上面一點(diǎn)有點(diǎn)重復(fù),但是這兩點(diǎn)的強(qiáng)調(diào)的方面是不一樣的,因?yàn)槿绻覀兊膱?bào)表要是都能從我們的底層寬表出,那么我們報(bào)表上的指標(biāo)肯定是一樣的,其實(shí)這一點(diǎn)我相信很多人都深有體會(huì),同一個(gè)指標(biāo)的口徑不一致,導(dǎo)致我們提供的數(shù)據(jù)在不同的出口不一樣,是業(yè)務(wù)部門經(jīng)常提出的一個(gè)問題。其實(shí)這也就是我們一直強(qiáng)調(diào)的核心邏輯下沉的原因。

寬表的好處和不足

寬表的好處就是我們前面提到過的我們?yōu)槭裁匆ㄔO(shè)寬表的原因,接下來我們看一下寬表的不足

性能不高

因?yàn)槲覀兊膶挶淼挠?jì)算邏輯往往很復(fù)雜,再加上寬表的數(shù)據(jù)輸入是有大量依賴的,也就是說需要處理的數(shù)據(jù)量很大,在負(fù)載邏輯+大數(shù)據(jù)量的原因下,導(dǎo)致我們的寬表往往運(yùn)行很慢,資源占用很多,尤其是重跑的時(shí)候。

穩(wěn)定性不高

下面的最后一張表就是一張寬表,我們知道一個(gè)系統(tǒng)的穩(wěn)定性是取決于最差的一個(gè)環(huán)節(jié)的,這就是短板理論也叫木桶理論,我們的寬表的穩(wěn)定性也是很差的,這個(gè)主要是因?yàn)槲覀兊膶挶硪蕾囂?,每一個(gè)表的不穩(wěn)定性都會(huì)傳到到寬表。

假設(shè) 一張表依賴A B C 三張表,并且這三張表的穩(wěn)定性是 1/m 1/n 1/x,那么我們的寬表的穩(wěn)定性就是 1/m*n*x ,至于表的穩(wěn)定性你可用它成功運(yùn)行的次數(shù)/運(yùn)行的總次數(shù)

如果性能不高和穩(wěn)定性不高同時(shí)作用在一件事上的時(shí)候我們知道這其實(shí)是很致命的,例如你發(fā)現(xiàn)報(bào)表數(shù)據(jù)有問題,但是重跑需要幾個(gè)小時(shí),哈哈!

開發(fā)難度大/維護(hù)成本高

我們說了基于寬表做報(bào)表開發(fā)才是正確的姿勢(shì),但是寬表本身也是我們開發(fā)人員開發(fā)的,因?yàn)楸旧淼倪壿嫼軓?fù)雜設(shè)計(jì)的業(yè)務(wù)邏輯繁多,所以給我們的開發(fā)就帶來了挑戰(zhàn),而且由于業(yè)務(wù)邏輯的變更我們也需要去維護(hù)著復(fù)雜的邏輯,例如每次都讓你在幾千行的SQL 里面加邏輯。

如何設(shè)計(jì)寬表

寬表的好處和不足我們都講了,也就是說寬表雖好,但是帶來的問題也很多,下面我們就看一下如何從設(shè)計(jì)的角度來避免寬表的不足之處

寬表到底多寬

開始之前,我們思考一個(gè)問題,那就是寬表到底有多寬,就想我們前面講分層的時(shí)候說其實(shí)我們不分層也玩得轉(zhuǎn),早起的數(shù)倉就只有一層,現(xiàn)在我們考慮一個(gè)問題那就是寬表到底多寬才合適,其實(shí)你要把所有的數(shù)據(jù)裝進(jìn)去也可以。

所以我們要思考到底多寬才合適的,前面我們介紹過數(shù)據(jù)域的概念,我們與其回答多寬這個(gè)問題,不如回答寬表都應(yīng)該覆蓋哪些數(shù)據(jù),但是這個(gè)問題也不好回答,但是我們可以反著思考,寬表不應(yīng)該包含什么數(shù)據(jù),這個(gè)問題很好回答,寬表不應(yīng)該包含不屬于它所在域的數(shù)據(jù),例如會(huì)員域的寬表只應(yīng)該包含會(huì)員相關(guān)的信息,同理我們的寬表是針對(duì)某一個(gè)域而言的,也就是說它是有邊界的。

這下我們?cè)賮砘卮饘挶淼降锥鄬挘灰豢缬?,并且方便使用都是合理的。但是這似乎并不能解決我們上面提到的寬表的不足,只是指明了寬表的一個(gè)大致的方向。有了方向之后我們通過我們的設(shè)計(jì)策略就可以讓寬表瘦下來。

主次分類

主次分離,其實(shí)我們經(jīng)常聽到的一句話就是做事情要搞清楚主次,我們看一下表設(shè)計(jì)的主次是什么,假設(shè)我們做的是一個(gè)會(huì)員域的寬表,但是會(huì)員域是還是一個(gè)比較大的概念,所以我們還要發(fā)掘出我們這個(gè)表的主題,例如我們做的是一張會(huì)員域下的會(huì)員基本信息寬表,那么我們專注的肯定就是基本信息,例如會(huì)員信息打通。當(dāng)讓因?yàn)槭聦挶砟憧赡苓€會(huì)冗余的其他信息進(jìn)來,但是當(dāng)這樣的信息越來越多的時(shí)候,我們這張表的主題就越來越弱,所以我們就需要做拆分。

拆分可以讓我們更加聚焦表的主題,對(duì)于數(shù)倉開發(fā)人員而言可以更好的維護(hù)、對(duì)于使用方而言可以更加清楚的理解這張表的主題。

冷熱分離

除了前面的主次分離我們還可以做冷熱分離,其實(shí)冷熱分離這個(gè)詞我相信你不是第一次聽到,但是怎么看這個(gè)事情呢,你想一下你在數(shù)據(jù)存儲(chǔ)的時(shí)候是怎么做冷熱分離的,這里也是同樣的理念。

假設(shè)我有一張寬表,里面有200個(gè)字段,有30張報(bào)表在使用它,但是我發(fā)現(xiàn)前面150個(gè)經(jīng)常字段經(jīng)常被使用,后面 50個(gè)字段只有一兩張報(bào)表使用到了,那么我們就可以做一個(gè)冷熱分離,將寬表拆分。

穩(wěn)定與不穩(wěn)定分離

其實(shí)前面的主次分離、冷熱分離都可以提高穩(wěn)定性,但是前面我們不是為了穩(wěn)定性分離的。

我們經(jīng)常有這樣的寬表,它依賴埋點(diǎn)數(shù)據(jù),但是我們的埋點(diǎn)數(shù)據(jù)的特點(diǎn)就是量大,導(dǎo)致計(jì)算經(jīng)常延遲,那么我們的寬表就會(huì)受影響,從而我們的報(bào)表就受影響,但是很多時(shí)候你發(fā)現(xiàn)報(bào)表根本沒有用過埋點(diǎn)計(jì)算出來的指標(biāo),或者是只用了一兩個(gè)。那我們可以將其拆分,如果報(bào)表沒有使用到那就最好了,如果使用到了,那就后推,在報(bào)表層面上做關(guān)聯(lián),這樣我們的埋點(diǎn)數(shù)據(jù)即使出不來,我們的報(bào)表數(shù)據(jù)還是可以看的。

總結(jié)

主要講解了一下幾個(gè)方面

  • 為什么要建設(shè)寬表
  • 寬表的不足
  • 如何設(shè)計(jì)寬表
    • 寬表到底多寬
    • 主次分離
    • 冷熱分類
    • 穩(wěn)定與不穩(wěn)定分類 

設(shè)計(jì)寬表的理論其實(shí)說白了就是一句話高內(nèi)聚低耦合,當(dāng)然這幾個(gè)字你在其他領(lǐng)域可能很熟悉了,但是這里你就好好思考一下才能想通,我一直新信奉的是一力降十會(huì) 一拙破萬巧 也就是說你要學(xué)會(huì)根本的東西,才能舉一反三破萬難。

 

責(zé)任編輯:武曉燕 來源: 大數(shù)據(jù)技術(shù)派
相關(guān)推薦

2021-08-11 07:53:22

數(shù)倉維度建模

2022-03-01 17:16:16

數(shù)倉建模ID Mapping

2024-04-30 00:00:00

數(shù)倉維度建模

2023-08-15 08:12:12

數(shù)倉建模數(shù)倉建設(shè)

2021-01-04 05:42:48

數(shù)倉模型設(shè)計(jì)

2023-11-23 16:59:37

數(shù)據(jù)倉庫建模

2024-05-22 09:48:04

2022-08-22 17:46:56

虛擬數(shù)倉Impala

2022-07-26 15:38:58

數(shù)據(jù)倉數(shù)據(jù)治理數(shù)據(jù)團(tuán)隊(duì)

2022-11-04 18:28:31

數(shù)倉建模大數(shù)據(jù)

2021-01-31 23:54:23

數(shù)倉模型

2024-04-16 07:18:54

指標(biāo)平臺(tái)數(shù)倉數(shù)智化分析

2023-02-20 07:33:47

Teradata數(shù)據(jù)倉庫

2021-10-13 07:23:03

數(shù)據(jù)同步倉庫

2023-01-03 17:43:39

網(wǎng)易郵箱數(shù)倉

2022-08-16 14:17:50

數(shù)據(jù)倉庫數(shù)據(jù)治理數(shù)據(jù)職場

2023-10-26 06:43:25

2023-11-23 16:53:56

數(shù)據(jù)倉庫大數(shù)據(jù)

2022-02-18 09:02:04

數(shù)據(jù)倉庫治理
點(diǎn)贊
收藏

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