1、概念
數(shù)據(jù)倉(cāng)庫(kù):是一種數(shù)據(jù)管理系統(tǒng),旨在為整個(gè)組織的商務(wù)智能和分析提供支持。數(shù)據(jù)倉(cāng)庫(kù)通常包含大量數(shù)據(jù),包括歷史數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)一般來(lái)自應(yīng)用日志文件和事務(wù)應(yīng)用等廣泛來(lái)源。數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),其用途通常已明確定義。
數(shù)據(jù)湖:讓組織存儲(chǔ)大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)(例如,來(lái)自社交媒體或點(diǎn)擊流數(shù)據(jù)),并立即使其可用于實(shí)時(shí)分析、數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)用例。借助數(shù)據(jù)湖,無(wú)需進(jìn)行更改,數(shù)據(jù)以原始形式攝取。
數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)之間的主要區(qū)別在于,前者在沒(méi)有預(yù)定義結(jié)構(gòu)的情況下存儲(chǔ)大量原始數(shù)據(jù)。組織不需要提前知道數(shù)據(jù)的用途。
數(shù)據(jù)集市:是一種簡(jiǎn)單的數(shù)據(jù)倉(cāng)庫(kù)形式,側(cè)重于單個(gè)主題或業(yè)務(wù)線,例如銷售、財(cái)務(wù)或營(yíng)銷。由于用途單一,數(shù)據(jù)集市從比數(shù)據(jù)倉(cāng)庫(kù)更少的來(lái)源中獲取數(shù)據(jù)。 數(shù)據(jù)集市源可以包括內(nèi)部操作系統(tǒng)、中央數(shù)據(jù)倉(cāng)庫(kù)和外部數(shù)據(jù)。數(shù)據(jù)集市源可以包括內(nèi)部操作系統(tǒng)、中央數(shù)據(jù)倉(cāng)庫(kù)和外部數(shù)據(jù)。
腦圖地址:https://www.processon.com/v/6498ed2d42fb7c0083371120
2、數(shù)倉(cāng)特點(diǎn)
特點(diǎn): 面向主題、繼承性、穩(wěn)定性
意義: 建議公司統(tǒng)一數(shù)據(jù)中心,為數(shù)據(jù)BP、運(yùn)營(yíng)人員提供數(shù)據(jù)支持,為領(lǐng)導(dǎo)提供決策支持
與傳統(tǒng)數(shù)據(jù)庫(kù)對(duì)比
類型 | 面向內(nèi)容 | 數(shù)據(jù)存儲(chǔ) | 模型建設(shè) |
---|---|---|---|
數(shù)據(jù)庫(kù) | 事物 | 當(dāng)前最新數(shù)據(jù) | 三范式 |
數(shù)據(jù)倉(cāng)庫(kù) | 主題、分析 | 歷史數(shù)據(jù) | 星型模型 |
3、數(shù)倉(cāng)建模架構(gòu)
3.1、數(shù)據(jù)集市
????早期數(shù)據(jù)集市也不是之前單獨(dú)按照每個(gè)部門(mén)去搭建的,容易出現(xiàn)數(shù)據(jù)不一致的情況,且無(wú)法水平對(duì)比。從屬數(shù)據(jù)集市基于搭建好的企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù),可以有效消除各部門(mén)數(shù)據(jù)不一致的情況。
3.2、Inmon 架構(gòu)(范式建模)
????Inmon架構(gòu),也稱為Bill Inmon架構(gòu),是一種用于構(gòu)建企業(yè)數(shù)據(jù)倉(cāng)庫(kù)(Enterprise Data Warehouse,簡(jiǎn)稱EDW)的數(shù)據(jù)架構(gòu)和方法論。它由Bill Inmon在20世紀(jì)80年代提出,并被廣泛應(yīng)用于數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)和實(shí)施。
????Inmon架構(gòu)的核心思想是將企業(yè)數(shù)據(jù)倉(cāng)庫(kù)視為一個(gè)集成的、一致的數(shù)據(jù)存儲(chǔ),用于支持企業(yè)級(jí)的數(shù)據(jù)分析和決策。它強(qiáng)調(diào)以主題為導(dǎo)向的數(shù)據(jù)建模,將數(shù)據(jù)組織成以業(yè)務(wù)主題為中心的維度模型(Dimensional Model),如星型模型(Star Schema)或雪花模型(Snowflake Schema)
????Inmon 架構(gòu)的核心思想是以企業(yè)范圍的一致性為基礎(chǔ),將數(shù)據(jù)倉(cāng)庫(kù)建設(shè)為一個(gè)集中式的、集成的數(shù)據(jù)存儲(chǔ)和分析平臺(tái)。以下是 Inmon 架構(gòu)的一些關(guān)鍵特點(diǎn):
- Inmon架構(gòu)的數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)的是最細(xì)粒度的數(shù)據(jù)
- Inmon架構(gòu)的數(shù)據(jù)倉(cāng)庫(kù)是符合三范式的
- Inmon架構(gòu)的數(shù)據(jù)只能從數(shù)據(jù)集市獲取,不能跨過(guò)數(shù)據(jù)集市直接從企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)中獲取。
3.3、Kimball 架構(gòu)(維度建模)
????Kimball架構(gòu),也稱為Ralph Kimball架構(gòu),是一種用于構(gòu)建企業(yè)數(shù)據(jù)倉(cāng)庫(kù)(Enterprise Data Warehouse,簡(jiǎn)稱EDW)的數(shù)據(jù)架構(gòu)和方法論。它由Ralph Kimball在20世紀(jì)90年代提出,并被廣泛應(yīng)用于數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)和實(shí)施。
????Kimball架構(gòu)的核心思想是以業(yè)務(wù)過(guò)程為中心構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),強(qiáng)調(diào)以維度建模為基礎(chǔ),通過(guò)維度模型(Dimensional Model)來(lái)組織數(shù)據(jù)。維度模型由事實(shí)表(Fact Table)和與之關(guān)聯(lián)的維度表(Dimension Table)組成,通過(guò)共享維度表實(shí)現(xiàn)數(shù)據(jù)的集成和共享。
????如上圖所示,可以發(fā)現(xiàn) Kimball 架構(gòu)使用多維模型設(shè)計(jì),所以分為事實(shí)表和維表,我們?cè)谑褂脭?shù)據(jù)的時(shí)候,可以直接查詢數(shù)據(jù)倉(cāng)庫(kù)里面的數(shù)據(jù),Kimball 架構(gòu)的數(shù)據(jù)倉(cāng)庫(kù)是沒(méi)有實(shí)際存在數(shù)據(jù)集市的,如果非要區(qū)分,可以通過(guò)主題域劃分獲取自己的數(shù)據(jù)集市。
3.3.1、表分區(qū)
3.3.1.1、事實(shí)表
-
事物事實(shí)表
定義:事務(wù)事實(shí)表保留的是最原始的數(shù)據(jù),所以其實(shí)也叫做原子事實(shí)表。
舉例:比如下單,政府,發(fā)貨等這些業(yè)務(wù)過(guò)程構(gòu)建的一類事實(shí)表,由于是最細(xì)粒度的數(shù)據(jù),所以我們可以根據(jù)這些數(shù)據(jù)做各種各樣的數(shù)據(jù)分析。
特性:多種方式表達(dá)粒度、稀疏(當(dāng)天發(fā)生才會(huì)有數(shù)據(jù))、事實(shí)完全可加、插入、可以每日分區(qū)白柳當(dāng)天數(shù)據(jù)或全量快照表。 -
周期快照事實(shí)表
定義:周期快照事實(shí)表的粒度和事物事實(shí)表不太一樣,一般以維度屬性進(jìn)行聲明,然后結(jié)合時(shí)間間隔。
舉例:比如歷史到現(xiàn)在的訂單量,昨天的好評(píng)數(shù)等,昨天浙江的支付總金額等,時(shí)間間隔不是固定不變的,可以是每天、每月、每周、近7天、近15天等。
特性:維度+周期聲明粒度、粘稠(重要特性,當(dāng)天未發(fā)生,但是歷史至今發(fā)生過(guò),也會(huì)記錄)、至少一個(gè)半可加事實(shí)(比如近7天的銷售額不能相加,但是可以計(jì)算一下平均值)、插入、每日分區(qū)保留當(dāng)天統(tǒng)計(jì)的該周期內(nèi)的數(shù)據(jù),之后不再修改,除非口徑變動(dòng)。 -
累計(jì)快照事實(shí)表
定義:累計(jì)快照事實(shí)表,將需要分析的各個(gè)行業(yè)過(guò)程的事實(shí)放到一個(gè)表中進(jìn)行分析。
舉例:比如:下單、支付、發(fā)貨、簽收等,我們會(huì)把這4個(gè)業(yè)務(wù)的事實(shí)放入到事實(shí)表中(包括每個(gè)過(guò)程發(fā)生的時(shí)間)。
特性:多種方式表達(dá)粒度、事實(shí)完全可加、維度退化(數(shù)據(jù)探查、數(shù)據(jù)分析)、插入與更新、每天保留全量數(shù)據(jù)(全量快照表)
3.3.1.2、維度表
3.3.1.2.1、維表設(shè)計(jì)步驟
選擇維度:指的是我們的事實(shí)表需要關(guān)聯(lián)哪些維度,比如健身房的私教課事實(shí)表,我們可能需要確定教練維度。
確定主維表:選擇了教練維度,我們就要確認(rèn)教練維度的主維表了,這種情況一般是業(yè)務(wù)庫(kù)抽過(guò)來(lái)的教練基本信息表。
確定關(guān)聯(lián)維表:這個(gè)也不一定有,有的話就需要關(guān)聯(lián)一下,比如教練的課時(shí)安排等。
確定維度屬性:這個(gè)就比較重要了,涉及到我們最終的維表的屬性值,這個(gè)不但需要自己進(jìn)行權(quán)衡,也可能需要與業(yè)務(wù)方,需求方進(jìn)行溝通,防止近期可預(yù)見(jiàn)的屬性值缺失,到時(shí)候后期再進(jìn)行迭代。
3.3.1.2.2、維度設(shè)計(jì)的建議
- 盡可能多給出一些維度屬性避免后期頻繁迭代。
- 盡量描述性的文字也給出,比如商品id,商品名稱等。
- 區(qū)分?jǐn)?shù)字類型的屬性,如單價(jià)
- 沉淀出通用的維度屬性,一般指不能直接獲取,需要我們后期加工的屬性,減少在使用過(guò)程中的重復(fù)開(kāi)發(fā)或者維度不一致的情況,比如當(dāng)前是否vip
3.3.1.2.3、主鍵設(shè)計(jì)
????在數(shù)據(jù)庫(kù)設(shè)計(jì)中,主鍵是用于唯一標(biāo)識(shí)表中每個(gè)記錄的一列或一組列。它在表中具有唯一性和非空性的特征,用于確保數(shù)據(jù)的唯一性和有效性。主鍵可以幫助快速查找和關(guān)聯(lián)表中的數(shù)據(jù)。
-
代理鍵(Surrogate Key)
是一種人為創(chuàng)建的人工主鍵,與業(yè)務(wù)數(shù)據(jù)無(wú)直接關(guān)聯(lián)。它通常采用自增長(zhǎng)的整數(shù)或全局唯一標(biāo)識(shí)符(GUID)等形式生成。代理鍵是通過(guò)引入一個(gè)新的列來(lái)實(shí)現(xiàn),其目的是為了簡(jiǎn)化數(shù)據(jù)模型的設(shè)計(jì)和提高數(shù)據(jù)操作的效率。
代理鍵的優(yōu)點(diǎn)包括:
唯一性:代理鍵保證了每個(gè)記錄都有一個(gè)唯一的標(biāo)識(shí)符,不會(huì)出現(xiàn)重復(fù)的情況。
簡(jiǎn)化設(shè)計(jì):使用代理鍵可以避免在主鍵中使用多個(gè)業(yè)務(wù)屬性組合的復(fù)雜性,簡(jiǎn)化了數(shù)據(jù)模型的設(shè)計(jì)。
效率:代理鍵通常采用簡(jiǎn)單的遞增或隨機(jī)生成方式,不依賴于業(yè)務(wù)數(shù)據(jù)的特性,能夠提高數(shù)據(jù)插入和查詢的效率。 -
自然鍵(Natural Key)
是指已經(jīng)存在于業(yè)務(wù)數(shù)據(jù)中的屬性或組合,可以作為主鍵來(lái)唯一標(biāo)識(shí)記錄。自然鍵通常與業(yè)務(wù)實(shí)體的屬性相關(guān),如身份證號(hào)碼、商品編號(hào)、訂單號(hào)等。
自然鍵的優(yōu)點(diǎn)包括:
業(yè)務(wù)相關(guān)性:自然鍵直接關(guān)聯(lián)于業(yè)務(wù)實(shí)體,能夠更直觀地表示數(shù)據(jù)的含義。
無(wú)需額外列:使用自然鍵作為主鍵,不需要額外引入代理鍵列,簡(jiǎn)化了數(shù)據(jù)模型的設(shè)計(jì)。
數(shù)據(jù)一致性:自然鍵的值已經(jīng)存在于業(yè)務(wù)數(shù)據(jù)中,能夠確保數(shù)據(jù)的一致性和有效性。
然而,自然鍵也存在一些潛在的問(wèn)題:
可變性:某些自然鍵的值可能會(huì)發(fā)生變化,如商品名稱、手機(jī)號(hào)碼等,這會(huì)對(duì)數(shù)據(jù)的引用完整性產(chǎn)生影響。
復(fù)雜性:某些業(yè)務(wù)實(shí)體可能沒(méi)有明確的自然鍵,或者自然鍵的組合可能很復(fù)雜,導(dǎo)致數(shù)據(jù)模型設(shè)計(jì)復(fù)雜化。
性能問(wèn)題:使用自然鍵作為主鍵可能會(huì)導(dǎo)致索引和關(guān)聯(lián)操作的性能下降,特別是當(dāng)自然鍵的長(zhǎng)度較長(zhǎng)時(shí)。
????在設(shè)計(jì)數(shù)據(jù)庫(kù)表時(shí),應(yīng)根據(jù)具體業(yè)務(wù)需求和數(shù)據(jù)特點(diǎn)選擇合適的主鍵策略,綜合考慮代理鍵和自然鍵的優(yōu)缺點(diǎn),并權(quán)衡其對(duì)數(shù)據(jù)模型設(shè)計(jì)、數(shù)據(jù)操作效率和數(shù)據(jù)一致性的影響。
3.3.1.2.4、緩慢變化維 SCD
????緩慢變化維(Slowly Changing Dimension,SCD)是指在數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)庫(kù)中用于管理維度表中數(shù)據(jù)變化的一種方法。維度表包含描述業(yè)務(wù)實(shí)體的屬性,如產(chǎn)品、客戶、地理位置等。而 SCD 方法則用于處理這些維度表中數(shù)據(jù)的變化情況。
????在數(shù)據(jù)倉(cāng)庫(kù)中,維度數(shù)據(jù)可能會(huì)隨著時(shí)間的推移發(fā)生變化。SCD 方法旨在處理這些變化,以便在查詢和分析時(shí)能夠準(zhǔn)確地反映出歷史數(shù)據(jù)和當(dāng)前數(shù)據(jù)的狀態(tài)。一般分為以下幾種情況:
-
屬性值不變
什么都不用改,就用歷史的維度屬性值。 -
重寫(xiě)維度屬性值
只能反應(yīng)最新的情況,無(wú)法保留維度屬性的歷史值,對(duì)于歷史變化,這種方案是無(wú)法實(shí)現(xiàn)的。 -
拉鏈表
拉鏈表(Zipper List)是一種用于實(shí)現(xiàn)緩慢變化維度(SCD)的數(shù)據(jù)結(jié)構(gòu),常用于數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)庫(kù)中的維度表設(shè)計(jì)。它的目的是有效地跟蹤和記錄維度數(shù)據(jù)的歷史變化。拉鏈表通過(guò)在維度表中添加起始日期和結(jié)束日期列,以及一個(gè)標(biāo)識(shí)當(dāng)前記錄的標(biāo)志列(如“當(dāng)前”或“有效”標(biāo)志),來(lái)記錄維度數(shù)據(jù)的有效時(shí)間段。每當(dāng)維度數(shù)據(jù)發(fā)生變化時(shí),會(huì)在維度表中添加新的記錄,并更新前一個(gè)記錄的結(jié)束日期。 -
增加維度行
當(dāng)某個(gè)維度表中的某個(gè)屬性發(fā)生變化時(shí),為了保留歷史變化記錄,需要向維度表中添加新的行來(lái)表示新的數(shù)據(jù)狀態(tài)。 -
增加新屬性
這種方法是在維度表中增加新的屬性列來(lái)表示維度數(shù)據(jù)的變化。當(dāng)維度數(shù)據(jù)的某個(gè)屬性發(fā)生變化時(shí),不添加新的行,而是在維度表中添加一個(gè)新的列來(lái)存儲(chǔ)新的屬性值。舊的行和其他屬性保持不變。 -
全量快照
什么都不用改,每天保留一份全量快照表,這種方式是最簡(jiǎn)單最容易理解的,唯一缺點(diǎn)就是存儲(chǔ)成本比較高。
3.3.1.2.5、維表的整合與拆分
3.3.1.2.5.1、整合
-
垂直整合
選擇一個(gè)主維度表,把其他的相關(guān)維度表的屬性關(guān)聯(lián)上去,可以豐富主維表的維度屬性,方便使用,減少關(guān)聯(lián) -
水平整合
把具有相同維度屬性的相關(guān)表可以整合到一張表中,方便管理
3.3.1.2.5.2、拆分
-
垂直拆分
定義:由于維度各屬性的產(chǎn)出時(shí)間、熱度、訪問(wèn)頻率不一樣,也有些維度經(jīng)常變化,有些基本不會(huì)變化,所以在這種情況下,為了維表最優(yōu)化,我們應(yīng)該做一些垂直拆分的工作。
場(chǎng)景再現(xiàn):
不常用屬性:不常用屬性或者訪問(wèn)頻率非常低,一年難得訪問(wèn)一次。
當(dāng)前是否核心屬性:比如爬蟲(chóng)數(shù)據(jù),爬蟲(chóng)每天上午 7 點(diǎn)才產(chǎn)出數(shù)據(jù),該維表整體產(chǎn)出時(shí)間需要到 8 點(diǎn) 30 分,所有核心報(bào)表延遲。
活躍屬性:當(dāng)天是否活躍屬性變化頻率非常高。 -
水平拆分
為什么需要水平拆分?可能由于歷史原因,把不同產(chǎn)品下的相同維度強(qiáng)制性合并到同一張表里面了額,但是后來(lái)發(fā)現(xiàn)這張表并不太好用,業(yè)務(wù)相關(guān)性并不大,而且由于某個(gè)產(chǎn)品的維度屬性經(jīng)常改變,導(dǎo)致該表需要頻繁迭代,穩(wěn)定性差,直接影響其他業(yè)務(wù)。
3.3.2、三種模型
3.3.2.1、星型模型
????星型模型是一種常見(jiàn)的數(shù)據(jù)模型,用于設(shè)計(jì)和組織數(shù)據(jù)倉(cāng)庫(kù)或業(yè)務(wù)智能系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。它以中心的事實(shí)表(Fact Table)與周?chē)木S度表(Dimension Tables)形成類似星型的結(jié)構(gòu),因此得名為星型模型。
????在星型模型中,事實(shí)表包含了業(yè)務(wù)過(guò)程中發(fā)生的事實(shí)或事件,例如銷售訂單、交易記錄等,它通常包含數(shù)值型的度量或指標(biāo)。維度表則包含與事實(shí)表相關(guān)的描述性屬性,如時(shí)間、地點(diǎn)、產(chǎn)品、客戶等。維度表通過(guò)主鍵與事實(shí)表進(jìn)行關(guān)聯(lián),以提供對(duì)事實(shí)表數(shù)據(jù)的解釋和分析。。
星型模型的特點(diǎn)包括:
-
中心事實(shí)表:事實(shí)表是星型模型的核心,存儲(chǔ)了業(yè)務(wù)過(guò)程中的事實(shí)或事件,并與維度表進(jìn)行關(guān)聯(lián)。
-
維度表:維度表圍繞事實(shí)表形成星型結(jié)構(gòu),每個(gè)維度表代表一個(gè)業(yè)務(wù)維度,如時(shí)間、地點(diǎn)、產(chǎn)品、客戶等,提供了對(duì)事實(shí)數(shù)據(jù)的上下文和描述。
-
明確的關(guān)系:維度表與事實(shí)表之間建立明確的關(guān)聯(lián)關(guān)系,通常通過(guò)主鍵-外鍵的方式實(shí)現(xiàn)。
-
簡(jiǎn)單性和易理解性:星型模型具有簡(jiǎn)單、直觀的結(jié)構(gòu),易于理解和使用,適合于各種分析和查詢需求。
????星型模型的設(shè)計(jì)和使用使得數(shù)據(jù)的分析和查詢操作更加方便和高效,使得用戶能夠以直觀的方式理解數(shù)據(jù)關(guān)系和進(jìn)行多維分析。
????需要注意的是,星型模型在處理復(fù)雜的關(guān)系和多對(duì)多的關(guān)聯(lián)時(shí)可能存在一些限制,這時(shí)可以考慮使用其他數(shù)據(jù)模型,如雪花模型或多維模型,來(lái)滿足更復(fù)雜的數(shù)據(jù)建模需求。
3.3.2.2、雪花模型
????雪花模型(Snowflake Model)是一種用于設(shè)計(jì)和組織數(shù)據(jù)倉(cāng)庫(kù)或業(yè)務(wù)智能系統(tǒng)中的數(shù)據(jù)模型。它是在星型模型的基礎(chǔ)上進(jìn)一步發(fā)展而來(lái)的。
與星型模型不同,雪花模型通過(guò)規(guī)范化維度表來(lái)消除冗余數(shù)據(jù),以達(dá)到更高的數(shù)據(jù)存儲(chǔ)效率。在雪花模型中,維度表被分解為更小的規(guī)范化表,形成了維度表之間的多級(jí)關(guān)系,因此得名為雪花模型。
雪花模型的特點(diǎn)包括:
-
規(guī)范化維度表:維度表被規(guī)范化為多個(gè)表,以消除冗余數(shù)據(jù)。例如,一個(gè)維度表可能被分解為主表和多個(gè)子表,每個(gè)子表包含該維度的一部分屬性。
-
多級(jí)關(guān)系:維度表之間形成多級(jí)關(guān)系,子表與主表通過(guò)主鍵-外鍵關(guān)系連接。這些關(guān)系導(dǎo)致維度表的結(jié)構(gòu)呈現(xiàn)出類似雪花的形狀,因此稱為雪花模型。
-
更高的存儲(chǔ)效率:通過(guò)規(guī)范化維度表,雪花模型減少了數(shù)據(jù)的冗余性,節(jié)省了存儲(chǔ)空間。這對(duì)于大規(guī)模的數(shù)據(jù)倉(cāng)庫(kù)和復(fù)雜的維度結(jié)構(gòu)尤為重要。
????雪花模型的設(shè)計(jì)使得數(shù)據(jù)倉(cāng)庫(kù)在存儲(chǔ)和查詢性能上具有一定的優(yōu)勢(shì),特別適用于大型的數(shù)據(jù)倉(cāng)庫(kù)和復(fù)雜的維度關(guān)系。然而,相對(duì)于星型模型,雪花模型的查詢復(fù)雜度可能會(huì)增加,因?yàn)樾枰诙鄠€(gè)表之間進(jìn)行關(guān)聯(lián)查詢。
????需要根據(jù)具體業(yè)務(wù)需求和數(shù)據(jù)關(guān)系來(lái)選擇合適的數(shù)據(jù)模型,以滿足數(shù)據(jù)存儲(chǔ)、查詢性能和分析需求。在某些情況下,也可以根據(jù)具體情況使用星型模型和雪花模型的組合,以兼顧存儲(chǔ)效率和查詢性能。
3.3.2.3、星座模型
星座模型是事實(shí)表與事實(shí)表通過(guò)維表相連接的模型,星座模型是對(duì)星型模型和雪花模型的綜合稱呼,用于表示兩者的結(jié)合。在星座模型中,可以同時(shí)存在星型模型和雪花模型的特點(diǎn)。
星型模型(Star Schema)和雪花模型(Snowflake Schema)是用于組織和設(shè)計(jì)數(shù)據(jù)倉(cāng)庫(kù)的兩種常見(jiàn)模型,它們有以下區(qū)別:
星型模型(Star Schema) | 雪花模型(Snowflake Schema) | |
---|---|---|
結(jié)構(gòu) | 簡(jiǎn)單結(jié)構(gòu),維度表圍繞事實(shí)表形成星型結(jié)構(gòu) | 規(guī)范化結(jié)構(gòu),維度表分解為多個(gè)規(guī)范化的子表 |
冗余 | 較高冗余,維度表包含完整的維度屬性 | 較低冗余,規(guī)范化的子表消除部分?jǐn)?shù)據(jù)冗余 |
關(guān)聯(lián) | 維度表與事實(shí)表之間直接關(guān)聯(lián),一對(duì)多關(guān)系 | 多級(jí)關(guān)聯(lián),維度表分解為多個(gè)子表形成雪花形狀 |
存儲(chǔ)效率 | 相對(duì)較低,冗余導(dǎo)致存儲(chǔ)需求較大 | 相對(duì)較高,規(guī)范化減少了存儲(chǔ)需求 |
查詢性能 | 較高,結(jié)構(gòu)簡(jiǎn)單,直接從表中獲取屬性值 | 略低,存在多級(jí)關(guān)聯(lián)需要更多的表關(guān)聯(lián)操作 |
可理解性 | 較高,簡(jiǎn)單直觀的結(jié)構(gòu),易于理解和使用 | 略低,存在多級(jí)關(guān)聯(lián)和規(guī)范化的結(jié)構(gòu),復(fù)雜度較高 |
適用場(chǎng)景 | 簡(jiǎn)單的維度關(guān)系和較小規(guī)模的數(shù)據(jù)倉(cāng)庫(kù) | 復(fù)雜的維度關(guān)系和大規(guī)模的數(shù)據(jù)倉(cāng)庫(kù) |
????選擇使用星型模型還是雪花模型取決于具體的業(yè)務(wù)需求和數(shù)據(jù)特點(diǎn)。星型模型適用于簡(jiǎn)單的結(jié)構(gòu)和查詢,而雪花模型適用于復(fù)雜的維度關(guān)系和需要較高存儲(chǔ)效率的情況。在實(shí)際應(yīng)用中,可以根據(jù)具體情況靈活選擇適合的模型。
3.4、Inmon 與 Kimball 架構(gòu)對(duì)比(離線數(shù)倉(cāng)架構(gòu))
Inmon 建模有以下特點(diǎn):
- 也被稱作范式建模,這種建模方式在范式理論上符合 3NF。這里的 3NF 與 OLTP 中的 3NF 還是有點(diǎn)區(qū)別的:關(guān)系數(shù)據(jù)庫(kù)中的 3NF 是針對(duì)具體的業(yè)務(wù)流程的實(shí)體對(duì)象關(guān)系抽象,而數(shù)據(jù)倉(cāng)庫(kù)的 3NF 是站在企業(yè)角度面向主題的抽象;
- Inmon 模型從流程上看是自上而下的,自上而下指的是數(shù)據(jù)的流向,“上”即數(shù)據(jù)的上游,“下”即數(shù)據(jù)的下游,即從分散異構(gòu)的數(shù)據(jù)源 -> 數(shù)據(jù)倉(cāng)庫(kù) -> 數(shù)據(jù)集市;
- 以數(shù)據(jù)源頭為導(dǎo)向,然后一步步探索獲取盡量符合預(yù)期的數(shù)據(jù),因?yàn)閿?shù)據(jù)源往往是異構(gòu)的,所以會(huì)更加強(qiáng)調(diào)數(shù)據(jù)的清洗工作,將數(shù)據(jù)抽取為實(shí)體-關(guān)系模型,并不強(qiáng)調(diào)事實(shí)表和維度表的概念;
- 數(shù)據(jù)集市是針對(duì)不同主題的聚集區(qū)域。
Kimball 建模有以下特點(diǎn):
- 也被稱為維度建模;
- Kimball 模型從流程上看是自下而上的,即從數(shù)據(jù)集市-> 數(shù)據(jù)倉(cāng)庫(kù) -> 分散異構(gòu)的數(shù)據(jù)源;
- Kimball 是以最終任務(wù)為導(dǎo)向,將數(shù)據(jù)按照目標(biāo)拆分出不同的表需求,數(shù)據(jù)會(huì)抽取為事實(shí)-維度模型,數(shù)據(jù)源經(jīng) ETL 轉(zhuǎn)化為事實(shí)表和維度表導(dǎo)入數(shù)據(jù)集市,以星型模型或雪花模型等方式構(gòu)建維度數(shù)據(jù)倉(cāng)庫(kù);
- 架構(gòu)體系中,數(shù)據(jù)集市與數(shù)據(jù)倉(cāng)庫(kù)是緊密結(jié)合的,數(shù)據(jù)集市是數(shù)據(jù)倉(cāng)庫(kù)中一個(gè)邏輯上的主題域。
Inmon 與 kimball 建模方式對(duì)比:
對(duì)比項(xiàng) | Inmon | Kimball |
---|---|---|
定位 | 范式建模 | 維度建模 |
開(kāi)發(fā)周期 | 長(zhǎng) | 短 |
開(kāi)發(fā)難度 | 大 | 小 |
維護(hù)難度 | 小 | 大 |
數(shù)據(jù)要求 | 站在企業(yè)角度 | 針對(duì)具體業(yè)務(wù)驅(qū)動(dòng) |
精心設(shè)計(jì) | 是 | 否 |
緩慢變化維 | 否 | 是 |
需要人員 | 專業(yè)團(tuán)隊(duì) | 少量 |
數(shù)據(jù)模型 | 實(shí)體-關(guān)系模型,準(zhǔn)三范式設(shè)計(jì) | 維度建模、星型模型、雪花模型 |
適用場(chǎng)景 | 復(fù)雜的數(shù)據(jù)集成和一致性要求 | 需要快速查詢和分析的業(yè)務(wù)用戶 |
眾所周知,互聯(lián)網(wǎng)公司的業(yè)務(wù)一般是周期比較短需求變化快,并且迭代頻繁,如果精心設(shè)計(jì) Inmon 實(shí)體-關(guān)系的模式似乎并不能滿足快速迭代的業(yè)務(wù)需要。所以,互聯(lián)網(wǎng)公司更多場(chǎng)景下趨向于使用 Kimball 維度-事實(shí)的設(shè)計(jì)反而可以更快地完成任務(wù)。兩種建模方式也可以混合使用,通過(guò) ODS 的數(shù)據(jù),利用范式建模方法,建設(shè)原子數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù) EDW,然后基于 EDW,利用維度建模方法建設(shè)數(shù)據(jù)集市。建模方式?jīng)]有好與壞之分,只有合適與不合適之分,在實(shí)際數(shù)倉(cāng)建設(shè)中,需要靈活多變,不能全依賴建模理論,也不能不依賴。適時(shí)變通,才能建設(shè)一個(gè)好的數(shù)據(jù)倉(cāng)庫(kù)。
參考文章;
《通俗易懂?dāng)?shù)倉(cāng)建?!狪nmon 范式建模與 Kimball 維度建模》
3.5、Lambda 架構(gòu)
隨著大數(shù)據(jù)應(yīng)用的發(fā)展,人們逐漸對(duì)系統(tǒng)的實(shí)時(shí)性提出了要求,為了計(jì)算一些實(shí)時(shí)指標(biāo),就在原來(lái)離線數(shù)倉(cāng)的基礎(chǔ)上增加了一個(gè)實(shí)時(shí)計(jì)算的鏈路,并對(duì)數(shù)據(jù)源做流式改造(即把數(shù)據(jù)發(fā)送到消息隊(duì)列),實(shí)時(shí)計(jì)算去訂閱消息隊(duì)列,直接完成指標(biāo)增量的計(jì)算,推送到下游的數(shù)據(jù)服務(wù)中去,由數(shù)據(jù)服務(wù)層完成離線&實(shí)時(shí)結(jié)果的合并。
Lambda 架構(gòu)(Lambda Architecture)是由 Twitter 工程師南森·馬茨(Nathan Marz)提出的大數(shù)據(jù)處理架構(gòu)。這一架構(gòu)的提出基于馬茨在 BackType 和 Twitter 上的分布式數(shù)據(jù)處理系統(tǒng)的經(jīng)驗(yàn)。
Lambda 架構(gòu)使開(kāi)發(fā)人員能夠構(gòu)建大規(guī)模分布式數(shù)據(jù)處理系統(tǒng)。它具有很好的靈活性和可擴(kuò)展性,也對(duì)硬件故障和人為失誤有很好的容錯(cuò)性。
Lambda 架構(gòu)總共由三層系統(tǒng)組成:批處理層(Batch Layer),速度處理層(Speed Layer),以及用于響應(yīng)查詢的服務(wù)層(Serving Layer)。
在 Lambda 架構(gòu)中,每層都有自己所肩負(fù)的任務(wù):
-
批處理層:
使用分布式處理系統(tǒng)預(yù)先計(jì)算結(jié)果,可以處理非常大量的數(shù)據(jù)
。批處理層的目標(biāo)是通過(guò)能夠處理所有可用數(shù)據(jù)來(lái)生成視圖,從而達(dá)到完美的準(zhǔn)確性。這意味著它可以通過(guò)基于完整數(shù)據(jù)集重新計(jì)算來(lái)修復(fù)任何錯(cuò)誤,然后更新現(xiàn)有的視圖。輸出通常存儲(chǔ)在只讀數(shù)據(jù)庫(kù)中,更新會(huì)完全替換現(xiàn)有的預(yù)計(jì)算視圖。 -
速度處理層:
實(shí)時(shí)地處理數(shù)據(jù)流,不需要修正或完整性的要求
。這一層犧牲了吞吐量,因?yàn)樗荚谕ㄟ^(guò)提供最新數(shù)據(jù)的實(shí)時(shí)視圖來(lái)最小化延遲。本質(zhì)上,速度處理層負(fù)責(zé)填補(bǔ)批處理層在提供基于最新數(shù)據(jù)的視圖時(shí)造成的“缺口”。這一層的視圖可能不如批處理層最終產(chǎn)生的視圖那樣準(zhǔn)確或完整,但它們?cè)跀?shù)據(jù)接收后幾乎立即可用,并且可以在批處理層的視圖可用時(shí)被替換。 -
服務(wù)層:
負(fù)責(zé)響應(yīng)查詢
。這一層將批處理層以批視圖形式輸出的結(jié)果和速度處理層以近實(shí)時(shí)視圖形式輸出的結(jié)果轉(zhuǎn)發(fā)給服務(wù)層。這一層對(duì)批視圖進(jìn)行索引,以便可以在低延遲的情況下進(jìn)行即席查詢。
特點(diǎn):
- 批流分離:Lambda 架構(gòu)將數(shù)據(jù)處理層分為批處理層和速度處理層,分別使用批處理和流處理兩種方法來(lái)處理大量的數(shù)據(jù)。這樣可以兼顧數(shù)據(jù)的準(zhǔn)確性和實(shí)時(shí)性,同時(shí)降低系統(tǒng)的復(fù)雜性和耦合性。
- 容錯(cuò)性和魯棒性:Lambda 架構(gòu)依賴于一個(gè)不可變的數(shù)據(jù)源,作為系統(tǒng)的記錄。這樣可以保證數(shù)據(jù)的一致性和完整性,以及系統(tǒng)的容錯(cuò)能力。即使出現(xiàn)錯(cuò)誤或故障,也可以通過(guò)重新計(jì)算來(lái)修復(fù)問(wèn)題(魯棒性 robus 譯為健壯性、穩(wěn)健性或強(qiáng)健性)。
- 可擴(kuò)展性:Lambda架構(gòu)可以通過(guò)增加更多的機(jī)器來(lái)應(yīng)對(duì)數(shù)據(jù)量或負(fù)載的增長(zhǎng),實(shí)現(xiàn)線性的可擴(kuò)展性。Lambda架構(gòu)也可以集成各種大數(shù)據(jù)組件,如Hadoop,Kafka,Storm,Spark,Hbase 等,提供更多的功能和靈活性。
- 通用性:Lambda架構(gòu)可以適應(yīng)廣泛的應(yīng)用場(chǎng)景,包括金融、社交、電商、數(shù)據(jù)分析等領(lǐng)域。Lambda 架構(gòu)也可以支持各種類型的查詢,包括批量查詢、實(shí)時(shí)查詢、即席查詢等。
3.6、Kappa 架構(gòu)
Lambda 架構(gòu)雖然滿足了實(shí)時(shí)的需求,但帶來(lái)了更多的開(kāi)發(fā)與運(yùn)維工作,其架構(gòu)背景是流處理引擎還不完善,流處理的結(jié)果只作為臨時(shí)的、近似的值提供參考。后來(lái)隨著 Flink 等流處理引擎的出現(xiàn),流處理技術(shù)很成熟了,這時(shí)為了解決兩套代碼的問(wèn)題,LickedIn 的 Jay Kreps 提出了 Kappa 架構(gòu)。
Kappa 架構(gòu)可以認(rèn)為是 Lambda 架構(gòu)的簡(jiǎn)化版(只要移除 lambda 架構(gòu)中的批處理部分即可)。在 Kappa 架構(gòu)中,需求修改或歷史數(shù)據(jù)重新處理都通過(guò)上游重放完成。Kappa 架構(gòu)最大的問(wèn)題是流式重新處理歷史的吞吐能力會(huì)低于批處理,但這個(gè)可以通過(guò)增加計(jì)算資源來(lái)彌補(bǔ)。
Kappa 架構(gòu)的重新處理過(guò)程:
- 選擇一個(gè)具有重放功能的、能夠保存歷史數(shù)據(jù)并支持多消費(fèi)者的消息隊(duì)列,根據(jù)需求設(shè)置歷史數(shù)據(jù)保存的時(shí)長(zhǎng),比如 Kafka,可以保存全部歷史數(shù)據(jù);
- 當(dāng)某個(gè)或某些指標(biāo)有重新處理的需求時(shí),按照新邏輯寫(xiě)一個(gè)新作業(yè),然后從上游消息隊(duì)列的最開(kāi)始重新消費(fèi),把結(jié)果寫(xiě)到一個(gè)新的下游表中;
- 當(dāng)新作業(yè)趕上進(jìn)度后,應(yīng)用切換數(shù)據(jù)源,讀取 2 中產(chǎn)生的新結(jié)果表;
- 停止老的作業(yè),刪除老的結(jié)果表。
完全使用流計(jì)算處理所有的數(shù)據(jù)對(duì)開(kāi)發(fā)和數(shù)據(jù)分析的方方面面都有影響。例如,在 Kappa 架構(gòu)下,所有的數(shù)據(jù)以流計(jì)算的方式處理之后,都將以一種追加的方式寫(xiě)入目標(biāo)位置,而之前寫(xiě)入的數(shù)據(jù)也沒(méi)有機(jī)會(huì)再被改動(dòng),因而變成不可變的。這種處理模式和 Kafka 對(duì)待數(shù)據(jù)的方式是完全一致的,本質(zhì)上都是受流計(jì)算這種計(jì)算模式的影響。Kappa 架構(gòu)在技術(shù)選型上與 Lambda 架構(gòu)在 Speed Layer 上選型是類似的,都以流計(jì)算框架為主。
3.7、Lambda 與 Kappa 架構(gòu)對(duì)比(實(shí)時(shí)數(shù)倉(cāng)架構(gòu))
對(duì)比項(xiàng) | Lambda | Kappa |
---|---|---|
實(shí)時(shí)性 | 實(shí)時(shí) | 實(shí)時(shí) |
計(jì)算資源 | 批和流同事運(yùn)行、資源開(kāi)銷大 | 只有流處理、僅針對(duì)新需求開(kāi)發(fā)階段運(yùn)行兩個(gè)作業(yè),資源開(kāi)銷小 |
重新計(jì)算時(shí)吞吐 | 批式全量處理、吞吐較高 | 流式全量處理、吞吐較批處理低 |
開(kāi)發(fā)、測(cè)試 | 每個(gè)需求都需要兩套不同代碼、開(kāi)發(fā)、測(cè)試、上線難度大 | 只需實(shí)現(xiàn)一套代碼、開(kāi)發(fā)、測(cè)試、上線難度相對(duì)較低 |
運(yùn)維成本 | 維護(hù)兩套系統(tǒng)(引擎)、運(yùn)維成本大 | 只需維護(hù)一套系統(tǒng),運(yùn)維成本低 |
-
在真實(shí)的場(chǎng)景中,很多時(shí)候并不是完全規(guī)范的 Lambda 架構(gòu)或 Kappa 架構(gòu),可以是兩者的混合,比如大部分實(shí)時(shí)指標(biāo)使用 Kappa 架構(gòu)完成計(jì)算,少量關(guān)鍵指標(biāo)(比如金額相關(guān))使用 Lambda 架構(gòu)用批處理重新計(jì)算,增加一次校對(duì)過(guò)程;
-
Kappa 架構(gòu)并不是中間結(jié)果完全不落地,現(xiàn)在很多大數(shù)據(jù)系統(tǒng)都需要支持機(jī)器學(xué)習(xí)(離線訓(xùn)練),所以實(shí)時(shí)中間結(jié)果需要落地對(duì)應(yīng)的存儲(chǔ)引擎供機(jī)器學(xué)習(xí)使用,另外有時(shí)候還需要對(duì)明細(xì)數(shù)據(jù)查詢,這種場(chǎng)景也需要把實(shí)時(shí)明細(xì)層寫(xiě)出到對(duì)應(yīng)的引擎中。
4、開(kāi)發(fā)流程
4.1、開(kāi)發(fā)大體流程
- 需求分析調(diào)研
明確口徑、評(píng)估排期、需求正規(guī)流程提交 - 數(shù)據(jù)探查
數(shù)據(jù)字段是否滿足需求:了解數(shù)據(jù)表字段能不能滿足需求方需求,看看字段有沒(méi)有少,如果發(fā)現(xiàn)少了或者體用的數(shù)據(jù)源沒(méi)辦法滿足需求,需要及時(shí)找對(duì)應(yīng)的人員溝通;
表的數(shù)據(jù)結(jié)構(gòu):看一下相關(guān)表的數(shù)據(jù)結(jié)構(gòu)有沒(méi)有 json 數(shù)據(jù)或者其他比較復(fù)雜的數(shù)據(jù),便于數(shù)倉(cāng)處理;
表的數(shù)據(jù)內(nèi)容(數(shù)據(jù)質(zhì)量):看一下數(shù)據(jù)內(nèi)容,是不是有一些字段毫無(wú)意義,不需要存儲(chǔ)在數(shù)倉(cāng),或者檢查一下是不是有很多空值、臟數(shù)據(jù)情況,目的就是探查業(yè)務(wù)庫(kù)的數(shù)據(jù)質(zhì)量,通過(guò)這些我們可以大概判斷在數(shù)倉(cāng)會(huì)有多少清洗機(jī)制;
表數(shù)據(jù)量:看一下數(shù)據(jù)量,方便我們?cè)诔槿〉臅r(shí)候選擇增量抽取或者全量抽取,甚至可以問(wèn)一下業(yè)務(wù)方業(yè)務(wù)增長(zhǎng)情況,更能準(zhǔn)確決定數(shù)據(jù)抽取策略。 - 指標(biāo)管理
完善指標(biāo)命名規(guī)范、指標(biāo)同名名義、指標(biāo)與業(yè)務(wù)強(qiáng)相關(guān)、明確指標(biāo)構(gòu)成要素 - 模型設(shè)計(jì)
完善開(kāi)發(fā)流程規(guī)范、標(biāo)準(zhǔn)化業(yè)務(wù)調(diào)研、知識(shí)庫(kù)文檔集中管理、建立模型評(píng)審機(jī)制 - etl開(kāi)發(fā)
ODS -> DWD -> DWS -> ADS - 數(shù)據(jù)驗(yàn)證
制定數(shù)據(jù)測(cè)試標(biāo)準(zhǔn) - 任務(wù)調(diào)度
規(guī)范化調(diào)度參數(shù)配置 - 上線管理
4.2、開(kāi)發(fā)詳細(xì)流程及規(guī)范
4.2.1、清洗規(guī)范
????數(shù)據(jù)清洗是數(shù)據(jù)預(yù)處理的一項(xiàng)重要任務(wù),旨在去除數(shù)據(jù)中的噪聲、錯(cuò)誤、重復(fù)和不一致之處,以提高數(shù)據(jù)質(zhì)量和準(zhǔn)確性。以下是一些常見(jiàn)的數(shù)據(jù)清洗規(guī)范和建議:
- 處理缺失值
- 檢測(cè)和識(shí)別缺失值,并決定如何處理它們??梢赃x擇刪除含有缺失值的記錄、插值填充缺失值或使用特定值(如平均值、中位數(shù)等)進(jìn)行填充。
- 注意處理不同類型數(shù)據(jù)(數(shù)值型、分類型等)的缺失值的方法可能不同。
- 處理重復(fù)數(shù)據(jù)
- 檢測(cè)和識(shí)別重復(fù)數(shù)據(jù),可以根據(jù)一定的規(guī)則或關(guān)鍵字段判斷數(shù)據(jù)是否重復(fù)。
- 決定如何處理重復(fù)數(shù)據(jù),可以選擇刪除重復(fù)數(shù)據(jù)、保留第一個(gè)出現(xiàn)的數(shù)據(jù)或進(jìn)行合并操作。
- 格式一致性
- 統(tǒng)一數(shù)據(jù)字段的命名規(guī)范,確保字段名在整個(gè)數(shù)據(jù)集中是一致的,避免不同的命名方式導(dǎo)致數(shù)據(jù)分析困難。
- 統(tǒng)一數(shù)據(jù)字段的數(shù)據(jù)類型,例如將日期字段轉(zhuǎn)換為統(tǒng)一的日期格式,確保數(shù)據(jù)類型一致性。
- 異常值處理
- 檢測(cè)和處理異常值,可以使用統(tǒng)計(jì)方法或業(yè)務(wù)規(guī)則來(lái)識(shí)別異常值,然后決定如何處理這些異常值,例如刪除、修正或標(biāo)記為特殊值。
- 數(shù)據(jù)標(biāo)準(zhǔn)化
- 將數(shù)據(jù)轉(zhuǎn)換為一致的標(biāo)準(zhǔn)格式,例如統(tǒng)一單位、貨幣符號(hào)、日期格式等,以便于后續(xù)分析和比較。
- 數(shù)據(jù)類型轉(zhuǎn)換
- 將數(shù)據(jù)轉(zhuǎn)換為正確的數(shù)據(jù)類型,例如將文本型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)、日期型數(shù)據(jù)轉(zhuǎn)換為日期類型等,確保數(shù)據(jù)類型與數(shù)據(jù)內(nèi)容一致。
- 數(shù)據(jù)一致性
- 確保數(shù)據(jù)在不同數(shù)據(jù)源之間的一致性,例如通過(guò)比較和驗(yàn)證來(lái)自不同系統(tǒng)的數(shù)據(jù),解決不一致之處。
- 數(shù)據(jù)驗(yàn)證
- 對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,確保數(shù)據(jù)符合預(yù)期的業(yè)務(wù)規(guī)則、約束和邏輯關(guān)系,以確保數(shù)據(jù)的完整性和準(zhǔn)確性。
????以上是一些常見(jiàn)的數(shù)據(jù)清洗規(guī)范和建議,具體的數(shù)據(jù)清洗步驟和規(guī)范應(yīng)根據(jù)具體的數(shù)據(jù)和業(yè)務(wù)需求進(jìn)行定制和調(diào)整。清洗后的高質(zhì)量數(shù)據(jù)將為后續(xù)的數(shù)據(jù)分析和挖掘提供可靠的基礎(chǔ)。
舉例說(shuō)明一些常見(jiàn)的清洗示例:
- 單位:比如金額單位統(tǒng)一為 元/美元/分/美分
- 字段類型:比如平臺(tái) id,統(tǒng)一為 int 或者 string,避免出現(xiàn) 2 個(gè)不同的表定義不同類型。product_id 統(tǒng)一定義為 string,不要出現(xiàn) a 表定義為 string,b 表定義為 bigint
- 注釋:對(duì)沒(méi)有注釋的字段,需要及時(shí)補(bǔ)全,新建表的時(shí)候,一定要帶上注釋
- 時(shí)間格式:如 2020-10-16,2020/10/16,20201016 統(tǒng)一格式為 20201016
- 枚舉值:A表 1:男,2:女;B表 0:男,1:女;統(tǒng)一為:1:男 2:女
- 數(shù)據(jù)脫敏:比如身份證號(hào),手機(jī)號(hào),郵箱等需要用加密函數(shù)進(jìn)行脫敏
- 控制轉(zhuǎn)換:string——-99,int/bigint/double/decimal——0,date—— 1700-01-01,datetime——1700-01-01 00:00:00
4.2.2、數(shù)據(jù)同步規(guī)范
????數(shù)據(jù)同步是將數(shù)據(jù)從一個(gè)源系統(tǒng)復(fù)制到另一個(gè)目標(biāo)系統(tǒng)的過(guò)程。為了確保數(shù)據(jù)同步的準(zhǔn)確性和一致性,以下是一些常見(jiàn)的數(shù)據(jù)同步規(guī)范:
-
數(shù)據(jù)一致性:確保源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的一致性,避免數(shù)據(jù)丟失、重復(fù)或錯(cuò)誤。
-
同步頻率:確定數(shù)據(jù)同步的頻率,根據(jù)業(yè)務(wù)需求和數(shù)據(jù)變更的速度來(lái)選擇實(shí)時(shí)同步、定期同步或按需同步。
-
增量同步和全量同步:根據(jù)數(shù)據(jù)源和目標(biāo)系統(tǒng)的特點(diǎn),選擇適合的同步方式。增量同步只傳輸和同步發(fā)生變化的數(shù)據(jù),而全量同步傳輸和同步全部數(shù)據(jù)。
-
錯(cuò)誤處理和恢復(fù):建立錯(cuò)誤處理機(jī)制,監(jiān)控同步過(guò)程中的錯(cuò)誤,及時(shí)記錄和處理。同時(shí),確保有可靠的數(shù)據(jù)恢復(fù)機(jī)制,以防止數(shù)據(jù)同步失敗或中斷時(shí)的數(shù)據(jù)丟失。
-
同步順序:如果數(shù)據(jù)之間存在依賴關(guān)系,確保數(shù)據(jù)按正確的順序進(jìn)行同步,避免數(shù)據(jù)不一致性和沖突。
-
數(shù)據(jù)轉(zhuǎn)換和映射:對(duì)于不同數(shù)據(jù)源和目標(biāo)系統(tǒng)之間的數(shù)據(jù)差異,進(jìn)行必要的數(shù)據(jù)轉(zhuǎn)換和映射,確保數(shù)據(jù)能夠正確地在不同系統(tǒng)之間進(jìn)行傳遞和匹配。
-
監(jiān)控和報(bào)警:建立監(jiān)控機(jī)制,監(jiān)控?cái)?shù)據(jù)同步的狀態(tài)和性能。及時(shí)發(fā)現(xiàn)同步過(guò)程中的異常情況,并設(shè)置報(bào)警機(jī)制,以便及時(shí)采取措施進(jìn)行處理。
-
安全性和權(quán)限控制:確保數(shù)據(jù)同步過(guò)程的安全性,采取適當(dāng)?shù)陌踩胧〝?shù)據(jù)加密、身份驗(yàn)證和訪問(wèn)權(quán)限控制,以保護(hù)敏感數(shù)據(jù)的安全。
????這些規(guī)范的具體實(shí)施取決于具體的業(yè)務(wù)需求、數(shù)據(jù)源和目標(biāo)系統(tǒng)的特點(diǎn),以及數(shù)據(jù)同步的復(fù)雜程度和重要性。根據(jù)實(shí)際情況,可以進(jìn)一步細(xì)化和定制數(shù)據(jù)同步規(guī)范。
數(shù)據(jù)同步的思路參考如下:
4.2.3、數(shù)倉(cāng)分層規(guī)范
????在數(shù)據(jù)倉(cāng)庫(kù)中,常見(jiàn)的分層規(guī)范包括原始數(shù)據(jù)層(ODS)、數(shù)據(jù)倉(cāng)庫(kù)層(DWD)、數(shù)據(jù)集市層(DWS)和應(yīng)用數(shù)據(jù)層(ADS)。下面對(duì)這些層進(jìn)行闡述:
- 原始數(shù)據(jù)層(ODS):
原始數(shù)據(jù)層是數(shù)據(jù)倉(cāng)庫(kù)的第一層,用于接收和存儲(chǔ)來(lái)自各個(gè)業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)。在這一層中,數(shù)據(jù)被保留為接收時(shí)的原始形式,通常不進(jìn)行大規(guī)模的數(shù)據(jù)清洗和轉(zhuǎn)換。ODS層的主要目標(biāo)是將源系統(tǒng)的數(shù)據(jù)進(jìn)行備份和保留,確保數(shù)據(jù)的完整性和可追溯性。 - 數(shù)據(jù)倉(cāng)庫(kù)層(DWD):
數(shù)據(jù)倉(cāng)庫(kù)層是數(shù)據(jù)倉(cāng)庫(kù)的核心層,也是數(shù)據(jù)清洗、集成和整合的地方。在這一層中,對(duì)ODS層的數(shù)據(jù)進(jìn)行清洗、去重、轉(zhuǎn)換和整理,以滿足數(shù)據(jù)質(zhì)量和一致性要求。DWD層通常包含事實(shí)表和維度表,用于支持復(fù)雜的數(shù)據(jù)分析和報(bào)表需求。 - 數(shù)據(jù)集市層(DWS):
數(shù)據(jù)集市層是數(shù)據(jù)倉(cāng)庫(kù)中的進(jìn)一步集成和加工層。在這一層中,根據(jù)特定的業(yè)務(wù)需求或數(shù)據(jù)應(yīng)用場(chǎng)景,對(duì)數(shù)據(jù)進(jìn)行加工、匯總和聚合,以產(chǎn)生更高層次的指標(biāo)和洞察。數(shù)據(jù)集市層可以根據(jù)業(yè)務(wù)功能或數(shù)據(jù)主題進(jìn)行劃分,例如銷售集市、客戶集市、風(fēng)險(xiǎn)集市等。 - 應(yīng)用數(shù)據(jù)層(ADS):
應(yīng)用數(shù)據(jù)層是為特定的業(yè)務(wù)應(yīng)用或分析需求定制的數(shù)據(jù)層。在這一層中,根據(jù)具體的業(yè)務(wù)場(chǎng)景和用戶需求,構(gòu)建預(yù)定義的報(bào)表、儀表板、數(shù)據(jù)挖掘模型等,以便用戶可以快速訪問(wèn)和分析數(shù)據(jù)。ADS層可以根據(jù)不同的業(yè)務(wù)部門(mén)或用戶角色進(jìn)行劃分,以提供定制化的數(shù)據(jù)服務(wù)和分析能力。
????這些層級(jí)的設(shè)計(jì)和規(guī)范可以根據(jù)實(shí)際的數(shù)據(jù)倉(cāng)庫(kù)需求進(jìn)行調(diào)整和擴(kuò)展。它們形成了一個(gè)逐步集成和加工的數(shù)據(jù)流水線,從原始數(shù)據(jù)到經(jīng)過(guò)清洗和整合的數(shù)據(jù),再到更高層次的數(shù)據(jù)集市和應(yīng)用數(shù)據(jù),為用戶提供全面和準(zhǔn)確的數(shù)據(jù)支持。通過(guò)明確的分層規(guī)范,數(shù)據(jù)倉(cāng)庫(kù)能夠更好地管理和提供各種層次的數(shù)據(jù)需求,支持?jǐn)?shù)據(jù)驅(qū)動(dòng)的決策和業(yè)務(wù)創(chuàng)新。
數(shù)倉(cāng)分層:
4.2.4、詞根規(guī)范
????詞根規(guī)范是在數(shù)據(jù)倉(cāng)庫(kù)中對(duì)數(shù)據(jù)字段命名的一種規(guī)范化方法。它旨在為數(shù)據(jù)字段賦予一致的含義和易于理解的命名約定,以提高數(shù)據(jù)的可讀性、可維護(hù)性和可理解性。以下是一些常見(jiàn)的詞根規(guī)范示例:
-
前綴詞根:
前綴詞根通常用于表示字段的數(shù)據(jù)類型或?qū)傩裕纾?br> "dt_"表示日期類型字段
"str_"表示字符串類型字段
"num_"表示數(shù)值類型字段
"bool_"表示布爾類型字段 -
名詞詞根:
名詞詞根用于描述字段的含義或數(shù)據(jù)所代表的實(shí)體,例如:
"customer_"表示客戶相關(guān)字段
"order_"表示訂單相關(guān)字段
"product_"表示產(chǎn)品相關(guān)字段 -
動(dòng)詞詞根:
動(dòng)詞詞根用于表示字段的操作或行為,例如:
"total_"表示總計(jì)或匯總字段
"avg_"表示平均值字段
"count_"表示計(jì)數(shù)字段 -
后綴詞根:
后綴詞根用于進(jìn)一步描述字段的特性或用途,例如:
"_id"表示唯一標(biāo)識(shí)符字段
"_name"表示名稱字段
"_desc"表示描述字段
????通過(guò)使用詞根規(guī)范,可以使數(shù)據(jù)字段的命名更加一致、易于理解和遵循統(tǒng)一的命名約定。這樣可以降低數(shù)據(jù)理解和解釋的難度,減少歧義和混淆,提高數(shù)據(jù)管理和數(shù)據(jù)分析的效率。詞根規(guī)范應(yīng)根據(jù)具體的數(shù)據(jù)倉(cāng)庫(kù)需求和業(yè)務(wù)領(lǐng)域進(jìn)行調(diào)整和擴(kuò)展,以確保命名的準(zhǔn)確性和實(shí)用性。
4.2.5、模型評(píng)審規(guī)范
4.2.6、開(kāi)發(fā)規(guī)范
- 開(kāi)發(fā)原則
開(kāi)發(fā)原則包含:支持重跑、數(shù)據(jù)聲明周期合理、任務(wù)迭代不會(huì)嚴(yán)重影響任務(wù)產(chǎn)出時(shí)間 - 命名規(guī)范
命名規(guī)范包含:表命名規(guī)范、任務(wù)命名規(guī)范 - sql 編寫(xiě)規(guī)范
1、表連接時(shí),使用表別名引用列,如 t1.user_id,t2.user_name
2、表名前面需要加上項(xiàng)目名,一個(gè)是比較清晰的,另一個(gè)是如果需要把該任務(wù)整段代碼移到其他項(xiàng)目跑的時(shí)候(比如分析查詢項(xiàng)目),需要手動(dòng)加上項(xiàng)目名,否則會(huì)報(bào)錯(cuò)
3、不要出現(xiàn) select * 這樣的操作
5、數(shù)據(jù)治理
5.1、數(shù)據(jù)質(zhì)量管理
5.1.1 評(píng)估維度
- 完整性
數(shù)據(jù)完整性評(píng)估數(shù)據(jù)是否具有完整的記錄,沒(méi)有缺失或丟失數(shù)據(jù)。這包括檢查是否有缺失的字段、記錄或關(guān)鍵信息。 - 一致性
數(shù)據(jù)一致性評(píng)估數(shù)據(jù)在不同數(shù)據(jù)源、數(shù)據(jù)表或數(shù)據(jù)集之間的一致性。這包括檢查數(shù)據(jù)的定義、格式、命名約定等方面的一致性。 - 規(guī)范性
數(shù)據(jù)規(guī)范性評(píng)估數(shù)據(jù)是否符合規(guī)定的數(shù)據(jù)標(biāo)準(zhǔn)、格式和約束。這包括檢查數(shù)據(jù)類型、長(zhǎng)度、范圍、格式要求等。 - 及時(shí)性
數(shù)據(jù)及時(shí)性評(píng)估數(shù)據(jù)的更新頻率和可用性。這包括檢查數(shù)據(jù)的更新時(shí)間、延遲和實(shí)時(shí)性要求。 - 安全性
數(shù)據(jù)安全性評(píng)估數(shù)據(jù)的安全性和保密性。這包括檢查數(shù)據(jù)的敏感性、訪問(wèn)控制、數(shù)據(jù)加密等安全措施。 - 準(zhǔn)確性
數(shù)據(jù)準(zhǔn)確性評(píng)估數(shù)據(jù)的精確性和正確性。這包括檢查數(shù)據(jù)的來(lái)源、收集方法和處理過(guò)程,以確保數(shù)據(jù)與實(shí)際情況一致。 - 唯一性
數(shù)據(jù)唯一性評(píng)估數(shù)據(jù)是否具有唯一標(biāo)識(shí)符或鍵值。這包括檢查是否存在重復(fù)的記錄或鍵值。
5.1.2 實(shí)施流程
-
事前
(1)數(shù)據(jù)探查
(2)梳理表字段
(3)指定資產(chǎn)等級(jí)
(4)制定檢驗(yàn)規(guī)則 -
事中
(1)數(shù)據(jù)質(zhì)量稽核
(2)非空性稽核
(3)唯一性稽核 -
事后
(1)全量稽核
(2)數(shù)據(jù)質(zhì)量模型設(shè)計(jì)
(3)表評(píng)分算法
(4)數(shù)據(jù)質(zhì)量管理系統(tǒng)報(bào)表查詢
(5)訂閱
5.2、數(shù)據(jù)成本治理
-
成本治理緣由
減少企業(yè)成本 -
目前存在的問(wèn)題
(1)機(jī)器利用率低
(2)存儲(chǔ)周期長(zhǎng)、存儲(chǔ)資源增長(zhǎng)過(guò)快
(3)成本沒(méi)有量化標(biāo)準(zhǔn)
(4)降本意思薄弱
(5)任務(wù)優(yōu)化空間非常大,尤其是離線計(jì)算 -
目前存在的問(wèn)題
(1)延遲啟動(dòng)
(2)任務(wù)下線
(3)任務(wù)調(diào)優(yōu)
(4)修改執(zhí)行周期
(5)任務(wù)排名、促進(jìn)優(yōu)化 -
治理效果分析
(1)總覽
(2)按照責(zé)任人
(3)按照業(yè)務(wù)線
(4)明細(xì)分析
5.3、數(shù)據(jù)安全
數(shù)據(jù)安全模塊是用于處理數(shù)據(jù)安全方面的技術(shù)和措施,以確保數(shù)據(jù)的保密性、完整性和可用性。以下是常見(jiàn)的數(shù)據(jù)安全模塊和處理方法:
-
訪問(wèn)控制
通過(guò)身份驗(yàn)證和授權(quán)機(jī)制,限制對(duì)數(shù)據(jù)的訪問(wèn)權(quán)限,確保只有授權(quán)的用戶或?qū)嶓w能夠訪問(wèn)數(shù)據(jù)。這包括使用密碼、令牌、角色和權(quán)限管理等措施。 -
數(shù)據(jù)加密
使用加密算法對(duì)敏感數(shù)據(jù)進(jìn)行加密,以防止未經(jīng)授權(quán)的訪問(wèn)和竊取。這包括對(duì)數(shù)據(jù)在傳輸過(guò)程中的加密(傳輸加密)和在存儲(chǔ)介質(zhì)上的加密(數(shù)據(jù)加密)。 -
數(shù)據(jù)脫敏
對(duì)敏感數(shù)據(jù)進(jìn)行脫敏處理,以保護(hù)個(gè)人隱私和敏感信息。脫敏方法可以包括匿名化、掩碼、加鹽哈希等技術(shù),使敏感數(shù)據(jù)無(wú)法直接關(guān)聯(lián)到個(gè)人身份。 -
審計(jì)日志
記錄和監(jiān)控對(duì)數(shù)據(jù)的訪問(wèn)和操作行為,以便后續(xù)審計(jì)和追蹤。審計(jì)日志可以用于發(fā)現(xiàn)異?;顒?dòng)、追溯數(shù)據(jù)操作責(zé)任和識(shí)別安全漏洞。 -
數(shù)據(jù)備份和恢復(fù)
定期備份數(shù)據(jù),并確保備份數(shù)據(jù)的安全性。在發(fā)生數(shù)據(jù)丟失、破壞或?yàn)?zāi)難情況時(shí),能夠快速恢復(fù)數(shù)據(jù),保證業(yè)務(wù)的連續(xù)性和數(shù)據(jù)的完整性。 -
安全培訓(xùn)和意識(shí)
提供數(shù)據(jù)安全培訓(xùn)和意識(shí)活動(dòng),教育員工關(guān)于數(shù)據(jù)安全的重要性和最佳實(shí)踐。這可以包括數(shù)據(jù)安全政策的宣傳、安全意識(shí)培訓(xùn)和定期安全演習(xí)等。 -
異常檢測(cè)和威脅防護(hù)
使用安全監(jiān)控系統(tǒng)和工具,對(duì)數(shù)據(jù)訪問(wèn)和操作進(jìn)行實(shí)時(shí)監(jiān)測(cè),以及檢測(cè)和預(yù)防潛在的安全威脅和異常行為。這包括入侵檢測(cè)系統(tǒng)(IDS)、入侵防御系統(tǒng)(IPS)和安全信息和事件管理(SIEM)等。 -
物理安全措施
采取物理安全措施,保護(hù)存儲(chǔ)數(shù)據(jù)的設(shè)備和設(shè)施,防止物理攻擊和意外損壞。這包括使用訪問(wèn)控制、監(jiān)控?cái)z像頭、防火墻和報(bào)警系統(tǒng)等。
通過(guò)綜合使用這些數(shù)據(jù)安全模塊和處理方法,組織可以有效保護(hù)數(shù)據(jù)
5.4、元數(shù)據(jù)管理
????元數(shù)據(jù)管理是指對(duì)數(shù)據(jù)的元數(shù)據(jù)進(jìn)行組織、維護(hù)和管理的過(guò)程。元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),它提供了關(guān)于數(shù)據(jù)的結(jié)構(gòu)、定義、屬性、關(guān)系和上下文等信息,幫助用戶理解和使用數(shù)據(jù)。元數(shù)據(jù)管理的目標(biāo)是確保數(shù)據(jù)的準(zhǔn)確性、一致性、可信度和可管理性,以支持?jǐn)?shù)據(jù)的有效管理和利用。
5.4.1、元數(shù)據(jù)定義以及重要性
元數(shù)據(jù)可以包括以下內(nèi)容:
-
數(shù)據(jù)定義
描述數(shù)據(jù)的結(jié)構(gòu)、格式、模式和約束條件。例如,數(shù)據(jù)表、字段、數(shù)據(jù)類型、主鍵、外鍵等。 -
數(shù)據(jù)源和來(lái)源:
記錄數(shù)據(jù)的來(lái)源和數(shù)據(jù)源的信息,包括數(shù)據(jù)提供方、數(shù)據(jù)采集方式、數(shù)據(jù)傳輸協(xié)議等。 -
數(shù)據(jù)質(zhì)量指標(biāo):
定義和記錄數(shù)據(jù)質(zhì)量指標(biāo)和標(biāo)準(zhǔn),例如數(shù)據(jù)準(zhǔn)確性、完整性、一致性、時(shí)效性等。 -
數(shù)據(jù)變動(dòng)歷史:
記錄數(shù)據(jù)的變動(dòng)歷史,包括數(shù)據(jù)的創(chuàng)建時(shí)間、修改時(shí)間、版本號(hào)等信息。 -
數(shù)據(jù)訪問(wèn)權(quán)限:
記錄數(shù)據(jù)的訪問(wèn)權(quán)限和安全設(shè)置,包括數(shù)據(jù)的可訪問(wèn)范圍、用戶權(quán)限、角色權(quán)限等。 -
數(shù)據(jù)關(guān)系和依賴:
描述數(shù)據(jù)之間的關(guān)系和依賴關(guān)系,包括表之間的關(guān)聯(lián)關(guān)系、數(shù)據(jù)流程、數(shù)據(jù)轉(zhuǎn)換邏輯等。 -
數(shù)據(jù)業(yè)務(wù)規(guī)則:
記錄數(shù)據(jù)的業(yè)務(wù)規(guī)則和邏輯,包括數(shù)據(jù)的計(jì)算規(guī)則、數(shù)據(jù)轉(zhuǎn)換規(guī)則、數(shù)據(jù)驗(yàn)證規(guī)則等。
元數(shù)據(jù)管理的重要性體現(xiàn)在以下幾個(gè)方面:
-
數(shù)據(jù)理解和使用
元數(shù)據(jù)提供了數(shù)據(jù)的上下文和含義,幫助用戶理解數(shù)據(jù)的結(jié)構(gòu)和意義,從而更好地使用和分析數(shù)據(jù)。 -
數(shù)據(jù)一致性和準(zhǔn)確性
通過(guò)元數(shù)據(jù)管理,可以確保數(shù)據(jù)的定義和約束條件的一致性,從而提高數(shù)據(jù)的準(zhǔn)確性和質(zhì)量。 -
數(shù)據(jù)集成和共享
元數(shù)據(jù)管理可以幫助識(shí)別和管理不同數(shù)據(jù)源和數(shù)據(jù)系統(tǒng)之間的關(guān)系,促進(jìn)數(shù)據(jù)的集成和共享。 -
數(shù)據(jù)安全和權(quán)限控制
元數(shù)據(jù)管理可以記錄和管理數(shù)據(jù)的訪問(wèn)權(quán)限和安全設(shè)置,確保數(shù)據(jù)的安全性和合規(guī)性。 -
數(shù)據(jù)治理和數(shù)據(jù)血緣分析
元數(shù)據(jù)管理為數(shù)據(jù)治理和數(shù)據(jù)血緣分析提供了基礎(chǔ),支持?jǐn)?shù)據(jù)的追溯、追蹤和管理。
通過(guò)有效的元數(shù)據(jù)管理,組織可以更好地管理和利用數(shù)據(jù),提高數(shù)據(jù)的價(jià)值和效益。
5.4.2、元數(shù)據(jù)管理方式
- 元數(shù)據(jù)分類
(1)技術(shù)元數(shù)據(jù):存儲(chǔ)元數(shù)據(jù)、運(yùn)行元數(shù)據(jù)、調(diào)度元數(shù)據(jù)
(2)業(yè)務(wù)元數(shù)據(jù):維度及屬性、業(yè)務(wù)過(guò)程、指標(biāo) - 元數(shù)據(jù)平臺(tái)建設(shè)
EXCEL、自研、商用(如datawroks)、開(kāi)源組件(如Atlas) - 元數(shù)據(jù)應(yīng)用
數(shù)據(jù)地圖、數(shù)據(jù)血緣、數(shù)據(jù)開(kāi)發(fā)規(guī)范、模型優(yōu)化、成本治理
5、數(shù)據(jù)建模
5.1、 模型建設(shè)
5.1.1 什么是數(shù)據(jù)模型
- 基于對(duì)業(yè)務(wù)的理解,對(duì)各種數(shù)據(jù)進(jìn)行整合和關(guān)聯(lián)
- 增強(qiáng)數(shù)據(jù)可用性、可讀性、讓使用方可快速獲取有價(jià)值的信息
- 數(shù)據(jù)模型一般使用星型模型
- 數(shù)據(jù)模型就是按照一定規(guī)則設(shè)計(jì)的表
5.1.2 為什么要數(shù)據(jù)建模
- 進(jìn)行全面的業(yè)務(wù)梳理,改進(jìn)業(yè)務(wù)流程
- 建立全方位的數(shù)據(jù)視角,消滅信息孤島和數(shù)據(jù)差異
- 解決業(yè)務(wù)的變動(dòng)和數(shù)據(jù)倉(cāng)庫(kù)的靈活性
- 幫助數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)本身的建設(shè)
5.1.3 建模工具
- PowerDesigner
- draw.io
- Visio
- ER/Studio
5.1.4 數(shù)據(jù)建模原則
- 高內(nèi)聚和低耦合
- 核心模型與擴(kuò)展模型分離
- 公共處理邏輯下沉及單一
- 成本與性能平衡
- 數(shù)據(jù)可回滾
- 一致性
- 命名清晰、可理解
5.1.5 建模階段劃分
- 業(yè)務(wù)模型——生成業(yè)務(wù)模型,主要解決業(yè)務(wù)層面的 分解和程序化
- 領(lǐng)域模型——生成領(lǐng)域模型,主要是對(duì)業(yè)務(wù)模型進(jìn)行抽象處理,生成領(lǐng)域概念模型
- 邏輯模型——生成邏輯模型,主要是將領(lǐng)域模型的概念實(shí)體以及實(shí)體之間的關(guān)系進(jìn)行數(shù)據(jù)庫(kù)層次 的邏輯化
- 物理模型——生成物理模型,主要解決邏輯模型針對(duì)不同關(guān)系型數(shù)據(jù)庫(kù)的物理化以及性能等一些具體的技術(shù)問(wèn)題。
5.1.6 建模步驟
- 選擇需要進(jìn)行分析決策的業(yè)務(wù)過(guò)程。比如下單。
- 選擇粒度。在事件分析中,我們要預(yù)判所有分析需要細(xì)分的程度,從而決定選擇的粒度。比如訂單粒度,粒度是維度的一個(gè)組合。
- 識(shí)別維表。選擇好粒度之后,就需要基于此粒度設(shè)計(jì)維表,包括維度屬性,用于分析時(shí)進(jìn)行分組和篩選。
- 選擇事實(shí)。確定分析需要衡量的指標(biāo)。
5.2、模型評(píng)判標(biāo)準(zhǔn)&模型優(yōu)化策略
- 擴(kuò)展性
新增加的模型是否和老模型出現(xiàn)沖突。 - 時(shí)效性
能否保證日常的sla(時(shí)效保障)。 - 準(zhǔn)確性
輸出的指標(biāo)數(shù)據(jù)質(zhì)量能夠保證。 - 低成本
存儲(chǔ)成本、計(jì)算成本。 - 健壯性
業(yè)務(wù)快速更新迭代的情況下不會(huì)太影響底層模型。 - 規(guī)范度
主題域歸屬、任務(wù)命名規(guī)范。 - 復(fù)用度
(1)模型引用系數(shù):模型被讀取并產(chǎn)出下游模型的平均數(shù)量;
(2)dwd、dws下游直接產(chǎn)出表的數(shù)量。 - 完善度
(1)匯總數(shù)據(jù)能直接滿足多少查詢需求,即應(yīng)用層訪問(wèn)匯總層數(shù)據(jù)的查詢比例;
(2)跨層層引用率:ODS 層直接被 DWS/ADM/DIM 層引用的表,占所有 ODS 層表(僅統(tǒng)計(jì)活躍表)比例;
(3)同層 level>2 的占比等量化 指標(biāo);
(4)快速響應(yīng)業(yè)務(wù)方的需求;
(5)比較好的模型,使用方是可以直接從該模型獲取所有想要的數(shù)據(jù)的,如果 dws、ads、dim 層直接引用 ods 層的表比例太大,即跨層率太高,則模型不是最優(yōu),可以繼續(xù)優(yōu)化。
6、數(shù)據(jù)任務(wù)及時(shí)產(chǎn)出
6.1、模型層面
- 模型設(shè)計(jì)
(1)開(kāi)發(fā)規(guī)范
(2)設(shè)計(jì)原則 - 模型新增&迭代
(1)模型新增——試運(yùn)行后上線
(2)模型迭代——試運(yùn)行后上線、評(píng)估對(duì)上下游任務(wù)的影響 - 模型優(yōu)化
(1)sql 調(diào)優(yōu)
(2)事實(shí)表維表的拆分與整合 - 模型優(yōu)先級(jí)
(1)設(shè)置優(yōu)先級(jí)
(2)合理評(píng)估優(yōu)先級(jí)
6.2、調(diào)度層面
- 調(diào)度系統(tǒng)
(1)調(diào)度系統(tǒng)調(diào)不起來(lái)任務(wù)
(2)運(yùn)行成功的任務(wù)狀態(tài)一直不改變,下游無(wú)法運(yùn)行 - 任務(wù)調(diào)度配置
(1)沒(méi)有配置依賴
(2)任務(wù)互相依賴
6.3、大數(shù)據(jù)運(yùn)維層面
- 資源
(1)計(jì)算
(2)存儲(chǔ) - 組件故障
6.4、監(jiān)控層面
-
數(shù)據(jù)質(zhì)量監(jiān)控
(1)數(shù)據(jù)量
(2)唯一性
(3)指標(biāo)波動(dòng)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-659131.html -
任務(wù)延遲未產(chǎn)出監(jiān)控
(1)超時(shí)時(shí)間設(shè)置
(2)人工介入文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-659131.html
6.5、值班層面
- 人員安排
- 告警機(jī)制
- 問(wèn)題處理機(jī)制
- 責(zé)任劃分
- 故障等級(jí)報(bào)告
到了這里,關(guān)于數(shù)據(jù)倉(cāng)庫(kù)建設(shè)指導(dǎo)說(shuō)明的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!