應(yīng)用場(chǎng)景
? 生產(chǎn)環(huán)境的系統(tǒng)因程序BUG,產(chǎn)生了異常數(shù)據(jù)若沒(méi)有及時(shí)處理,隨著時(shí)間的日積月累最后可能會(huì)出現(xiàn)難以挽回的經(jīng)濟(jì)損失。
? 鑒于此,我們需要有一套自動(dòng)核查機(jī)制。定時(shí)檢查數(shù)據(jù)庫(kù)的核心表數(shù)據(jù)。當(dāng)出現(xiàn)不符合要求的異常數(shù)據(jù)時(shí),能盡早提醒管理員及時(shí)處理。
解決方案
以下使用大數(shù)據(jù)ETL工具Kettle,進(jìn)行數(shù)據(jù)定時(shí)推送、檢查,并將檢查結(jié)果郵件通知管理員。
一、認(rèn)識(shí)Kettle
Kettle是一款國(guó)外著名的開(kāi)源ETL工具,綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)定。它允許你管理來(lái)自不同數(shù)據(jù)庫(kù)的數(shù)據(jù),然后以一種指定的格式流出。Kettle現(xiàn)在已經(jīng)更名為PDI, Pentaho Data Integration Pentaho數(shù)據(jù)集成。
Kettle主要有以下兩種設(shè)計(jì)
Transformation (轉(zhuǎn)換) :完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換
Job (作業(yè)) :完成整個(gè)工作流的控制。
二、數(shù)據(jù)推送
1.創(chuàng)建轉(zhuǎn)換
新建一個(gè)轉(zhuǎn)換,將以下三個(gè)控件拖入工作區(qū)。
控件1,“腳本”-》“執(zhí)行SQL腳本”控件,命名“清空用戶表數(shù)據(jù)”,意為將要推送的目標(biāo)表原數(shù)據(jù)先清空。
控件2,“輸出”-》“表輸出”,命名“推送用戶信息”,意為從用戶表查詢數(shù)據(jù)。
控件3,“輸出”-》“插入\更新”,命名“插入用戶信息”,意為將查詢的數(shù)據(jù)插入到目標(biāo)表中。
按住shift鍵將三個(gè)控件按圖示順序方向串聯(lián)起來(lái)。
2.清空用戶表
雙擊“清空用戶表”的SQL腳本控件,在SQL區(qū)域錄入delete 語(yǔ)句,即插入數(shù)據(jù)前先清空目標(biāo)表的數(shù)據(jù)。“數(shù)據(jù)庫(kù)連接”選擇或新建(即數(shù)據(jù)目標(biāo)庫(kù))
?3.推送用戶表
雙擊“推送用戶表”的表輸出控件,在SQL區(qū)域輸入查詢的SQL語(yǔ)句,即從原表中抽取哪些字段數(shù)據(jù)。數(shù)據(jù)庫(kù)連接選擇或新建(數(shù)據(jù)來(lái)源庫(kù))
4.插入用戶信息
雙擊“插入用戶信息”的插入更新控件,數(shù)據(jù)庫(kù)連接選擇數(shù)據(jù)目標(biāo)庫(kù)。查詢字段和更新字段均選擇需要插入到新表的3個(gè)字段。
5.執(zhí)行
保存并執(zhí)行后,可以看到目標(biāo)庫(kù)的t_user_arch表中新增了從原庫(kù)中抽取過(guò)來(lái)的數(shù)據(jù)。
以上為kettle的數(shù)據(jù)抽取簡(jiǎn)單示例,可以試下查詢A庫(kù)數(shù)據(jù)推送到B庫(kù)表中的過(guò)程。
上述過(guò)程也可以根據(jù)需求將對(duì)應(yīng)的查詢語(yǔ)句修改為檢查表中是否存在異常數(shù)據(jù)的SQL語(yǔ)句。
三、作業(yè)
創(chuàng)建了轉(zhuǎn)換后,就需要?jiǎng)?chuàng)建作業(yè),作業(yè)的目的是可以配置定時(shí)計(jì)劃,組合多個(gè)已建好的“轉(zhuǎn)換”,形成工作流,并自動(dòng)執(zhí)行。
1.創(chuàng)建作業(yè)
新建一個(gè)作業(yè),將以下四個(gè)控件拖入工作區(qū)。
控件1,“通用”-》“START”控件,意為作業(yè)開(kāi)始步驟。
控件2,“通用”-》“轉(zhuǎn)換”,命名“推送用戶信息”,意為從用戶表查詢數(shù)據(jù)。
控件3,“通用”-》“成功”,用于輸出提示。
控件4,“郵件”-》“發(fā)送郵件”,用于配置郵件參數(shù),并發(fā)送到指定郵箱。
按住shift鍵將四個(gè)控件按圖示順序方向串聯(lián)起來(lái)。
2. 配置作業(yè)
雙擊START控件,可以配置定時(shí)計(jì)劃,勾選“重復(fù)”,設(shè)置作業(yè)執(zhí)行的間隔時(shí)間。
?3.選擇轉(zhuǎn)換
雙擊“轉(zhuǎn)換”控件,在“Transformation”轉(zhuǎn)換瀏覽框中選擇剛才我們已經(jīng)創(chuàng)建的轉(zhuǎn)換名為“推送用戶信息”項(xiàng)。
4.郵件配置
?雙擊“發(fā)送郵件”控件
“地址”頁(yè)面:在“收件人地址”輸入管理員接收郵件的郵箱地址A,在“發(fā)件人地址”輸入另一個(gè)用于發(fā)出郵件的郵箱B。
?“服務(wù)器”頁(yè)面:
在“SMTP服務(wù)器”輸入qq郵箱的默認(rèn)smtp服務(wù)器地址和端口號(hào)465。勾選用戶驗(yàn)證和安全驗(yàn)證SSL,輸入郵箱B的賬號(hào)以及密碼(此密碼非郵箱登錄密碼,而是需要登錄你的郵箱并啟用SMTP服務(wù)時(shí)會(huì)得到的授權(quán)碼)。
“郵件消息”:
在消息頁(yè)面輸入郵件主題和內(nèi)容。保存。
以上郵件配置完畢。
四、執(zhí)行
執(zhí)行上述作業(yè)后,郵箱B會(huì)在定時(shí)計(jì)劃的間隔時(shí)間內(nèi),收到一份郵件提醒。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-656405.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-656405.html
到了這里,關(guān)于kettle的簡(jiǎn)單示例:實(shí)現(xiàn)數(shù)據(jù)定時(shí)推送和監(jiān)測(cè),并發(fā)送異常報(bào)告郵件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!