數(shù)據(jù)開(kāi)發(fā)之?dāng)?shù)據(jù)歸檔
本文介紹如何通過(guò)數(shù)據(jù)開(kāi)發(fā)功能快速實(shí)現(xiàn)常見(jiàn)的數(shù)據(jù)歸檔需求。
背景信息
隨著業(yè)務(wù)的發(fā)展,在線表中的數(shù)據(jù)會(huì)逐漸增加。常規(guī)業(yè)務(wù)都有冷熱數(shù)據(jù)現(xiàn)象明顯的特性(需要訪問(wèn)的都是近期產(chǎn)生的熱數(shù)據(jù);時(shí)間久遠(yuǎn)的冷數(shù)據(jù)出于備份、備案溯源等訴求會(huì)進(jìn)行在線保留)。在業(yè)務(wù)表數(shù)據(jù)量可控、數(shù)據(jù)庫(kù)服務(wù)性能有足夠余量時(shí),一般不會(huì)對(duì)冷數(shù)據(jù)進(jìn)行處理。在需要進(jìn)行頻繁的數(shù)據(jù)、結(jié)構(gòu)變更時(shí),如果能夠及時(shí)、有效的分離冷熱數(shù)據(jù),可以極大的優(yōu)化變更時(shí)間、變更性能開(kāi)銷(xiāo)等方面。
在沒(méi)有數(shù)倉(cāng)開(kāi)發(fā)功能之前,常規(guī)的數(shù)據(jù)歸檔方式如下:
開(kāi)發(fā):寫(xiě)個(gè)轉(zhuǎn)儲(chǔ)邏輯、寫(xiě)個(gè)清理邏輯,部署在某個(gè)應(yīng)用服務(wù)器,周期調(diào)度這段代碼。
DBA/運(yùn)維:寫(xiě)個(gè)轉(zhuǎn)儲(chǔ)SQL、寫(xiě)個(gè)清理SQL,提交crontab部署在數(shù)據(jù)庫(kù)服務(wù)器,周期調(diào)度這個(gè)腳本。
常規(guī)的數(shù)據(jù)歸檔方式不足之處如下:
每個(gè)業(yè)務(wù)表都需要重復(fù)一次這樣的開(kāi)發(fā)與配置。
無(wú)法有效全局管控,如遇到大促、變更等重要窗口無(wú)法有效地暫停任務(wù)的調(diào)度。
任務(wù)未有效調(diào)度時(shí)無(wú)法及時(shí)、有效的通知介入,容易造成在線表數(shù)據(jù)量過(guò)大的問(wèn)題降級(jí)服務(wù)性能。
執(zhí)行日志無(wú)法統(tǒng)一管理,有效溯源查看。
優(yōu)勢(shì)說(shuō)明
使用數(shù)倉(cāng)開(kāi)發(fā)進(jìn)行在線數(shù)據(jù)歸檔有如下優(yōu)勢(shì):
每個(gè)業(yè)務(wù)的數(shù)據(jù)表都可以按需隨時(shí)進(jìn)行歸檔邏輯的配置。
所有任務(wù)流配置清晰可見(jiàn),如遇大促等重保需求可便捷地進(jìn)行調(diào)度的暫停處理。
研發(fā)、DBA、運(yùn)維等角色都可以直接在功能模塊內(nèi)進(jìn)行統(tǒng)一的可視化配置,減少研發(fā)工作量。
統(tǒng)一操作入口后,調(diào)度執(zhí)行日志隨時(shí)可查看。
在任務(wù)執(zhí)行失敗后可以及時(shí)接收到通知進(jìn)行介入處理。
操作步驟
- 登錄數(shù)據(jù)管理DMS 5.0。
在頂部菜單欄中,選擇 。
說(shuō)明數(shù)倉(cāng)開(kāi)發(fā)(老)已不支持新增任務(wù)流。
可選:新建項(xiàng)目空間。具體操作,請(qǐng)參見(jiàn)創(chuàng)建項(xiàng)目空間。
說(shuō)明若您在數(shù)倉(cāng)開(kāi)發(fā)中已創(chuàng)建項(xiàng)目空間,且本次需創(chuàng)建的任務(wù)流也可創(chuàng)建在已有空間中,無(wú)需新建項(xiàng)目空間。
選擇目標(biāo)項(xiàng)目空間行,單擊操作列下的進(jìn)入空間。
新增數(shù)倉(cāng)開(kāi)發(fā)任務(wù)流。
說(shuō)明您也可以在剛進(jìn)入空間的界面,直接單擊新建任務(wù)流。
- 在項(xiàng)目空間的左側(cè)導(dǎo)航欄中,選擇 。
- 在新建業(yè)務(wù)場(chǎng)景對(duì)話(huà)框中,輸入業(yè)務(wù)場(chǎng)景名稱(chēng)和描述。
- 單擊確認(rèn)。
- 右鍵單擊目標(biāo)業(yè)務(wù)場(chǎng)景,選擇新增任務(wù)流。
- 在新建任務(wù)流對(duì)話(huà)框中,輸入任務(wù)流名稱(chēng)和描述。
- 單擊確認(rèn)。
將左側(cè)任務(wù)類(lèi)型中單實(shí)例SQL拖拽到頁(yè)面中空白區(qū)域。
說(shuō)明若轉(zhuǎn)儲(chǔ)的數(shù)據(jù)和在線數(shù)據(jù)不在一個(gè)實(shí)例存儲(chǔ)的場(chǎng)景請(qǐng)使用跨庫(kù)Spark SQL節(jié)點(diǎn)。
配置任務(wù)節(jié)點(diǎn)。
右鍵單擊單實(shí)例SQL節(jié)點(diǎn),選擇編輯當(dāng)前節(jié)點(diǎn)配置。
在該頁(yè)面編輯轉(zhuǎn)儲(chǔ)數(shù)據(jù)邏輯。
每個(gè)月的表您可以通過(guò)結(jié)構(gòu)設(shè)計(jì)和邏輯表結(jié)構(gòu)設(shè)計(jì)一次性完成多年表的創(chuàng)建,也可以在當(dāng)前SQL任務(wù)中使用CREATE命令新建。
每個(gè)月對(duì)一張表進(jìn)行存儲(chǔ),INSERT的目標(biāo)表需要變量指定,變量格式為${變量名}。
單擊屬性面板中的變量配置,選擇節(jié)點(diǎn)變量頁(yè)簽,設(shè)置變量。
完成SQL、變量配置之后,單擊預(yù)覽確認(rèn)編寫(xiě)的SQL是否滿(mǎn)足預(yù)期。
說(shuō)明若選中自動(dòng)保存,則無(wú)需手動(dòng)保存。
重復(fù)步驟6、7的操作,再拖拽一個(gè)任務(wù)節(jié)點(diǎn)進(jìn)行在線表的數(shù)據(jù)清理。
返回到DAG圖中,將兩個(gè)任務(wù)節(jié)點(diǎn)之間上用線連接。
說(shuō)明數(shù)據(jù)歸檔需要先完成轉(zhuǎn)儲(chǔ)才可以進(jìn)行數(shù)據(jù)清理。
完成DAG圖的流程走向操作后,在任務(wù)流頁(yè)面下方的屬性面板中開(kāi)啟調(diào)度,完成配置。
說(shuō)明系統(tǒng)默認(rèn)選中自動(dòng)保存,無(wú)需您手動(dòng)保存修改的內(nèi)容。
后續(xù)步驟
在數(shù)倉(cāng)開(kāi)發(fā)功能頁(yè)面,單擊目標(biāo)空間行操作列下的運(yùn)維,查看任務(wù)流的運(yùn)行狀態(tài)。
若任務(wù)執(zhí)行失敗,將會(huì)通知任務(wù)流的責(zé)任人(責(zé)任人默認(rèn)為創(chuàng)建者、管理員和DBA)。