本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體地說(shuō)是一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法。
背景技術(shù):
互聯(lián)網(wǎng)網(wǎng)頁(yè)數(shù)據(jù)是大數(shù)據(jù)領(lǐng)域的一個(gè)重要組成部分,是互聯(lián)網(wǎng)等公司獲取用戶消費(fèi)、交易、產(chǎn)品評(píng)價(jià)信息以及其他社交信息等數(shù)據(jù)的重要途徑,為數(shù)據(jù)服務(wù)提供了豐富的數(shù)據(jù)基礎(chǔ),因此,對(duì)互聯(lián)網(wǎng)網(wǎng)頁(yè)數(shù)據(jù)處理流程和技術(shù)進(jìn)行探索具有重要意義。
目前對(duì)采集數(shù)據(jù)的處理主要是進(jìn)行抽取、轉(zhuǎn)換、加載,即ETL。ETL工具將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時(shí)中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。但是數(shù)據(jù)采集過(guò)程中經(jīng)常會(huì)遇到數(shù)據(jù)源單一、定期采集、數(shù)據(jù)質(zhì)量問(wèn)題規(guī)律性不強(qiáng)的問(wèn)題,數(shù)據(jù)采集過(guò)程容易出現(xiàn)異常,在處理異常時(shí)其處理效率不高,基于此,現(xiàn)提供一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法,對(duì)于數(shù)據(jù)源單一且數(shù)據(jù)質(zhì)量問(wèn)題規(guī)律性不強(qiáng)的采集數(shù)據(jù),采用基于SQL的過(guò)程化數(shù)據(jù)處理方法,配合規(guī)范化的處理流程,實(shí)現(xiàn)數(shù)據(jù)的清洗、處理及數(shù)據(jù)處理過(guò)程的監(jiān)控。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法。
一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法,其實(shí)現(xiàn)過(guò)程為:根據(jù)采集數(shù)據(jù)的數(shù)據(jù)質(zhì)量問(wèn)題及數(shù)據(jù)需求,完成采集數(shù)據(jù)的清洗及處理,并監(jiān)控整個(gè)數(shù)據(jù)處理過(guò)程,該數(shù)據(jù)處理過(guò)程包括包括開(kāi)始執(zhí)行、執(zhí)行結(jié)束、處理過(guò)程實(shí)際執(zhí)行的SQL語(yǔ)句、完成處理的數(shù)據(jù)量、執(zhí)行異常信息,將監(jiān)控信息保存到相應(yīng)的數(shù)據(jù)表,形成完善的數(shù)據(jù)處理機(jī)制。
采集數(shù)據(jù)進(jìn)行清洗、處理的具體步驟為:
一、首先整理采集數(shù)據(jù)表;
二、然后分析采集數(shù)據(jù)表的數(shù)據(jù)規(guī)范性,編寫(xiě)數(shù)據(jù)清洗SQL,完成包括去除重復(fù)數(shù)據(jù)、規(guī)范數(shù)據(jù)顯示格式的數(shù)據(jù)清洗工作,清洗后的數(shù)據(jù)分別保存到臨時(shí)表中;
三、編寫(xiě)數(shù)據(jù)處理SQL,該數(shù)據(jù)處理SQL根據(jù)臨時(shí)表之間的關(guān)聯(lián)得到綜合信息、匯總信息、分指標(biāo)匯總信息,處理后的數(shù)據(jù)保存到目標(biāo)表中;
四、設(shè)計(jì)存放數(shù)據(jù)清洗、處理SQL的表;
五、數(shù)據(jù)清洗、處理過(guò)程中的SQL均通過(guò)動(dòng)態(tài)SQL執(zhí)行,將動(dòng)態(tài)SQL保存到步驟四設(shè)計(jì)的表中,相對(duì)應(yīng)的,該表中包含:執(zhí)行SQL的存儲(chǔ)過(guò)程名稱、SQL執(zhí)行時(shí)間、實(shí)際執(zhí)行的SQL語(yǔ)句,方便查看實(shí)際執(zhí)行的數(shù)據(jù)清洗、處理腳本。
在監(jiān)控整個(gè)數(shù)據(jù)處理過(guò)程時(shí),首先需要獲取數(shù)據(jù)處理過(guò)程中產(chǎn)生的具體數(shù)據(jù)信息:
首先記錄存儲(chǔ)過(guò)程開(kāi)始執(zhí)行時(shí)間;
進(jìn)行采集數(shù)據(jù)清洗及處理的步驟,保留處理過(guò)程中的中間表或臨時(shí)表,并將最終處理結(jié)果保存至目標(biāo)表,記錄各級(jí)數(shù)據(jù)處理過(guò)程的實(shí)際執(zhí)行SQL;
記錄本次清洗完成后保存到目標(biāo)表的采集數(shù)據(jù)量;
記錄存儲(chǔ)過(guò)程結(jié)束執(zhí)行時(shí)間;
當(dāng)處理過(guò)程出現(xiàn)異常時(shí),記錄存儲(chǔ)過(guò)程執(zhí)行異常信息。
監(jiān)控?cái)?shù)據(jù)處理過(guò)程中產(chǎn)生的數(shù)據(jù)保存在以下對(duì)應(yīng)的日志表中:
記錄存儲(chǔ)過(guò)程的執(zhí)行日志表;
記錄實(shí)際執(zhí)行的SQL腳本的SQL日志表;
記錄數(shù)據(jù)處理完成后的數(shù)據(jù)量的變化日志表;
記錄數(shù)據(jù)處理過(guò)程中的異常信息的異常信息表。
上述執(zhí)行日志表通過(guò)具有記錄存儲(chǔ)過(guò)程執(zhí)行情況的函數(shù)記錄,該函數(shù)通過(guò)輸入?yún)?shù),將輸入?yún)?shù)相關(guān)信息保存到執(zhí)行日志表中,這里的輸入?yún)?shù)包括:過(guò)程名稱、執(zhí)行標(biāo)志、執(zhí)行時(shí)間、存儲(chǔ)過(guò)程生成的目標(biāo)數(shù)據(jù)量,這里的執(zhí)行標(biāo)志是指開(kāi)始或結(jié)束兩種標(biāo)志。
所述變化日志表通過(guò)記錄數(shù)據(jù)處理完成后的數(shù)據(jù)量的函數(shù)實(shí)現(xiàn),該函數(shù)通過(guò)輸入?yún)?shù),將輸入?yún)?shù)相關(guān)信息保存至該變化日志表中,其輸入?yún)?shù)包括:存儲(chǔ)過(guò)程名稱、目標(biāo)表名稱、目標(biāo)表本次新增記錄數(shù)、新增記錄時(shí)間。
所述異常信息表通過(guò)記錄存儲(chǔ)過(guò)程執(zhí)行異常情況的函數(shù)實(shí)現(xiàn),該函數(shù)通過(guò)輸入?yún)?shù),將將輸入?yún)?shù)相關(guān)信息保存到異常信息表中,其輸入?yún)?shù)包括:存儲(chǔ)過(guò)程名稱、執(zhí)行異常時(shí)間、執(zhí)行異常代碼、執(zhí)行異常信息。
本發(fā)明的一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
本發(fā)明的一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法,使用過(guò)程化數(shù)據(jù)處理方法,在不使用工具的情況下,通過(guò)執(zhí)行規(guī)范化SQL的存儲(chǔ)過(guò)程,實(shí)現(xiàn)對(duì)數(shù)據(jù)處理過(guò)程的監(jiān)控,提供處理過(guò)程中的日志信息及異常信息;記錄了采集數(shù)據(jù)清洗的開(kāi)始時(shí)間、結(jié)束時(shí)間,可以提供數(shù)據(jù)處理過(guò)程的用時(shí),為分析數(shù)據(jù)準(zhǔn)確性提供參考;記錄了數(shù)據(jù)處理完成后的數(shù)據(jù)量,為判斷數(shù)據(jù)采集的質(zhì)量和完整性提供參考;記錄了數(shù)據(jù)處理過(guò)程中出現(xiàn)的異常問(wèn)題及信息,為快速解決數(shù)據(jù)處理出現(xiàn)的問(wèn)題提供參考;記錄了整個(gè)數(shù)據(jù)處理過(guò)程中所有的實(shí)際執(zhí)行SQL,查看動(dòng)態(tài)參數(shù)在具體執(zhí)行時(shí)傳入的實(shí)際值,為分析數(shù)據(jù)處理SQL編寫(xiě)的正確性提供參考,同時(shí)為分析執(zhí)行數(shù)據(jù)處理報(bào)錯(cuò)情況提供重要參考,實(shí)用性強(qiáng),適用范圍廣泛,具有很好的推廣應(yīng)用價(jià)值。
附圖說(shuō)明
附圖1位本發(fā)明的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
針對(duì)數(shù)據(jù)源單一、定期采集、數(shù)據(jù)質(zhì)量問(wèn)題規(guī)律性不強(qiáng)的互聯(lián)網(wǎng)采集數(shù)據(jù),本發(fā)明設(shè)計(jì)規(guī)范化流程的存儲(chǔ)過(guò)程完成數(shù)據(jù)的清洗、轉(zhuǎn)化、處理,將采集數(shù)據(jù)的處理過(guò)程化,提高了互聯(lián)網(wǎng)采集數(shù)據(jù)的處理效率。同時(shí),過(guò)程化的數(shù)據(jù)處理可以有效監(jiān)控?cái)?shù)據(jù)清洗、處理的整個(gè)過(guò)程,通過(guò)監(jiān)控的輸出數(shù)據(jù),查看數(shù)據(jù)清洗、處理的各個(gè)環(huán)節(jié)及最終結(jié)果,查看異常情況。
如附圖1所示,本發(fā)明提供一種互聯(lián)網(wǎng)采集數(shù)據(jù)的過(guò)程化處理方法,采用過(guò)程化的處理方法即具有規(guī)范化流程的存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)處理。根據(jù)采集數(shù)據(jù)的數(shù)據(jù)質(zhì)量問(wèn)題及數(shù)據(jù)需求,完成采集數(shù)據(jù)的清洗及處理,并監(jiān)控整個(gè)數(shù)據(jù)處理過(guò)程,包括開(kāi)始執(zhí)行、執(zhí)行結(jié)束、處理過(guò)程實(shí)際執(zhí)行的SQL語(yǔ)句、完成處理的數(shù)據(jù)量、執(zhí)行異常信息等,將監(jiān)控信息保存到相應(yīng)的數(shù)據(jù)表,形成完善的數(shù)據(jù)處理機(jī)制,提高數(shù)據(jù)處理的規(guī)范型、安全性。
采集數(shù)據(jù)進(jìn)行清洗、處理的具體步驟為:
1)整理采集數(shù)據(jù)表,如:T_CJXX1_201601、T_CJXX2_201601。
2)分析采集表的數(shù)據(jù)規(guī)范性,針對(duì)性的編寫(xiě)數(shù)據(jù)清洗SQL。如:去除重復(fù)數(shù)據(jù)、規(guī)范數(shù)據(jù)顯示格式等,清洗后的數(shù)據(jù)分別保存到臨時(shí)表,如T_TMP1、T_TMP2。
3)根據(jù)需要編寫(xiě)數(shù)據(jù)處理SQL。如:根據(jù)T_TMP1、T_TMP2關(guān)聯(lián)得到綜合信息、匯總信息、分指標(biāo)匯總信息等,處理后的數(shù)據(jù)保存到目標(biāo)表T_CJXX_QXCL。
4)設(shè)計(jì)存放數(shù)據(jù)清洗、處理SQL的表ZX_SQL_LOG。
數(shù)據(jù)清洗、處理過(guò)程中的SQL均通過(guò)動(dòng)態(tài)SQL執(zhí)行,將動(dòng)態(tài)SQL保存到表ZX_SQL_LOG中,方便查看實(shí)際執(zhí)行的數(shù)據(jù)清洗、處理腳本。
ZX_SQL_LOG包含:執(zhí)行SQL的存儲(chǔ)過(guò)程名稱、SQL執(zhí)行時(shí)間、實(shí)際執(zhí)行的SQL語(yǔ)句。
在上述步驟執(zhí)行過(guò)程中,通過(guò)設(shè)計(jì)對(duì)采集數(shù)據(jù)進(jìn)行清洗、處理的主體存儲(chǔ)過(guò)程P_CJXX_QXCL,完成相關(guān)數(shù)據(jù)處理過(guò)程的數(shù)據(jù)采集。具體包括:
1)記錄存儲(chǔ)過(guò)程開(kāi)始執(zhí)行時(shí)間。
2)實(shí)現(xiàn)采集數(shù)據(jù)清洗及處理,保留處理過(guò)程中的中間表或臨時(shí)表,并將最終處理結(jié)果保存至目標(biāo)表,記錄各級(jí)數(shù)據(jù)處理過(guò)程的實(shí)際執(zhí)行SQL。
3)記錄本次清洗完成后保存到目標(biāo)表的采集數(shù)據(jù)量。
4)記錄存儲(chǔ)過(guò)程結(jié)束執(zhí)行時(shí)間。
5)如處理過(guò)程出現(xiàn)異常,記錄存儲(chǔ)過(guò)程執(zhí)行異常信息。
記錄的相關(guān)數(shù)據(jù)保存在對(duì)應(yīng)的日志表中,具體包括:
記錄存儲(chǔ)過(guò)程執(zhí)行日志(開(kāi)始、結(jié)束情況),保存至存儲(chǔ)過(guò)程執(zhí)行日志表。
統(tǒng)一使用動(dòng)態(tài)SQL,并記錄實(shí)際執(zhí)行的SQL腳本,保存至SQL日志表。
記錄數(shù)據(jù)處理完成后的數(shù)據(jù)量,保存至數(shù)據(jù)庫(kù)表的變化日志表。
記錄數(shù)據(jù)處理過(guò)程中的異常信息,保存至異常信息表。
上述四個(gè)日志表分別通過(guò)不同的函數(shù)完成記錄過(guò)程,具體為:
1、設(shè)計(jì)具有記錄存儲(chǔ)過(guò)程執(zhí)行情況的函數(shù)F_PROC_ZX_LOG。
輸入?yún)?shù):過(guò)程名稱、執(zhí)行標(biāo)志(開(kāi)始、結(jié)束)、執(zhí)行時(shí)間、存儲(chǔ)過(guò)程生成的目標(biāo)數(shù)據(jù)量。
函數(shù)功能:將輸入?yún)?shù)相關(guān)信息保存到日志表T_PROC_ZX_LOG中。
2、設(shè)計(jì)記錄數(shù)據(jù)處理完成后的數(shù)據(jù)量的函數(shù)F_TAB_DML_LOG。
輸入?yún)?shù):存儲(chǔ)過(guò)程名稱、目標(biāo)表名稱、目標(biāo)表本次新增記錄數(shù)、新增記錄時(shí)間。
函數(shù)功能:將輸入?yún)?shù)相關(guān)信息保存到變動(dòng)表T_TAB_DML_LOG中。
3、設(shè)計(jì)記錄存儲(chǔ)過(guò)程執(zhí)行異常情況的存儲(chǔ)過(guò)程P_PROC_ZX_EXCEPTION。
輸入?yún)?shù):存儲(chǔ)過(guò)程名稱、執(zhí)行異常時(shí)間、執(zhí)行異常代碼、執(zhí)行異常信息。
函數(shù)功能:將輸入?yún)?shù)相關(guān)信息保存到異常信息表T_PROC_ZX_EXCEPTION中。
4、保存實(shí)際執(zhí)行的數(shù)據(jù)處理腳本的表ZX_SQL_LOG。
ZX_SQL_LOG表結(jié)構(gòu):執(zhí)行SQL的存儲(chǔ)過(guò)程名稱、SQL執(zhí)行時(shí)間、實(shí)際執(zhí)行的SQL語(yǔ)句。
通過(guò)上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開(kāi)的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說(shuō)明書(shū)所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。