強(qiáng)大的“心臟”配上“超級(jí)流水線”- GaussDB(DWS)數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)ETL系統(tǒng)建設(shè)方案

      網(wǎng)友投稿 665 2025-04-01

      一、前言


      在數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)建設(shè)過(guò)程中,數(shù)據(jù)的加載、卸載,各層數(shù)據(jù)模型之間的數(shù)據(jù)流轉(zhuǎn),業(yè)務(wù)規(guī)則的實(shí)現(xiàn)等等數(shù)據(jù)加工過(guò)程都會(huì)以ETL任務(wù)的方式實(shí)現(xiàn)。?構(gòu)建ETL子系統(tǒng)是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)實(shí)施的一個(gè)非常重要的環(huán)節(jié),在倉(cāng)庫(kù)平臺(tái)建設(shè)過(guò)程中搭建一個(gè)完整、標(biāo)準(zhǔn)的ETL子系統(tǒng)是數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)建設(shè)的基礎(chǔ)性目標(biāo)之一。

      ETL是Extraction(數(shù)據(jù)抽取),Transform(數(shù)據(jù)轉(zhuǎn)換)和Loading(數(shù)據(jù)加載)這三個(gè)數(shù)據(jù)處理動(dòng)作的縮寫(xiě),也是早期數(shù)據(jù)倉(cāng)庫(kù)建設(shè)的數(shù)據(jù)流轉(zhuǎn)處理順序,因此形成的專用術(shù)語(yǔ)沿用至今。但是隨著作為數(shù)據(jù)倉(cāng)庫(kù)核心的數(shù)據(jù)庫(kù)引擎技術(shù)的不斷發(fā)展,ETL模式也在不斷發(fā)展和改變,逐漸形成了E-L-T,E-T-L-T等不同形式。對(duì)于GaussDB DWS為代表的MPPDB數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),則多以ELT或是ETLT模式為主來(lái)構(gòu)建ETL子系統(tǒng)。

      二、ETL子系統(tǒng)邏輯參考架構(gòu)

      ETL子系統(tǒng)的建設(shè)目的是將企業(yè)中的分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的異構(gòu)數(shù)據(jù)源的業(yè)務(wù)數(shù)據(jù)整合到一起,進(jìn)行必要的清洗和轉(zhuǎn)換,形成高質(zhì)量的統(tǒng)一的數(shù)據(jù)模型,或者是便于用戶查詢,分析和探索的維度模型。

      圖1 數(shù)據(jù)倉(cāng)庫(kù)子系統(tǒng)參考架構(gòu)

      2.1 數(shù)據(jù)抽取(Extraction)

      數(shù)據(jù)抽取是從數(shù)據(jù)倉(cāng)庫(kù)的上游系統(tǒng)(通常是核心系統(tǒng),業(yè)務(wù)系統(tǒng)或外部系統(tǒng))進(jìn)行全量或增量數(shù)據(jù)抓取的過(guò)程。而隨著企業(yè)內(nèi)部信息底層架構(gòu)的完善和數(shù)據(jù)平臺(tái)功能的劃分,不同平臺(tái)通常采用松耦合的方式進(jìn)行關(guān)聯(lián)。傳統(tǒng)中下游系統(tǒng)直接到上游系統(tǒng)進(jìn)行數(shù)據(jù)抽取的這種方式并不符合當(dāng)前技術(shù)的發(fā)展趨勢(shì)。一方面,下游系統(tǒng)直接到上游系統(tǒng)進(jìn)行數(shù)據(jù)抽取操作牽涉到權(quán)限的開(kāi)放管理,增加了上游系統(tǒng)的數(shù)據(jù)安全風(fēng)險(xiǎn)。另一方面,本身數(shù)據(jù)抽取操作也應(yīng)當(dāng)在業(yè)務(wù)系統(tǒng)自身正常業(yè)務(wù)完成后的時(shí)間窗口進(jìn)行,以避免數(shù)據(jù)抽取時(shí)對(duì)正常作業(yè)流程的資源競(jìng)爭(zhēng)。因此數(shù)據(jù)抽取這個(gè)環(huán)節(jié)的操作,通常是上下游系統(tǒng)進(jìn)行接口協(xié)商,由上游系統(tǒng)按照接口規(guī)范進(jìn)行數(shù)據(jù)卸載操作?;蛘邔?duì)于更成熟的企業(yè),會(huì)構(gòu)建統(tǒng)一的數(shù)據(jù)交換平臺(tái)來(lái)完成企業(yè)內(nèi)部統(tǒng)一的數(shù)據(jù)抽取/卸載工作。

      對(duì)于數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)來(lái)說(shuō),數(shù)據(jù)抽取的工作更多的是形成統(tǒng)一的接口規(guī)范。

      2.2 數(shù)據(jù)轉(zhuǎn)換(Transform)

      廣義上的數(shù)據(jù)轉(zhuǎn)換包括數(shù)據(jù)清洗,數(shù)據(jù)關(guān)聯(lián)加工,數(shù)據(jù)標(biāo)準(zhǔn)化處理,數(shù)據(jù)匯總聚合等操作。大部分基于業(yè)務(wù)規(guī)則和數(shù)據(jù)模型的數(shù)據(jù)轉(zhuǎn)換操作在MPPDB數(shù)據(jù)庫(kù)內(nèi)實(shí)現(xiàn)比在數(shù)據(jù)庫(kù)外的ETL服務(wù)器上進(jìn)行實(shí)現(xiàn)效率更高。而這種轉(zhuǎn)換操作在數(shù)據(jù)庫(kù)內(nèi)通過(guò)SQL實(shí)現(xiàn)T過(guò)程,也比通過(guò)ETL工具實(shí)現(xiàn)T過(guò)程更具有標(biāo)準(zhǔn)化和開(kāi)放性,適合業(yè)務(wù)人員參與T過(guò)程的開(kāi)發(fā),校驗(yàn)。

      2.3 數(shù)據(jù)加載(Loading)

      對(duì)于數(shù)據(jù)倉(cāng)庫(kù)而言,不僅僅是數(shù)據(jù)加載,還包括數(shù)據(jù)卸載,也就是Loading和Unloading過(guò)程。典型的場(chǎng)景就是在數(shù)據(jù)到達(dá)的高峰期進(jìn)行大量的文件加載入庫(kù)的操作。而庫(kù)內(nèi)數(shù)據(jù)加工完成后,及時(shí)地進(jìn)行數(shù)據(jù)卸載操作,形成接口文件推送給下游系統(tǒng)。所以高效地批量數(shù)據(jù)加載和卸載操作是數(shù)據(jù)倉(cāng)庫(kù)ETL系統(tǒng)要面對(duì)的主要挑戰(zhàn)之一。而隨著客戶對(duì)實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)的需求越來(lái)越普遍,數(shù)據(jù)庫(kù)和消息隊(duì)列,數(shù)據(jù)流組件之間的實(shí)時(shí)數(shù)據(jù)加載和卸載的技術(shù)則是當(dāng)前ETL系統(tǒng)構(gòu)建時(shí)面臨的又一個(gè)技術(shù)挑戰(zhàn)。

      三、ETL子系統(tǒng)的兩種實(shí)現(xiàn)架構(gòu)

      依托GaussDB(DWS)數(shù)據(jù)庫(kù)構(gòu)建ETL系統(tǒng)一般有兩種實(shí)現(xiàn)方式:重ETL Server方案和MPPDB方案。如下圖

      圖2 兩種架構(gòu)示意圖

      3.1 重ETL Server方案

      這種方案借助專業(yè)化的ETL軟件:Informatica, DataStage, Kettle等軟件,采用分布式的/基于共享存儲(chǔ)的ETL服務(wù)器集群方式部署ETL軟件。在執(zhí)行ETL任務(wù)的時(shí)候,數(shù)據(jù)從MPPDB讀取出來(lái),數(shù)據(jù)處理過(guò)程在ETL服務(wù)器完成,處理完結(jié)果再推送到數(shù)據(jù)庫(kù)服務(wù)器,其中有些操作可以通過(guò)SQL Push down在數(shù)據(jù)庫(kù)內(nèi)完成。

      這種方案的特點(diǎn)在于整個(gè)ETL開(kāi)發(fā)和部署過(guò)程圖形化操作和腳本化操作方式結(jié)合,基于工具過(guò)程的開(kāi)發(fā)也可以對(duì)ETL過(guò)程進(jìn)行基于元數(shù)據(jù)的血緣分析,影響性分析;作業(yè)自動(dòng)化編排,調(diào)度方面ETL工具的功能弱于專業(yè)的調(diào)度軟件。

      基于ETL工具方案對(duì)于ETL開(kāi)發(fā)過(guò)程來(lái)說(shuō)需要專業(yè)的開(kāi)發(fā)人員,要對(duì)ETL工具本身有很深入的了解,從這方面來(lái)說(shuō),過(guò)于專業(yè)化的工具門(mén)檻不利于企業(yè)內(nèi)部的業(yè)務(wù)專家和分析人員介入ETL開(kāi)發(fā)過(guò)程。而ETL方面對(duì)于軟硬件的投入成本也是需要納入考量的一個(gè)問(wèn)題。

      3.2 MPPDB方案

      本方案中ETL服務(wù)器輕量化,生產(chǎn)環(huán)境一般提供主備服務(wù)器避免單點(diǎn)故障即可。主要特點(diǎn)如下:

      利用MPPDB并行處理引擎,海量數(shù)據(jù)ETL處理效率更高。

      ETL過(guò)程SQL模板化,快速開(kāi)發(fā)和迭代的過(guò)程代價(jià)低;

      給強(qiáng)大的“心臟”配上“超級(jí)流水線”- GaussDB(DWS)數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)ETL系統(tǒng)建設(shè)方案

      匯總層和集市層的ETL處理邏輯一般和業(yè)務(wù)規(guī)則強(qiáng)相關(guān),SQL標(biāo)準(zhǔn)對(duì)于業(yè)務(wù)人員開(kāi)發(fā)門(mén)檻低

      與第三方ETL服務(wù)器解耦,通過(guò)工具封裝,可以避免過(guò)度依賴某一個(gè)ETL工具;

      需要對(duì)ETL腳本模板進(jìn)行定制化封裝式開(kāi)發(fā),為運(yùn)維,優(yōu)化,數(shù)據(jù)治理等過(guò)程提供底層數(shù)據(jù)。

      3.3簡(jiǎn)單對(duì)比

      重ETL Server方案適合基于文件的數(shù)據(jù)清洗類ETL工作:對(duì)于字符集的轉(zhuǎn)換處理;按照接口規(guī)范對(duì)接口數(shù)據(jù)的預(yù)處理(判斷文件大小,記錄行數(shù)等文件信息和屬性方面的數(shù)據(jù)質(zhì)量檢查);文件的分組,拆分,壓縮,解壓縮等;以及延伸出去的文件監(jiān)控和傳輸功能。

      MPPDB方案實(shí)際上就是基于SQL的實(shí)現(xiàn)方案,適合數(shù)據(jù)規(guī)范化處理:如業(yè)務(wù)編碼轉(zhuǎn)換,業(yè)務(wù)邏輯主鍵生成,符合業(yè)務(wù)規(guī)范的數(shù)據(jù)轉(zhuǎn)換處理;數(shù)據(jù)轉(zhuǎn)換處理:匯總,聚合,過(guò)濾,關(guān)聯(lián),拆分,轉(zhuǎn)換等。

      四、GaussDB(DWS)ETL系統(tǒng)實(shí)現(xiàn)要點(diǎn)

      對(duì)于GaussDB(DWS)而言,大多數(shù)場(chǎng)合下推薦采用MPPDB方案。實(shí)現(xiàn)這種方案實(shí)際上要實(shí)現(xiàn)ETL SQL模板的封裝,把ETL開(kāi)發(fā)過(guò)程與外部ETL調(diào)度系統(tǒng)的結(jié)合進(jìn)行分層處理。通過(guò)模板方式實(shí)現(xiàn)與調(diào)度軟件,和操作系統(tǒng)的接口封裝,把SQL實(shí)現(xiàn)業(yè)務(wù)的模塊封裝在GSQL工具中,開(kāi)放給業(yè)務(wù)人員和開(kāi)發(fā)人員,令其聚焦在業(yè)務(wù)實(shí)現(xiàn)本身,而不用在意外部環(huán)境對(duì)于ETL過(guò)程操作的影響。

      4.1 基于MPPDB的ETL環(huán)境邏輯視圖

      圖3 邏輯視圖

      ETL調(diào)度

      數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)的ETL作業(yè)系統(tǒng)是一種后臺(tái)非交互方式運(yùn)行的批量數(shù)據(jù)處理系統(tǒng)。ETL作業(yè)調(diào)度是將數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中運(yùn)行的各種后臺(tái)作業(yè)自動(dòng)化,并監(jiān)視和控制作業(yè)的運(yùn)行。使用調(diào)度軟件實(shí)現(xiàn)作業(yè)調(diào)度。作業(yè)可以分布在多個(gè)服務(wù)器平臺(tái)上,能夠設(shè)定作業(yè)定義、依賴關(guān)系、順序關(guān)系、工作組關(guān)系等,方便地對(duì)作業(yè)進(jìn)行自動(dòng)調(diào)度、運(yùn)行和管理。

      調(diào)度監(jiān)管平臺(tái)可以圖形方式動(dòng)態(tài)監(jiān)視和控制作業(yè)的運(yùn)行,對(duì)作業(yè)執(zhí)行中出現(xiàn)的錯(cuò)誤/警告提供詳細(xì)的信息。

      ETL腳本封裝

      GSQL是執(zhí)行SQL的工具,但是與調(diào)度軟件之間的結(jié)合還有一定的功能缺失,如參數(shù)解析,日志解析,異常處理等,所以需要對(duì)GSQL進(jìn)行必要的封裝,提高和調(diào)度軟件之間的契合度。

      gsql模板

      對(duì)加工處理的etl過(guò)程進(jìn)行抽象,總結(jié),形成算法模板。

      指定必要的輸入?yún)?shù),設(shè)定會(huì)話啟動(dòng)的公共參數(shù),為后續(xù)的優(yōu)化和跟蹤埋點(diǎn)打樁。

      調(diào)用形式

      調(diào)度工具->Python或其他腳本工具模板->GSQL->{.gsql}

      4.2 GSQL封裝

      圖4 GSQL封裝示意圖

      增加封裝的必要性:

      GSQL和調(diào)度軟件解耦:調(diào)度軟件都具備調(diào)用Python/Perl/Shell腳本的能力,通過(guò)腳本封裝,把GSQL和調(diào)度軟件解耦,降低GSQL和調(diào)度軟件的適配兼容性風(fēng)險(xiǎn);

      封裝模板需要考量的功能點(diǎn):

      調(diào)度命令到GSQL運(yùn)行命令的轉(zhuǎn)換:

      調(diào)度命令相對(duì)簡(jiǎn)單,和業(yè)務(wù)邏輯相關(guān):如業(yè)務(wù)子系統(tǒng)代碼,算法模板代碼,數(shù)據(jù)日期等;

      GSQL的運(yùn)行參數(shù)不需要或不應(yīng)當(dāng)暴露在調(diào)度系統(tǒng)接口下:如登錄密碼,verbose參數(shù)等級(jí)等與業(yè)務(wù)無(wú)關(guān)的或者為了便于運(yùn)維,性能跟蹤的額外參數(shù);

      登錄密碼加密解密:

      GSQL登錄密碼不允許明文存儲(chǔ),需要密文方式保存在ETL服務(wù)器上,執(zhí)行時(shí)候也需要避免出現(xiàn)在后臺(tái)命令行中被ps指令查看到;

      異常處理:

      GSQL腳本運(yùn)行出錯(cuò)后的異常處理功能:如重跑,告警通知等;

      運(yùn)行日志解析:

      GSQL的運(yùn)行日志解析:針對(duì)GSQL腳本中不同語(yǔ)句,不同事務(wù)的執(zhí)行時(shí)間解析跟蹤,錯(cuò)誤,告警代碼的解析跟蹤,為性能分析提供最詳細(xì)的底層數(shù)據(jù);

      五、小結(jié)

      想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關(guān)注微信公眾號(hào),和您分享最新最全的PB級(jí)數(shù)倉(cāng)黑科技,后臺(tái)還可獲取眾多學(xué)習(xí)資料哦~!

      EI企業(yè)智能 Gauss AP 數(shù)據(jù)倉(cāng)庫(kù)服務(wù) GaussDB(DWS)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:生產(chǎn)制造erp(1分鐘之前已更新)
      下一篇:一分鐘內(nèi)可以合并100多個(gè)Excel工作表 電源查詢教程!
      相關(guān)文章
      亚洲精品无码av片| 相泽亚洲一区中文字幕| 亚洲综合熟女久久久30p| 亚洲精品无码不卡在线播放| 亚洲一区二区三区在线| 亚洲人成电影院在线观看| 亚洲小说区图片区| 77777_亚洲午夜久久多人| 亚洲视频在线观看| 67pao强力打造67194在线午夜亚洲 | 国产成人人综合亚洲欧美丁香花| 亚洲综合国产成人丁香五月激情| 亚洲偷自精品三十六区| 国产成人精品亚洲日本在线| 激情亚洲一区国产精品| 亚洲男人天堂2018av| 亚洲人精品亚洲人成在线| 在线观看亚洲AV每日更新无码| 亚洲熟女乱色一区二区三区| 亚洲性色精品一区二区在线| 亚洲最大的成人网站| 亚洲国产美女视频| 在线观看亚洲AV日韩A∨| 亚洲av永久无码天堂网| 亚洲高清无码专区视频| 亚洲国产精品专区在线观看| 久久综合亚洲色HEZYO国产| 亚洲国产精品一区二区成人片国内| 亚洲成在人线av| 91亚洲导航深夜福利| 亚洲成人免费电影| 亚洲AV日韩综合一区尤物| 精品无码专区亚洲| 国产精品亚洲产品一区二区三区 | 亚洲精品视频在线播放| 亚洲日产2021三区| 亚洲熟女乱色一区二区三区| 国产亚洲蜜芽精品久久| 在线A亚洲老鸭窝天堂| 亚洲丁香色婷婷综合欲色啪| 亚洲国产成人手机在线电影bd|