一種數(shù)據(jù)預(yù)處理方法及裝置的制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例公開(kāi)了一種數(shù)據(jù)預(yù)處理方法和裝置,實(shí)現(xiàn)了改善現(xiàn)有技術(shù)程序重復(fù)開(kāi)發(fā)狀況的目的,減小了開(kāi)發(fā)成本,降低了開(kāi)發(fā)的工作量和錯(cuò)誤率。其中所述方法包括:獲取待處理數(shù)據(jù);根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟;根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序;按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。
【專(zhuān)利說(shuō)明】
一種數(shù)據(jù)預(yù)處理方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及大數(shù)據(jù)處理領(lǐng)域,尤其涉及一種數(shù)據(jù)預(yù)處理方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)實(shí)世界中的數(shù)據(jù)通常是不完整、不一致的,包含各種各樣的臟數(shù)據(jù),無(wú)法直接進(jìn)行分析、挖掘或聯(lián)機(jī)訪(fǎng)問(wèn)。數(shù)據(jù)預(yù)處理是指在對(duì)數(shù)據(jù)進(jìn)行分析、挖掘或聯(lián)機(jī)訪(fǎng)問(wèn)等深度應(yīng)用前對(duì)原始數(shù)據(jù)進(jìn)行的去重、補(bǔ)全、轉(zhuǎn)換等操作,在數(shù)據(jù)統(tǒng)計(jì)、分析及挖掘領(lǐng)域有著廣泛應(yīng)用。例如,銀行系統(tǒng)每天會(huì)產(chǎn)生大量的業(yè)務(wù)數(shù)據(jù),特別是交易明細(xì)等流水?dāng)?shù)據(jù),業(yè)務(wù)要求保存時(shí)間長(zhǎng),數(shù)據(jù)總量達(dá)到千億條,如何有效地對(duì)這些海量數(shù)據(jù)進(jìn)行快速預(yù)處理,保證下一步數(shù)據(jù)分析或者聯(lián)機(jī)查詢(xún)的準(zhǔn)確性,成了銀行系統(tǒng)需要解決的問(wèn)題。
[0003]目前采用基于Hadoop平臺(tái)的分布式計(jì)算框架MapReduce來(lái)對(duì)海量數(shù)據(jù)進(jìn)行預(yù)處理。所述Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件架構(gòu),該架構(gòu)具有較高的可靠性、擴(kuò)展性、容錯(cuò)性以及高效的數(shù)據(jù)處理速度,因而在大數(shù)據(jù)領(lǐng)域里被廣泛使用。由于不同類(lèi)型的預(yù)處理數(shù)據(jù)的數(shù)據(jù)處理流程存在差別,現(xiàn)有技術(shù)針對(duì)各類(lèi)型的預(yù)處理數(shù)據(jù)分別單獨(dú)編寫(xiě)對(duì)應(yīng)的預(yù)處理程序,以滿(mǎn)足這些不同類(lèi)型的預(yù)處理數(shù)據(jù)的處理需求。但是這些不同類(lèi)型的預(yù)處理數(shù)據(jù)的數(shù)據(jù)處理流程并不是完全不一樣,對(duì)于相同的部分,則存在程序重復(fù)開(kāi)發(fā)的情形,造成資源的浪費(fèi),增加開(kāi)發(fā)成本。另外,在預(yù)處理數(shù)據(jù)類(lèi)型眾多的情況下,開(kāi)發(fā)多次預(yù)處理程序出錯(cuò)的概率也隨之提高。
【發(fā)明內(nèi)容】
[0004]為了解決現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供了一種數(shù)據(jù)處理方法和裝置,實(shí)現(xiàn)了改善現(xiàn)有技術(shù)程序重復(fù)開(kāi)發(fā)的狀況的目的,減小了開(kāi)發(fā)成本,降低了開(kāi)發(fā)的工作量和錯(cuò)誤率。
[0005]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)預(yù)處理方法,所述方法包括:
[0006]獲取待處理數(shù)據(jù);
[0007]根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟;
[0008]根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序;
[0009]按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。
[0010]優(yōu)選的,所述預(yù)處理流程的步驟包括預(yù)處理操作的標(biāo)識(shí)和操作參數(shù);
[0011]所述根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序包括:
[0012]根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序;
[0013]所述按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理包括:
[0014]按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序。
[0015]優(yōu)選的,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的類(lèi)名稱(chēng);
[0016]所述根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序包括:
[0017]根據(jù)所述預(yù)處理操作的類(lèi)名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作類(lèi)對(duì)象;
[0018]所述按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序包括:
[0019]按照所述預(yù)處理操作類(lèi)對(duì)象的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作類(lèi)對(duì)象。
[0020]優(yōu)選的,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的腳本名稱(chēng);
[0021 ]所述根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序包括:
[0022]根據(jù)所述預(yù)處理操作的腳本名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作腳本程序。
[0023 ]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)預(yù)處理裝置,所述裝置包括:數(shù)據(jù)獲取單元、配置文件獲取單元、程序獲取單元和程序執(zhí)行單元;
[0024]其中,所述數(shù)據(jù)獲取單元,用于獲取待處理數(shù)據(jù);
[0025]所述配置文件獲取單元,用于根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟;
[0026]所述程序獲取單元,用于根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序;
[0027]所述程序執(zhí)行單元,用于按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。
[0028]優(yōu)選的,所述預(yù)處理流程的步驟包括預(yù)處理操作的標(biāo)識(shí)和操作參數(shù);
[0029]所述程序獲取單元,具體用于根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序;
[0030]所述程序執(zhí)行單元,具體用于按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序。
[0031]優(yōu)選的,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的類(lèi)名稱(chēng);
[0032]所述程序獲取單元,具體用于根據(jù)所述預(yù)處理操作的類(lèi)名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作類(lèi)對(duì)象;
[0033]所述程序執(zhí)行單元,具體用于按照所述預(yù)處理操作類(lèi)對(duì)象的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作類(lèi)對(duì)象。
[0034]優(yōu)選的,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的腳本名稱(chēng);
[0035]所述程序獲取單元,具體用于根據(jù)所述預(yù)處理操作的腳本名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作腳本程序。
[0036]本發(fā)明通過(guò)預(yù)先按照待處理數(shù)據(jù)的屬性分別對(duì)應(yīng)設(shè)置配置文件,相同屬性的待處理數(shù)據(jù)對(duì)應(yīng)的配置文件相同,所述配置文件中包括預(yù)處理流程的各步驟,然后建立起所述預(yù)處理流程各步驟與程序的對(duì)應(yīng)關(guān)系,這樣,不同屬性的待處理數(shù)據(jù)對(duì)應(yīng)的預(yù)處理程序中只要存在相同的步驟,那么所述相同的步驟就可以調(diào)用同一個(gè)程序,因而改善了現(xiàn)有技術(shù)程序重復(fù)開(kāi)發(fā)的狀況,減小了開(kāi)發(fā)成本,降低了開(kāi)發(fā)的工作量和錯(cuò)誤率。
【附圖說(shuō)明】
[0037]為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0038]圖1為銀行系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理采用的預(yù)處理流程;
[0039]圖2本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)預(yù)處理方法的流程圖;
[0040]圖3為本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)預(yù)處理裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0041]在介紹現(xiàn)有技術(shù)和本發(fā)明之前,首先對(duì)下文將提到的相關(guān)術(shù)語(yǔ)進(jìn)行解釋。
[0042]Hadoop:—種由Apache基金會(huì)主導(dǎo)開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),是目前世界上使用最為廣泛的開(kāi)源分布式系統(tǒng)平臺(tái),其生態(tài)環(huán)境內(nèi)包含多種基礎(chǔ)組件,下文提到的HDFS、Hi ve、HBase均為Hadoop生態(tài)環(huán)境的服務(wù)組件。
[0043]HDFS:Hadoop分布式文件系統(tǒng),是一種被設(shè)計(jì)成適合運(yùn)行于通用PC上的分布式文件系統(tǒng),具有高度容錯(cuò)性,能夠提供高吞吐量的數(shù)據(jù)訪(fǎng)問(wèn),通常部署在低廉的PC上,適用于大規(guī)模數(shù)據(jù)集上的應(yīng)用,一般用來(lái)存儲(chǔ)文件。
[0044]Hive:分布式數(shù)據(jù)倉(cāng)庫(kù)工具,建立在HDFS之上,能支持類(lèi)似于SQL的數(shù)據(jù)查詢(xún)。
[0045]HBase:是一個(gè)分布式的、面向列的NoSQL數(shù)據(jù)庫(kù),建立在HDFS之上,可提供高并發(fā)實(shí)時(shí)數(shù)據(jù)訪(fǎng)問(wèn)。
[0046]現(xiàn)有技術(shù)在基于Hadoop平臺(tái)進(jìn)行大數(shù)據(jù)預(yù)處理的過(guò)程中,對(duì)每種類(lèi)型的數(shù)據(jù)分別對(duì)應(yīng)開(kāi)發(fā)預(yù)處理程序,在一些預(yù)處理流程相同或相似的情況下,存在程序重復(fù)開(kāi)發(fā)的問(wèn)題,導(dǎo)致增加開(kāi)發(fā)成本、浪費(fèi)資源,且開(kāi)發(fā)時(shí)出錯(cuò)率高。
[0047]例如,參見(jiàn)圖1,銀行系統(tǒng)在對(duì)每天產(chǎn)生的大量業(yè)務(wù)數(shù)據(jù)進(jìn)行預(yù)處理時(shí),可能會(huì)按照如下預(yù)處理流程來(lái)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理:
[0048]1、文件接收檢查階段對(duì)接收到的數(shù)據(jù)源文件進(jìn)行文件名稱(chēng)、文件大小、文件擴(kuò)展名、數(shù)據(jù)文件日期等進(jìn)行檢查;
[0049]2、文件分發(fā)階段對(duì)接收到的文件進(jìn)行分發(fā)處理,根據(jù)文件業(yè)務(wù)類(lèi)型的不同,分發(fā)到各自的處理目錄,并根據(jù)數(shù)據(jù)文件業(yè)務(wù)類(lèi)型和日期建立子目錄;
[0050]3、將數(shù)據(jù)源文件拷貝到HDFS中存儲(chǔ),傳輸過(guò)程中會(huì)對(duì)文件進(jìn)行切分,采用多線(xiàn)程方式進(jìn)行傳輸;
[0051 ] 4、根據(jù)數(shù)據(jù)文件格式建立Hive外表,并加載數(shù)據(jù)文件存放目錄到Hive分區(qū)中,通過(guò)Hive外表可以利用HQL訪(fǎng)問(wèn)數(shù)據(jù)文件;
[0052]5、對(duì)原始文件進(jìn)行數(shù)據(jù)清洗,可以為不同類(lèi)型數(shù)據(jù)設(shè)置不同清洗規(guī)則,保證數(shù)據(jù)質(zhì)量;識(shí)別出的異常數(shù)據(jù)保存在單獨(dú)的異常表中供后期修復(fù);
[0053]6、編寫(xiě)數(shù)據(jù)預(yù)處理規(guī)則,利用HQL實(shí)現(xiàn)數(shù)據(jù)預(yù)處理邏輯,進(jìn)行數(shù)據(jù)關(guān)聯(lián)、轉(zhuǎn)換等操作,相關(guān)操作經(jīng)Hive解析后轉(zhuǎn)換成MapReduce作業(yè)在集群各節(jié)點(diǎn)分布式執(zhí)行,保證海量數(shù)據(jù)預(yù)處理操作的執(zhí)行效率;
[0054]7、建立HBase表,用于提供高并發(fā)聯(lián)機(jī)訪(fǎng)問(wèn),建立Hi ve-HBase表之間的映射關(guān)系,利用Hive-Over-HBase機(jī)制,通過(guò)Hive讀寫(xiě)HBase中的交易數(shù)據(jù);
[0055]8、通過(guò)Hive-HBase表之間的映射關(guān)系寫(xiě)入數(shù)據(jù)到HBase,寫(xiě)入過(guò)程可執(zhí)行對(duì)字段的逆序、拼接、補(bǔ)齊等操作,根據(jù)后續(xù)查詢(xún)需求拼裝HBase的Rowkey和數(shù)據(jù)列,執(zhí)行數(shù)據(jù)導(dǎo)入;
[0056]9、清理數(shù)據(jù)預(yù)處理過(guò)程中產(chǎn)生的Hive中間表、中間分區(qū)等臨時(shí)數(shù)據(jù),減少數(shù)據(jù)冗余存放,節(jié)省存儲(chǔ)空間;
[0057]10、對(duì)處理后的數(shù)據(jù)源文件進(jìn)行備份,根據(jù)數(shù)據(jù)文件日期建立子目錄,保存?zhèn)浞菸募皆撃夸洠謇沓^(guò)備份時(shí)限的歷史備份數(shù)據(jù);
[0058]11、數(shù)據(jù)備份完成,結(jié)束流程。
[0059]上述預(yù)處理流程是各種類(lèi)型待處理數(shù)據(jù)基本通用的流程,但是不同類(lèi)型的待處理數(shù)據(jù)的預(yù)處理規(guī)則不同,其Hive-HBase表之間的具體映射關(guān)系也不同?,F(xiàn)有技術(shù)為每類(lèi)數(shù)據(jù)都分別設(shè)計(jì)了一套執(zhí)行上述流程的程序,雖然對(duì)不同類(lèi)型的數(shù)據(jù)都能夠?qū)崿F(xiàn)針對(duì)性的進(jìn)行預(yù)處理,但同時(shí)也導(dǎo)致了通用流程的重復(fù)開(kāi)發(fā)。
[0060]為了克服上述技術(shù)問(wèn)題,本發(fā)明提供了一種數(shù)據(jù)預(yù)處理方法和裝置。為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0061]實(shí)施例一:
[0062]參見(jiàn)圖2,該圖為本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)預(yù)處理方法的流程圖。
[0063]本實(shí)施例提供的數(shù)據(jù)預(yù)處理方法包括如下步驟:
[0064]步驟SlOl:獲取待處理數(shù)據(jù)。
[0065]在本實(shí)施例中,所述待處理數(shù)據(jù)為需要進(jìn)行預(yù)處理的數(shù)據(jù),對(duì)所述預(yù)處理數(shù)據(jù)的預(yù)處理流程可以是圖1的流程,當(dāng)然也可以是其他預(yù)處理流程。
[0066]步驟S102:根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟。
[0067]在本實(shí)施例中,將預(yù)處理流程的各個(gè)步驟編輯成配置文件,根據(jù)所述待處理數(shù)據(jù)的不同屬性來(lái)設(shè)置不同的配置文件,所述待處理數(shù)據(jù)的屬性可以是類(lèi)型,由于同一種類(lèi)型的待處理數(shù)據(jù)的待處理流程是相同的,因此可以對(duì)應(yīng)一個(gè)配置文件,例如,貸款數(shù)據(jù)對(duì)應(yīng)一個(gè)配置文件,存款數(shù)據(jù)對(duì)應(yīng)一個(gè)配置文件。除了類(lèi)型,所述待處理數(shù)據(jù)的屬性還可以是其他屬性,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際應(yīng)用場(chǎng)景自行設(shè)定。
[0068]本實(shí)施例在預(yù)先設(shè)置好不同屬性的預(yù)處理數(shù)據(jù)分別對(duì)應(yīng)的配置文件后,當(dāng)獲取到所述待處理數(shù)據(jù)后,根據(jù)所述待處理數(shù)據(jù)找到與其匹配的配置文件。
[0069]步驟S103:根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序。
[0070]在找到所述待處理數(shù)據(jù)對(duì)應(yīng)的配置文件后,根據(jù)所述配置文件中預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序。本實(shí)施例將現(xiàn)有技術(shù)中預(yù)處理數(shù)據(jù)和程序之間的直接對(duì)應(yīng)關(guān)系打破,而是通過(guò)設(shè)置配置文件,建立起待處理數(shù)據(jù)與配置文件的對(duì)應(yīng)關(guān)系,以及配置文件中的預(yù)處理步驟與程序之間的對(duì)應(yīng)關(guān)系,這樣的話(huà),不同的配置文件中若存在相同的步驟,則只需要編寫(xiě)一個(gè)程序即可,而無(wú)需重復(fù)開(kāi)發(fā),大大減少了開(kāi)發(fā)的工作量和出錯(cuò)率。例如,待處理數(shù)據(jù)A與配置文件a對(duì)應(yīng),待處理數(shù)據(jù)B與配置文件b對(duì)應(yīng),所述配置文件a和所述配置文件b均存在步驟“對(duì)接收到的數(shù)據(jù)源文件進(jìn)行文件名稱(chēng)、文件大小、文件擴(kuò)展名、數(shù)據(jù)文件日期等進(jìn)行檢查”,但是該步驟對(duì)應(yīng)的程序僅需要開(kāi)發(fā)一個(gè)即可,而無(wú)需像現(xiàn)有技術(shù)那樣開(kāi)發(fā)兩個(gè),以分別與所述待處理數(shù)據(jù)A和待處理數(shù)據(jù)B對(duì)應(yīng)。
[0071]另外,為了進(jìn)一步的實(shí)現(xiàn)代碼的可重用性,可以將所述配置文件中預(yù)處理流程各個(gè)步驟分別拆分為預(yù)處理操作標(biāo)識(shí)和相應(yīng)的操作參數(shù),以適應(yīng)不同屬性的預(yù)處理數(shù)據(jù)。所述預(yù)處理操作的標(biāo)識(shí)可以是預(yù)處理操作的名稱(chēng)、代號(hào)等,本發(fā)明不做具體限定。在確定所述預(yù)處理流程的步驟對(duì)應(yīng)的程序時(shí),可以根據(jù)所述預(yù)處理操作的標(biāo)識(shí)確定對(duì)應(yīng)的預(yù)處理操作程序。當(dāng)根據(jù)所述預(yù)處理操作的標(biāo)識(shí)找到對(duì)應(yīng)的程序時(shí),結(jié)合配置文件中的操作參數(shù),得到與該預(yù)處理步驟對(duì)應(yīng)的完整程序。
[0072]例如,所述配置文件a中的預(yù)處理流程存在有步驟“將待處理數(shù)據(jù)A存儲(chǔ)在C盤(pán)中”,所述配置文件b中的預(yù)處理流程存在有步驟“將待處理數(shù)據(jù)B存儲(chǔ)在D盤(pán)中”,這兩個(gè)步驟的共同之處在于預(yù)處理操作本身,即均為存儲(chǔ),但是其操作參數(shù)卻不同,一個(gè)存儲(chǔ)在C盤(pán)中,另一個(gè)存儲(chǔ)在D盤(pán)中,若是普通處理方式,則這兩個(gè)步驟分別對(duì)應(yīng)一段程序,但是為了實(shí)現(xiàn)代碼的可重用性,可以將預(yù)處理操作和操作參數(shù)分離,即存儲(chǔ)程序中只包括存儲(chǔ)這個(gè)預(yù)處理操作,而不包括存儲(chǔ)在哪個(gè)地方,而是通過(guò)配置文件體現(xiàn)。在本例子中,在對(duì)所述預(yù)處理數(shù)據(jù)A進(jìn)行預(yù)處理時(shí),可以通過(guò)預(yù)先設(shè)置在配置文件a中的預(yù)處理操作名稱(chēng)“存儲(chǔ)”得到對(duì)應(yīng)的程序R,再結(jié)合配置文件中a與“存儲(chǔ)”對(duì)應(yīng)的操作參數(shù)“C盤(pán)”,得到整個(gè)預(yù)處理步驟的程序,即“存儲(chǔ)預(yù)處理數(shù)據(jù)A至C盤(pán)”。而在對(duì)所述預(yù)處理數(shù)據(jù)B進(jìn)行預(yù)處理時(shí),通過(guò)預(yù)先設(shè)置在配置文件b中的預(yù)處理操作名稱(chēng)“存儲(chǔ)”得到所述程序R,再結(jié)合配置文件b中與“存儲(chǔ)”對(duì)應(yīng)的操作參數(shù)“D盤(pán)”,得到整個(gè)預(yù)處理步驟的程序,即“存儲(chǔ)預(yù)處理數(shù)據(jù)B至D盤(pán)”。
[0073]在實(shí)際應(yīng)用中,若所述預(yù)處理操作的標(biāo)識(shí)為預(yù)處理操作的名稱(chēng)時(shí),可以利用操作名稱(chēng)來(lái)得到所述預(yù)處理操作的程序,然后在下述步驟中可以結(jié)合所述預(yù)處理操作程序?qū)?yīng)的操作參數(shù)按順序執(zhí)行所述預(yù)處理操作。所述預(yù)處理操作程序編寫(xiě)的語(yǔ)言不同,根據(jù)所述預(yù)處理操作的名稱(chēng)來(lái)得到所述預(yù)處理操作的程序的具體方式也不同。
[0074]例如,若所述預(yù)處理操作的程序采用面向?qū)ο蟮某绦蛘Z(yǔ)言(例如java)實(shí)現(xiàn),那么,可以通過(guò)反射機(jī)制來(lái)得到所述預(yù)處理操作的程序,即根據(jù)所述預(yù)處理操作的類(lèi)名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作類(lèi)對(duì)象,然后結(jié)合所述預(yù)處理操作類(lèi)對(duì)象對(duì)應(yīng)的操作參數(shù)執(zhí)行所述預(yù)處理操作類(lèi)對(duì)象。
[0075]再例如,若所述預(yù)處理操作的程序采用腳本語(yǔ)言(例如shelUpython等)編寫(xiě),那么可以直接通過(guò)所述預(yù)處理操作的腳本名稱(chēng)來(lái)得到所述預(yù)處理操作腳本程序。
[0076]再例如,若所述預(yù)處理操作的程序采用預(yù)編譯好的可執(zhí)行程序,可以直接通過(guò)所述預(yù)處理操作的程序路徑來(lái)得到所述預(yù)處理操作可執(zhí)行程序。
[0077]此外,在本發(fā)明中,所述操作參數(shù)的含義并不僅僅局限于普通意義上理解的數(shù)字,而是還包括了其他的操作的必要信息,例如文件名、地址等,在執(zhí)行預(yù)處理操作時(shí),可以調(diào)用所述文件名或所述地址中的內(nèi)容進(jìn)行操作。
[0078]步驟S104:按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。
[0079]在得到所述配置文件中所述預(yù)處理流程的各步驟分別對(duì)應(yīng)的程序后,按照所述各步驟的執(zhí)行順序執(zhí)行所述程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。
[0080]基于以上實(shí)施例提供的一種數(shù)據(jù)預(yù)處理方法,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)預(yù)處理裝置,下面結(jié)合附圖來(lái)詳細(xì)說(shuō)明其工作原理。
[0081 ] 實(shí)施例二
[0082]參見(jiàn)圖3,該圖為本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)預(yù)處理裝置的結(jié)構(gòu)框圖。
[0083]本實(shí)施例提供的數(shù)據(jù)預(yù)處理裝置包括:數(shù)據(jù)獲取單元101、配置文件獲取單元102、程序獲取單元103和程序執(zhí)行單元104;
[0084]其中,所述數(shù)據(jù)獲取單元101,用于獲取待處理數(shù)據(jù);
[0085]所述配置文件獲取單元102,用于根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟;
[0086]所述程序獲取單元103,可以用于根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序;
[0087]所述程序執(zhí)行單元104,可以用于按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。
[0088]本實(shí)施例通過(guò)預(yù)先按照待處理數(shù)據(jù)的屬性分別對(duì)應(yīng)設(shè)置配置文件,相同屬性的待處理數(shù)據(jù)對(duì)應(yīng)的配置文件相同,所述配置文件中包括預(yù)處理流程的各步驟,然后建立起所述預(yù)處理流程各步驟與程序的對(duì)應(yīng)關(guān)系,這樣,不同屬性的待處理數(shù)據(jù)對(duì)應(yīng)的預(yù)處理程序中只要存在相同的步驟,那么所述相同的步驟就可以調(diào)用同一個(gè)程序,因而改善了現(xiàn)有技術(shù)程序重復(fù)開(kāi)發(fā)的狀況,減小了開(kāi)發(fā)成本,降低了開(kāi)發(fā)的工作量和錯(cuò)誤率。
[0089]在實(shí)際應(yīng)用中,所述預(yù)處理流程的步驟可以包括預(yù)處理操作的標(biāo)識(shí)和操作參數(shù);
[0090]所述程序獲取單元103,具體用于根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序;
[0091]所述程序執(zhí)行單元104,具體用于按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序。
[0092]當(dāng)所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的類(lèi)名稱(chēng)時(shí),所述程序獲取單元103可以具體用于根據(jù)所述預(yù)處理操作的類(lèi)名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作類(lèi)對(duì)象;
[0093]所述程序執(zhí)行單元104可以具體用于按照所述預(yù)處理操作類(lèi)對(duì)象的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作類(lèi)對(duì)象。
[0094]當(dāng)所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的腳本名稱(chēng)時(shí),所述程序獲取單元103可以具體用于根據(jù)所述預(yù)處理操作的腳本名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作腳本程序。
[0095]當(dāng)所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的可執(zhí)行程序路徑時(shí),所述程序獲取單元103可以具體用于根據(jù)所述預(yù)處理操作的可執(zhí)行程序路徑得到對(duì)應(yīng)的預(yù)處理操作可執(zhí)行程序。
[0096]當(dāng)介紹本發(fā)明的各種實(shí)施例的元件時(shí),冠詞“一”、“一個(gè)”、“這個(gè)”和“所述”都意圖表示有一個(gè)或多個(gè)元件。詞語(yǔ)“包括”、“包含”和“具有”都是包括性的并意味著除了列出的元件之外,還可以有其它元件。
[0097]需要說(shuō)明的是,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法實(shí)施例的流程。其中,所述存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccess Memory ,RAM)等。
[0098]本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元及模塊可以是或者也可以不是物理上分開(kāi)的。另外,還可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元和模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0099]以上所述僅是本發(fā)明的【具體實(shí)施方式】,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)預(yù)處理方法,其特征在于,所述方法包括: 獲取待處理數(shù)據(jù); 根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟; 根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序; 按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)處理流程的步驟包括預(yù)處理操作的標(biāo)識(shí)和操作參數(shù); 所述根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序包括: 根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序; 所述按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理包括: 按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的類(lèi)名稱(chēng); 所述根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序包括: 根據(jù)所述預(yù)處理操作的類(lèi)名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作類(lèi)對(duì)象; 所述按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序包括: 按照所述預(yù)處理操作類(lèi)對(duì)象的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作類(lèi)對(duì)象。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的腳本名稱(chēng); 所述根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序包括: 根據(jù)所述預(yù)處理操作的腳本名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作腳本程序。5.一種數(shù)據(jù)預(yù)處理裝置,其特征在于,所述裝置包括:數(shù)據(jù)獲取單元、配置文件獲取單元、程序獲取單元和程序執(zhí)行單元; 其中,所述數(shù)據(jù)獲取單元,用于獲取待處理數(shù)據(jù); 所述配置文件獲取單元,用于根據(jù)所述待處理數(shù)據(jù)的屬性,獲取與所述待處理數(shù)據(jù)匹配的配置文件,所述配置文件包括預(yù)處理流程的各步驟; 所述程序獲取單元,用于根據(jù)所述預(yù)處理流程的各步驟分別獲取各步驟對(duì)應(yīng)的程序;所述程序執(zhí)行單元,用于按照所述各步驟的執(zhí)行順序執(zhí)行所述各步驟對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)所述待處理數(shù)據(jù)的預(yù)處理。6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述預(yù)處理流程的步驟包括預(yù)處理操作的標(biāo)識(shí)和操作參數(shù); 所述程序獲取單元,具體用于根據(jù)所述預(yù)處理操作的標(biāo)識(shí)得到對(duì)應(yīng)的預(yù)處理操作程序; 所述程序執(zhí)行單元,具體用于按照所述預(yù)處理操作程序的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作程序。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的類(lèi)名稱(chēng); 所述程序獲取單元,具體用于根據(jù)所述預(yù)處理操作的類(lèi)名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作類(lèi)對(duì)象; 所述程序執(zhí)行單元,具體用于按照所述預(yù)處理操作類(lèi)對(duì)象的執(zhí)行順序,結(jié)合所述操作參數(shù),執(zhí)行所述預(yù)處理操作類(lèi)對(duì)象。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述預(yù)處理操作的標(biāo)識(shí)為所述預(yù)處理操作的腳本名稱(chēng); 所述程序獲取單元,具體用于根據(jù)所述預(yù)處理操作的腳本名稱(chēng)得到對(duì)應(yīng)的預(yù)處理操作腳本程序。
【文檔編號(hào)】G06F17/30GK106021543SQ201610363231
【公開(kāi)日】2016年10月12日
【申請(qǐng)日】2016年5月26日
【發(fā)明人】郝玉琨, 梁生吉, 王昭, 陳龍, 曹睿
【申請(qǐng)人】中國(guó)農(nóng)業(yè)銀行股份有限公司