前言
本文對(duì)關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)(RDW)進(jìn)行了簡(jiǎn)要的介紹說(shuō)明,包括什么是關(guān)系型數(shù)據(jù)倉(cāng)庫(kù),以及為什么要使用關(guān)系型數(shù)據(jù)倉(cāng)庫(kù),其優(yōu)缺點(diǎn)有哪些,如何增量更新數(shù)據(jù)等,最后還討論了關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)是否會(huì)消失的問(wèn)題,以及哪些人會(huì)繼續(xù)使用關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)。
什么是關(guān)系型數(shù)倉(cāng)
關(guān)系型數(shù)倉(cāng)(RDW是集中存儲(chǔ)和管理從多個(gè)數(shù)據(jù)源復(fù)制的大量結(jié)構(gòu)化數(shù)據(jù)的地方,用于歷史和趨勢(shì)分析報(bào)表,以便公司可以做出更好的業(yè)務(wù)決策。之所以稱為關(guān)系型,是因?yàn)樗陉P(guān)系模型,這是一種廣泛使用的數(shù)據(jù)庫(kù)數(shù)據(jù)表示和組織方法。在關(guān)系模型中,數(shù)據(jù)被組織成表(也稱為關(guān)系)。這些表由行和列組成,其中每行代表一個(gè)實(shí)體(例如客戶或產(chǎn)品),每列代表該實(shí)體的一個(gè)屬性(例如名稱、價(jià)格或數(shù)量)。它被稱為數(shù)據(jù)倉(cāng)庫(kù),因?yàn)樗占?、存?chǔ)和管理來(lái)自各種來(lái)源的大量結(jié)構(gòu)化數(shù)據(jù),例如事務(wù)數(shù)據(jù)庫(kù)、web 應(yīng)用程序系統(tǒng)和外部數(shù)據(jù)源。
并非所有數(shù)據(jù)倉(cāng)庫(kù)都基于關(guān)系模型, 非關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)包括柱狀數(shù)據(jù)倉(cāng)庫(kù)、NoSQL 數(shù)據(jù)倉(cāng)庫(kù)和圖數(shù)據(jù)倉(cāng)庫(kù)等類型。然而,關(guān)系數(shù)據(jù)倉(cāng)庫(kù)更受歡迎并被廣泛采用,主要是因?yàn)殛P(guān)系數(shù)據(jù)庫(kù)幾十年來(lái)一直是占主導(dǎo)地位的數(shù)據(jù)管理范例。關(guān)系模型非常適合業(yè)務(wù)應(yīng)用程序中常見的結(jié)構(gòu)化數(shù)據(jù)。它還由于 SQL 的廣泛使用而流行,多年來(lái) SQL 一直是關(guān)系數(shù)據(jù)倉(cāng)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。
RDW 充當(dāng)許多主題領(lǐng)域的中央存儲(chǔ)庫(kù),并提供唯一版本真實(shí)數(shù)據(jù)(SVOT), SVOT 是數(shù)據(jù)倉(cāng)庫(kù)中的一個(gè)關(guān)鍵概念,指的是為公司提供統(tǒng)一,一致的數(shù)據(jù)視圖。這意味著數(shù)據(jù)倉(cāng)庫(kù)中的所有數(shù)據(jù)都以標(biāo)準(zhǔn)化、結(jié)構(gòu)化的格式存儲(chǔ),并能表示數(shù)據(jù)版本的唯一、準(zhǔn)確。這確保所有用戶都可以訪問(wèn)相同的數(shù)據(jù),消除任何差異或不一致,并消除數(shù)據(jù)孤島。這改善了整個(gè)組織的決策、協(xié)作和效率。它還降低了因使用不同的、不一致的數(shù)據(jù)源而可能出現(xiàn)的錯(cuò)誤和誤解的風(fēng)險(xiǎn)。
想象一下,如果沒有數(shù)據(jù)倉(cāng)庫(kù),而是直接從多個(gè)源系統(tǒng)生成報(bào)表,甚至可能是一些 Excel 文件。如果報(bào)表查看者質(zhì)疑數(shù)據(jù)的準(zhǔn)確性,你可以告訴他們什么? “真實(shí)”可能分散在如此多的源系統(tǒng)中,以至于很難追蹤數(shù)據(jù)的來(lái)源。此外,某些報(bào)告會(huì)對(duì)相同的數(shù)據(jù)給出不同的結(jié)果,例如,如果兩個(gè)報(bào)告使用復(fù)雜的邏輯從多個(gè)源提取數(shù)據(jù),并且邏輯更新不正確(或根本不更新)。將所有數(shù)據(jù)集中在一個(gè)中心位置意味著數(shù)據(jù)倉(cāng)庫(kù)是唯一的真實(shí)數(shù)據(jù)來(lái)源,有關(guān)報(bào)表數(shù)據(jù)的任何問(wèn)題都可以由數(shù)據(jù)倉(cāng)庫(kù)來(lái)解答。對(duì)于希望充分利用數(shù)據(jù)價(jià)值的公司來(lái)說(shuō),維護(hù) SVOT 至關(guān)重要。
如果整個(gè)公司都使用數(shù)據(jù)倉(cāng)庫(kù) (DW),則通常將數(shù)倉(cāng)叫做企業(yè)數(shù)據(jù)倉(cāng)庫(kù)(EDW)。這是一個(gè)更全面、更強(qiáng)大的數(shù)據(jù)倉(cāng)庫(kù)版本,旨在支持整個(gè)組織的需求。雖然標(biāo)準(zhǔn)數(shù)據(jù)倉(cāng)庫(kù)可能支持幾個(gè)業(yè)務(wù)部門,但整個(gè)公司內(nèi)有許多數(shù)據(jù)倉(cāng)庫(kù),而 EDW 使用更廣泛的數(shù)據(jù)源和數(shù)據(jù)類型來(lái)支持所有業(yè)務(wù)部門。 EDW 提供了公司所有數(shù)據(jù)的單一、統(tǒng)一視圖。
下圖說(shuō)明了擁有數(shù)據(jù)倉(cāng)庫(kù)的主要原因。左圖顯示了在沒有數(shù)據(jù)倉(cāng)庫(kù)的情況下使用來(lái)自多個(gè)應(yīng)用程序的數(shù)據(jù)運(yùn)行報(bào)表是多么具有挑戰(zhàn)性。每個(gè)部門都會(huì)運(yùn)行一份報(bào)表,從與每個(gè)應(yīng)用程序關(guān)聯(lián)的所有數(shù)據(jù)庫(kù)采集數(shù)據(jù)。運(yùn)行的查詢?nèi)绱酥?,必然?huì)出現(xiàn)性能問(wèn)題和不正確的數(shù)據(jù)。右圖顯示,將所有應(yīng)用程序數(shù)據(jù)復(fù)制到 EDW 后,每個(gè)部門都可以非常輕松地運(yùn)行報(bào)告,而不會(huì)影響性能。
通常,要構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)管道將執(zhí)行三個(gè)步驟,稱為提取、轉(zhuǎn)換和加載 (ETL):
- 該管道從源系統(tǒng)中提取數(shù)據(jù),例如數(shù)據(jù)庫(kù)和普通文件
- 然后,對(duì)提取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換或其他操作,以滿足目標(biāo)系統(tǒng)的要求。這可能涉及數(shù)據(jù)清洗、過(guò)濾、聚合或組合來(lái)自多個(gè)來(lái)源的數(shù)據(jù)。
- 轉(zhuǎn)換后的數(shù)據(jù)被加載到數(shù)據(jù)倉(cāng)庫(kù)中。 DBA 可以使數(shù)據(jù)庫(kù)和字段名稱更有意義,使最終用戶更輕松、更快速地創(chuàng)建報(bào)表。
對(duì)數(shù)倉(cāng)的錯(cuò)誤認(rèn)識(shí)與使用
上邊說(shuō)明了什么叫數(shù)倉(cāng),下邊列舉了對(duì)數(shù)倉(cāng)的錯(cuò)誤認(rèn)識(shí),進(jìn)而導(dǎo)致的錯(cuò)誤使用:
直接復(fù)制源表加上DW 前綴
- 數(shù)倉(cāng)不是源表的副本,數(shù)倉(cāng)中的表是用來(lái)數(shù)據(jù)分析的,直接將數(shù)據(jù)源的表復(fù)制一份至數(shù)倉(cāng),然后加上DW 前綴是無(wú)意義的。
作為多個(gè)表的 union 視圖
- 將多個(gè)數(shù)據(jù)源的表直接復(fù)制到數(shù)倉(cāng),然后在數(shù)倉(cāng)中通過(guò) Union 多張表查詢視圖,比如說(shuō)有三個(gè)數(shù)據(jù)源的表分別為 t1, t2, t3, 然后復(fù)制到數(shù)倉(cāng)創(chuàng)建 dw_t1, dw_t2, dw_t3 表,然后需要?jiǎng)?chuàng)建一張報(bào)表需要用到這三張視圖,就在數(shù)倉(cāng)中使用 Union 聯(lián)合查詢,這是錯(cuò)誤的做法。
相反,我們需要在數(shù)倉(cāng)中建模,然后將外部多個(gè)數(shù)據(jù)源表中的數(shù)據(jù)復(fù)制到數(shù)倉(cāng)的一個(gè)模型表中,供分析查詢。
單純作為外部源數(shù)據(jù)的集中存儲(chǔ)
- 還有更極端的錯(cuò)誤做法就是把數(shù)倉(cāng)單純作為一個(gè)外部數(shù)據(jù)源的集中存儲(chǔ)地,不斷的往數(shù)倉(cāng)中添加亂七八糟的,未經(jīng)建模整理的外部源數(shù)據(jù),用垃圾場(chǎng)來(lái)形容毫不為過(guò),試想一下,讓我們從垃圾場(chǎng)去找東西方便嗎?
許多數(shù)倉(cāng)在一開始只是為幾個(gè)用戶提供的一次性解決方案,隨著用戶的增多,演變成為整個(gè)公司提供數(shù)據(jù)的成熟但設(shè)計(jì)不佳的數(shù)據(jù)倉(cāng)庫(kù)。其實(shí)在一開始的時(shí)候,數(shù)倉(cāng)就需要確定每一次的數(shù)據(jù)接入是否為一次性的,是否應(yīng)該在前期花費(fèi)一些必要的時(shí)間去進(jìn)行數(shù)據(jù)建模,讓數(shù)倉(cāng)的表更加抽象化,進(jìn)而后期可以支持接入更多的數(shù)據(jù)源。
自上而下的方法
在 RDW 中,我們需要預(yù)先做大量工作才能將數(shù)據(jù)傳輸?shù)娇梢允褂盟鼇?lái)創(chuàng)建報(bào)表的位置。預(yù)先完成所有這些工作是一種稱為自上而下方法的設(shè)計(jì)和實(shí)現(xiàn)。這種方法非常適合查詢歷史數(shù)據(jù)創(chuàng)建報(bào)表,在這種報(bào)表中,我們?cè)噲D確定發(fā)生了什么(描述性分析)以及發(fā)生的原因(診斷分析)。
在自上而下的方法中,首先建立數(shù)據(jù)倉(cāng)庫(kù)的總體規(guī)劃、設(shè)計(jì)和架構(gòu),然后開發(fā)具體的組件。該方法強(qiáng)調(diào)在深入開發(fā)數(shù)據(jù)倉(cāng)庫(kù)之前制定符合整個(gè)公司的愿景并了解公司的戰(zhàn)略目標(biāo)和數(shù)據(jù)需求的重要性。
描述性分析和診斷分析是商業(yè)中常用的兩種重要的數(shù)據(jù)分析類型。
描述性分析涉及分析數(shù)據(jù)以描述過(guò)去或當(dāng)前的事件,通常通過(guò)使用匯總統(tǒng)計(jì)或數(shù)據(jù)可視化。此類分析用于了解過(guò)去發(fā)生的情況,并識(shí)別數(shù)據(jù)中有助于決策的模式或趨勢(shì)。
診斷分析通常通過(guò)檢查不同變量或因素之間的關(guān)系來(lái)調(diào)查過(guò)去事件的原因。此類分析可以定位問(wèn)題原因或推斷可能影響業(yè)務(wù)發(fā)展的問(wèn)題。
假設(shè)一家公司想要分析過(guò)去一年的銷售數(shù)據(jù)。描述性分析將涉及計(jì)算匯總統(tǒng)計(jì)數(shù)據(jù),例如總銷售收入、每日平均銷售額以及按產(chǎn)品類別劃分的銷售額,以了解發(fā)生的情況。相比之下,診斷分析將檢查因素(例如銷售和營(yíng)銷支出,或季節(jié)性和客戶人口統(tǒng)計(jì))之間的關(guān)系,以了解銷售額全年波動(dòng)的原因。通過(guò)結(jié)合這兩種方法,公司可以更深入地了解其數(shù)據(jù)并做出更明智的決策。
關(guān)系型數(shù)倉(cāng)的架構(gòu)如下圖所示,ETL 用于將多個(gè)來(lái)源的數(shù)據(jù)提取到 RDW 中,在其中可以執(zhí)行報(bào)告和其他分析。自上而下的方法通常涉及以下步驟:
-
預(yù)先提出一些假設(shè)
首先要清楚地了解公司戰(zhàn)略, 然后確保知道要對(duì)數(shù)據(jù)提出哪些問(wèn)題。
-
定義業(yè)務(wù)需求
確定組織的目的、目標(biāo)和關(guān)鍵績(jī)效指標(biāo) (KPI)。收集并分析各部門和用戶的數(shù)據(jù)需求,還可以將此步驟視為定義報(bào)表的要求。
-
設(shè)計(jì)數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)
根據(jù)業(yè)務(wù)需求,創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù)的高層架構(gòu),包括數(shù)據(jù)倉(cāng)庫(kù)的結(jié)構(gòu)、數(shù)據(jù)模型和數(shù)據(jù)集成流程。
-
開發(fā)數(shù)據(jù)模型
為數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)詳細(xì)的數(shù)據(jù)模型,考慮各種數(shù)據(jù)實(shí)體之間的關(guān)系和數(shù)據(jù)的粒度。
-
構(gòu)建架構(gòu)
為數(shù)據(jù)倉(cāng)庫(kù)開發(fā)適當(dāng)?shù)臄?shù)據(jù)庫(kù)、寫時(shí) schema、表和字段。
-
開發(fā)ETL
開發(fā) ETL 流程以從各種源系統(tǒng)中提取數(shù)據(jù),將其轉(zhuǎn)換為所需的格式,并將其加載到數(shù)據(jù)倉(cāng)庫(kù)中。
-
開發(fā)和部署B(yǎng)I工具和應(yīng)用程序
構(gòu)建部署 BI 工具,允許用戶訪問(wèn)、分析和報(bào)表創(chuàng)建。
-
測(cè)試和完善數(shù)據(jù)倉(cāng)庫(kù)
執(zhí)行測(cè)試以確保數(shù)據(jù)質(zhì)量、性能和可靠性。進(jìn)行必要的調(diào)整以優(yōu)化系統(tǒng)。
-
維護(hù)和擴(kuò)展數(shù)據(jù)倉(cāng)庫(kù)
隨著組織需求的發(fā)展,相應(yīng)地更新和擴(kuò)展數(shù)據(jù)倉(cāng)庫(kù)。
自上而下的方法具有一些優(yōu)點(diǎn),例如全面了解組織的數(shù)據(jù)需求、更好的數(shù)據(jù)一致性以及改進(jìn)的治理。然而,它也可能非常耗時(shí)且資源密集,與數(shù)據(jù)湖使用的自下而上的方法相比,需要更長(zhǎng)的時(shí)間才能產(chǎn)生價(jià)值。
關(guān)系型數(shù)倉(cāng)的優(yōu)點(diǎn)
關(guān)系型數(shù)倉(cāng)最直接的好處就是可以快捷,方便的生成 BI 報(bào)表,還有一些別的好處:
-
減輕業(yè)務(wù)方生產(chǎn)系統(tǒng)的壓力
分析報(bào)表查詢,不經(jīng)過(guò)業(yè)務(wù)方的數(shù)據(jù)庫(kù)系統(tǒng)。
-
讀取速度快
數(shù)倉(cāng)的表是一次寫入多次讀取,意味著數(shù)倉(cāng)的數(shù)據(jù)庫(kù)技術(shù)可以針對(duì)查詢做一些優(yōu)化,加速查詢速度。
-
整合多個(gè)數(shù)據(jù)源
將多個(gè)數(shù)據(jù)源的數(shù)據(jù)集中在一個(gè)查詢?nèi)肟?,減少報(bào)表構(gòu)建的復(fù)雜度,提升報(bào)表查詢的性能。
-
歷史數(shù)據(jù)保存
數(shù)倉(cāng)保存加載的源數(shù)據(jù)的歷史數(shù)據(jù)記錄,支持需要查詢歷史數(shù)據(jù)構(gòu)建報(bào)表。
-
整合重構(gòu)業(yè)務(wù)表元信息
許多應(yīng)用程序數(shù)據(jù)庫(kù)的表名和字段名非常難以理解,尤其是較舊的 ERP 和 CRM 產(chǎn)品(例如表名T116和字段名RAP16)。在數(shù)據(jù)倉(cāng)庫(kù)中,我們可以將這些源表中的數(shù)據(jù)以更加容易理解的方式復(fù)制到數(shù)倉(cāng)(例如,Customer而不是T116)。還可以為表創(chuàng)建更好的數(shù)據(jù)模型,用戶不必翻譯神秘的表和字段名稱,能夠更輕松地創(chuàng)建報(bào)表。
-
防止業(yè)務(wù)表變更對(duì)報(bào)表的影響
如果直接從業(yè)務(wù)表查詢數(shù)據(jù)構(gòu)建報(bào)表,當(dāng)業(yè)務(wù)表元信息變更后,報(bào)表將變得不可用。通過(guò)數(shù)倉(cāng)構(gòu)建報(bào)表則不會(huì)有這種影響,最多報(bào)表無(wú)法查詢最新的業(yè)務(wù)數(shù)據(jù)構(gòu)建報(bào)表,但是歷史的報(bào)表是可以繼續(xù)查看的。
當(dāng)數(shù)倉(cāng)的 ETL 適應(yīng)業(yè)務(wù)方的業(yè)務(wù)表變更進(jìn)行修復(fù)后,就可以繼續(xù)查詢最新的報(bào)表了。 -
提供數(shù)據(jù)安全保障
如果沒有 DW,將需要給用戶提供生成報(bào)表所需的各個(gè)數(shù)據(jù)源的訪問(wèn)權(quán)限,可能有幾十個(gè),提供訪問(wèn)權(quán)限的過(guò)程可能需要數(shù)周時(shí)間。使用數(shù)據(jù)倉(cāng)庫(kù),每個(gè)用戶只需要申請(qǐng)一個(gè)統(tǒng)一的查詢?nèi)肟冢纯筛鶕?jù)權(quán)限訪問(wèn)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,效率高。
-
保證數(shù)據(jù)質(zhì)量
數(shù)倉(cāng)從各個(gè)數(shù)據(jù)源獲取到的數(shù)據(jù)往往都需要經(jīng)過(guò)清洗,保證生成報(bào)表的數(shù)據(jù)質(zhì)量。
關(guān)系型數(shù)倉(cāng)的缺點(diǎn)
-
復(fù)雜
數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)、構(gòu)建和維護(hù)可能非常復(fù)雜且耗時(shí)。所需的專業(yè)技能和資源可能會(huì)增加成本。
-
成本高
實(shí)施數(shù)據(jù)倉(cāng)庫(kù)的成本可能很高,需要在硬件、軟件和人員方面進(jìn)行大量投資。持續(xù)的維護(hù)和升級(jí)也會(huì)增加成本。
-
數(shù)據(jù)集成難度高
集成來(lái)自不同來(lái)源的數(shù)據(jù)可能具有挑戰(zhàn)性,因?yàn)樗赡苌婕疤幚聿煌臄?shù)據(jù)格式、結(jié)構(gòu)和質(zhì)量問(wèn)題。這可能會(huì)導(dǎo)致在數(shù)據(jù)清理和預(yù)處理上花費(fèi)時(shí)間和精力。此外,某些數(shù)據(jù)(例如來(lái)自物聯(lián)網(wǎng)設(shè)備的流數(shù)據(jù))太難提取到 RDW 中,因此從這些數(shù)據(jù)中獲得的潛在價(jià)值就會(huì)丟失。
-
數(shù)據(jù)轉(zhuǎn)換耗時(shí)
為了將數(shù)據(jù)加載到 DW 中,可能需要對(duì)其進(jìn)行轉(zhuǎn)換以符合倉(cāng)庫(kù)的數(shù)據(jù)模型。此過(guò)程可能非常耗時(shí),并且數(shù)據(jù)轉(zhuǎn)換中的錯(cuò)誤可能會(huì)導(dǎo)致分析不準(zhǔn)確。
-
數(shù)據(jù)延遲
由于數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)用于處理大量數(shù)據(jù),因此它們的處理速度可能比其他類型的數(shù)據(jù)庫(kù)慢。這可能會(huì)導(dǎo)致數(shù)據(jù)延遲,即倉(cāng)庫(kù)中的數(shù)據(jù)不是最新的源數(shù)據(jù)庫(kù)的最新數(shù)據(jù)。
-
維護(hù)期間不可用
對(duì)于 RDW,通常需要一個(gè)維護(hù)時(shí)段。加載和清理數(shù)據(jù)非常耗費(fèi)資源,如果用戶再次期間嘗試同時(shí)運(yùn)行報(bào)表查詢,他們將遇到性能非常低的情況。因此,在維護(hù)期間,用戶不可用。如果在維護(hù)時(shí)段期間出現(xiàn)任何問(wèn)題,例如 ETL 作業(yè)失敗,可能需要延長(zhǎng)維護(hù)時(shí)段。如果用戶嘗試運(yùn)行報(bào)表查詢但仍然不可用,會(huì)降低用戶的信任度。
-
靈活性有限
DW 旨在支持特定類型的分析,這可能會(huì)限制其其他類型數(shù)據(jù)處理或分析的靈活性??赡苄枰獙⑵渌ぞ呋蛳到y(tǒng)與倉(cāng)庫(kù)集成以滿足特定需求。
-
存在安全和隱私問(wèn)題
在集中位置存儲(chǔ)大量敏感數(shù)據(jù)可能會(huì)增加數(shù)據(jù)泄露和隱私侵犯的風(fēng)險(xiǎn),因此需要采取強(qiáng)有力的安全措施。
數(shù)據(jù)加載
由于輸入數(shù)據(jù)倉(cāng)庫(kù)的源表會(huì)隨著時(shí)間的推移而發(fā)生變化,因此數(shù)據(jù)倉(cāng)庫(kù)需要反映這些變化。這聽起來(lái)很簡(jiǎn)單,但是需要做出許多決定:加載(或拉取)數(shù)據(jù)的頻率、使用什么提取方法、如何加載數(shù)據(jù)以及如何確定自上次加載以來(lái)哪些數(shù)據(jù)已更改。
加載數(shù)據(jù)的頻率
需要多久更新一次 DW 在很大程度上取決于源系統(tǒng)數(shù)據(jù)的更新頻率以及用戶需要報(bào)表創(chuàng)建的時(shí)效性。用戶通常不想查看當(dāng)天的數(shù)據(jù),而更愿意獲取前一天結(jié)束時(shí)的所有數(shù)據(jù)。在這種情況下,可以在源系統(tǒng)數(shù)據(jù)庫(kù)完成更新后每天晚上運(yùn)行作業(yè)以通過(guò) ETL 工具從源系統(tǒng)中加載數(shù)據(jù),從而創(chuàng)建一個(gè)夜間維護(hù)窗口來(lái)完成所有數(shù)據(jù)傳輸。如果最終用戶在白天需要更新,則需要更頻繁的加載,例如每小時(shí)一次。
需要考慮的一件事是每次加載的數(shù)據(jù)大小。如果它非常大,更新 DW 可能會(huì)花費(fèi)太長(zhǎng)時(shí)間,因此可能希望將更新拆分為更小的塊并進(jìn)行更頻繁的加載和更新(例如,每小時(shí)而不是每天)。
寫入方式
有兩種從源系統(tǒng)提取數(shù)據(jù)的方法:
全量加載
- 在全量加載中,所有數(shù)據(jù)都是從源系統(tǒng)中的一個(gè)或多個(gè)表中完全加載的。由于這種記載反映了源系統(tǒng)上當(dāng)前可用的所有數(shù)據(jù),因此無(wú)需跟蹤更改,使得該方法非常容易構(gòu)建。源數(shù)據(jù)按原樣提供,不需要任何其他信息(例如時(shí)間戳)。
增量加載
- 在增量加載中,僅加載自指定時(shí)間(例如上次加載結(jié)束)以來(lái)發(fā)生更改的數(shù)據(jù),而不是整個(gè)表。這最適合大型表,并且僅當(dāng)可以識(shí)別所有更改的信息時(shí)才有效。
無(wú)論是進(jìn)行全量加載還是增量加載,都有兩種加載數(shù)據(jù)的方法:在線和離線。
在在線加載中,加載過(guò)程可以直接連接到源系統(tǒng)以訪問(wèn)源表,也可以連接到以預(yù)先配置的方式(例如,在事務(wù)日志或更改表中)存儲(chǔ)數(shù)據(jù)更改的中間系統(tǒng)。
但是,并不是一直可以直接訪問(wèn)源系統(tǒng)。在這種情況下,數(shù)據(jù)將暫存于原始源系統(tǒng)之外,加載的數(shù)據(jù)通常被放在 CSV 或 JSON 等文件中。
如何確定變更數(shù)據(jù)
時(shí)間戳
- 業(yè)務(wù)系統(tǒng)的表最好帶上更新時(shí)間字段
變更數(shù)據(jù)獲取
- 大多數(shù)關(guān)系數(shù)據(jù)庫(kù)支持更改數(shù)據(jù)捕獲(CDC),它記錄數(shù)據(jù)庫(kù)表的
INSERTs
、UPDATEs
等變更操作,并根據(jù)關(guān)系數(shù)據(jù)庫(kù)的事務(wù)日志使表記錄更改內(nèi)容、位置和時(shí)間。如果需要近乎實(shí)時(shí)的數(shù)據(jù)倉(cāng)庫(kù),可以在幾秒鐘內(nèi)看到數(shù)據(jù)倉(cāng)庫(kù)中反映的源系統(tǒng)的更改,那么 CDC 可能是關(guān)鍵的支持技術(shù)。
分區(qū)
- 業(yè)務(wù)系統(tǒng)的表如果按照時(shí)間分區(qū),那么數(shù)倉(cāng)在加載數(shù)據(jù)時(shí)可以指定分區(qū),加載指定日期的數(shù)據(jù)。
變更觸發(fā)器
- 業(yè)務(wù)表也可以通過(guò)設(shè)置變更觸發(fā)器,將變更數(shù)據(jù)寫入“變更表”,然后數(shù)倉(cāng)加載變更表中的數(shù)據(jù)。如果數(shù)據(jù)庫(kù)支持CDC,最好還是使用 CDC 加載變更數(shù)據(jù)。
數(shù)倉(cāng) Merge 更新
- 如果沒有其他方式,數(shù)倉(cāng)可以加載全量數(shù)據(jù),然后在數(shù)倉(cāng)內(nèi)執(zhí)行 Merge 操作,對(duì)比源字段與目標(biāo)字段。但是該方法將會(huì)嚴(yán)重增加數(shù)倉(cāng)的負(fù)擔(dān),不建議使用。
關(guān)系型數(shù)倉(cāng)會(huì)消失嗎
大約在 2010 年代初,互聯(lián)網(wǎng)界就開始討論是否還需要關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)的問(wèn)題,該問(wèn)題實(shí)際上是關(guān)于數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)的——可以只使用數(shù)據(jù)湖,還是應(yīng)該同時(shí)使用數(shù)據(jù)湖和 RDW?
我一直覺得 RDW 是需要的,因?yàn)閿?shù)據(jù)湖是基于 Hadoop 的,并且有太多限制。但是,一旦 Delta Lake等解決方案變得可用,并且數(shù)據(jù)湖開始出現(xiàn)使用比 Hadoop 更好、更易于使用的產(chǎn)品時(shí),RDW 可能會(huì)慢慢退出歷史的舞臺(tái),目前比較成熟的解決方案是湖倉(cāng)一體方案,筆者公司現(xiàn)在就在探索使用 Flink+Paimon 的湖倉(cāng)一體方案,可以完全拋棄 Hadoop 那一套,使用更加方便。
數(shù)據(jù)湖為數(shù)據(jù)科學(xué)家和自定義數(shù)據(jù)消費(fèi)用戶(“高級(jí)用戶”)提供豐富的數(shù)據(jù)源,并且可以很好地滿足分析和大數(shù)據(jù)的需求。但高級(jí)用戶并沒有那么多,大多數(shù)人仍然需要集成良好、系統(tǒng)清理、易于訪問(wèn)的關(guān)系數(shù)據(jù),其中包括獲取一段時(shí)間內(nèi)事物如何演變或進(jìn)展的歷史日志。這些人最適合使用關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-849781.html
總結(jié)
本文介紹了大數(shù)據(jù)架構(gòu)第一個(gè)廣泛使用的技術(shù)解決方案,用于集中多個(gè)來(lái)源的數(shù)據(jù)并對(duì)其進(jìn)行報(bào)告:關(guān)系數(shù)據(jù)倉(cāng)庫(kù)。 RDW 通過(guò)提供用于數(shù)據(jù)存儲(chǔ)和檢索的集中存儲(chǔ)庫(kù),徹底改變了企業(yè)和組織管理數(shù)據(jù)的方式,從而實(shí)現(xiàn)更高效的數(shù)據(jù)管理和分析。 RDW 能夠以結(jié)構(gòu)化方式存儲(chǔ)和組織數(shù)據(jù),允許用戶快速輕松地生成復(fù)雜的查詢和報(bào)表,從而提供有價(jià)值的信息并支持關(guān)鍵決策。
如今,關(guān)系數(shù)據(jù)倉(cāng)庫(kù)仍然是許多數(shù)據(jù)架構(gòu)的基本組成部分,并且可以在從金融和醫(yī)療保健到零售和制造的各個(gè)行業(yè)中看到。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-849781.html
到了這里,關(guān)于大數(shù)據(jù)架構(gòu)之關(guān)系型數(shù)據(jù)倉(cāng)庫(kù)——解讀大數(shù)據(jù)架構(gòu)(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!