本發(fā)明涉及數(shù)據(jù)預(yù)處理領(lǐng)域,并且更具體地涉及一種基于大數(shù)據(jù)量的清洗方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,企業(yè)在數(shù)據(jù)產(chǎn)生和挖掘的過(guò)程中,數(shù)據(jù)量呈大幅度的增長(zhǎng)。在增長(zhǎng)的過(guò)程中,數(shù)據(jù)量的疊加造成了大量數(shù)據(jù)的重復(fù),存在許多垃圾數(shù)據(jù)或者說(shuō)無(wú)用的數(shù)據(jù)。另外,數(shù)據(jù)中存在的不完整的數(shù)據(jù)信息需要補(bǔ)全。為了降低逐步遞進(jìn)后的業(yè)務(wù)需求、提高效率以及響應(yīng)速度,需要根據(jù)不同的業(yè)務(wù)方向和類(lèi)型,從現(xiàn)有的大數(shù)據(jù)量中清洗出對(duì)應(yīng)的數(shù)據(jù)。
對(duì)于企業(yè)而言,在大數(shù)據(jù)量的業(yè)務(wù)需求中,客戶(hù)的滿(mǎn)意度取決于數(shù)據(jù)的完整度以及查看所需信息的響應(yīng)速度。為了提高這方面的需求,進(jìn)行數(shù)據(jù)規(guī)則分析,從而制定不同的業(yè)務(wù)類(lèi)型的清洗規(guī)則來(lái)滿(mǎn)足各個(gè)業(yè)務(wù)口。對(duì)于各種不同的數(shù)據(jù)挖掘系統(tǒng),都是針對(duì)特定的應(yīng)用領(lǐng)域進(jìn)行數(shù)據(jù)清洗,具體包括:檢測(cè)并消除數(shù)據(jù)異常、檢測(cè)并消除近似重復(fù)記錄、對(duì)數(shù)據(jù)進(jìn)行集成以及對(duì)特定領(lǐng)域的數(shù)據(jù)進(jìn)行清洗。然而,對(duì)于數(shù)據(jù)中存在大量缺失值的屬性,通常采用的措施是直接刪除,但是在有些系統(tǒng)進(jìn)行抽取-轉(zhuǎn)換-加載(ETL)處理時(shí),不能直接處理大量的缺失值;而對(duì)于比較重要的屬性,同樣會(huì)存在少量的缺失值,需要將數(shù)據(jù)補(bǔ)充完整后進(jìn)行一系列的數(shù)據(jù)挖掘。針對(duì)上述不完整的數(shù)據(jù)特征,在數(shù)據(jù)清洗過(guò)程中通常采取下面兩種方式對(duì)數(shù)據(jù)進(jìn)行填補(bǔ):
其一,將缺失的屬性值用同一常數(shù)替換,例如“Unknown”。這種方式通常用于處理數(shù)據(jù)中存在大量缺失值屬性的數(shù)據(jù),先用一個(gè)替換值將空值進(jìn)行約束替換,然后,如果處理后的數(shù)據(jù)對(duì)后期數(shù)據(jù)挖掘工作沒(méi)有價(jià)值將會(huì)選擇刪除。
其二,利用缺失值屬性的最可能的值填充缺失值。對(duì)于缺失比較重要屬性的數(shù)據(jù),事先對(duì)每個(gè)屬性進(jìn)行值統(tǒng)計(jì),統(tǒng)計(jì)其值的分布狀態(tài)和頻率,對(duì)缺失值屬性的所有遺漏的值均利用出現(xiàn)頻率最高的那個(gè)值來(lái)填補(bǔ)。
總的來(lái)說(shuō),數(shù)據(jù)清洗的最終目的是對(duì)各種臟數(shù)據(jù)進(jìn)行對(duì)應(yīng)方式的處理,得到標(biāo)準(zhǔn)的、干凈的、連續(xù)的、所需的數(shù)據(jù)以進(jìn)行數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)挖掘等使用。在以往的數(shù)據(jù)清洗處理過(guò)程中,web方式和大部分?jǐn)?shù)據(jù)清洗程序需要在沒(méi)有經(jīng)過(guò)清洗的大數(shù)據(jù)量中進(jìn)行匯總和分析,這樣做的后果不僅消耗大量的服務(wù)器資源,而且也會(huì)大大降低服務(wù)器的響應(yīng)速度。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明的目的在于提供一種基于大數(shù)據(jù)量的清洗方法,其采用Spark技術(shù)手段,依據(jù)Hadoop分布式文件系統(tǒng)(HDFS)的數(shù)據(jù),通過(guò)HDFS、Hive和Hadoop Database(Hbase)數(shù)據(jù)的存儲(chǔ)方式(業(yè)務(wù)方向),可以減少數(shù)據(jù)的存儲(chǔ)容量、降低服務(wù)器資源的消耗、提高檢索速度和數(shù)據(jù)準(zhǔn)確度、降低web展示端響應(yīng)時(shí)間、提高了服務(wù)器的響應(yīng)速度、以及滿(mǎn)足不同業(yè)務(wù)需要。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種基于大數(shù)據(jù)量的清洗方法,其包括以下步驟:
步驟一:依據(jù)HDFS或者Hive數(shù)據(jù)庫(kù)中的數(shù)據(jù),根據(jù)業(yè)務(wù)類(lèi)型配置清洗規(guī)則;
步驟二:根據(jù)數(shù)據(jù)的用途,配置經(jīng)過(guò)清洗后數(shù)據(jù)的存儲(chǔ)方式;
步驟三:根據(jù)需要清洗的數(shù)據(jù)的大小,配置Spark集群服務(wù)器資源;
步驟四:部署清洗程序任務(wù);
步驟五:對(duì)經(jīng)過(guò)清洗的數(shù)據(jù)進(jìn)行評(píng)估。
進(jìn)一步,步驟一中的清洗規(guī)則為:配置單表中去除重復(fù)數(shù)據(jù)所依據(jù)的字段、配置單表中補(bǔ)全內(nèi)容所依據(jù)的字段、配置單表中用于判斷垃圾數(shù)據(jù)所依據(jù)的字段、配置多表中進(jìn)行關(guān)聯(lián)所依據(jù)的字段、配置多表中對(duì)關(guān)聯(lián)后的數(shù)據(jù)進(jìn)行篩選的條件和/或配置多表中關(guān)聯(lián)后的所需數(shù)據(jù)的字段。
進(jìn)一步,上述關(guān)聯(lián)包括左關(guān)聯(lián)、右關(guān)聯(lián)或匹配。
進(jìn)一步,步驟二中的存儲(chǔ)方式為HDFS、Hive或Hbase。
進(jìn)一步,步驟三中的Spark集群服務(wù)器資源包括服務(wù)器的內(nèi)存大小、清洗程序?qū)?yīng)的分片大小、服務(wù)器的最大CPU核數(shù)和/或清洗程序的日志目錄。
進(jìn)一步,步驟四中的部署清洗程序任務(wù)包括:上傳待清洗數(shù)據(jù)包至任務(wù)調(diào)度服務(wù)器、配置任務(wù)調(diào)度并提交給Spark集群服務(wù)器以及監(jiān)控清洗程序運(yùn)行過(guò)程。
進(jìn)一步,步驟五中的評(píng)估的指標(biāo)包括數(shù)據(jù)的可信性和數(shù)據(jù)的可用性。
進(jìn)一步,上述評(píng)估的內(nèi)容包括:經(jīng)過(guò)清洗后的數(shù)據(jù)的存儲(chǔ)方式、經(jīng)過(guò)清洗后的數(shù)據(jù)的準(zhǔn)確性、數(shù)據(jù)是否有冗余、web訪(fǎng)問(wèn)數(shù)據(jù)是否達(dá)到規(guī)定的響應(yīng)時(shí)間和/或多表關(guān)聯(lián)后數(shù)據(jù)的格式和內(nèi)容。
附圖說(shuō)明
圖1為本發(fā)明的一種基于大數(shù)據(jù)量的清洗方法的流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明利用大數(shù)據(jù)量在數(shù)據(jù)挖掘及網(wǎng)絡(luò)爬蟲(chóng)的過(guò)程中存儲(chǔ)的數(shù)據(jù)存在重復(fù)數(shù)據(jù)、垃圾數(shù)據(jù)以及需要根據(jù)所需字段進(jìn)行內(nèi)容補(bǔ)全的字段,并利用大數(shù)據(jù)集群的資源、spark集群的性能,綜合評(píng)估大數(shù)據(jù)在清洗的過(guò)程完成的數(shù)據(jù)準(zhǔn)確度及清洗速度,然后基于大數(shù)據(jù)平臺(tái)的分布式處理能力,進(jìn)行數(shù)據(jù)量清洗工作,處理后的數(shù)據(jù)量分別存儲(chǔ)在HDFS和Hbase中,以便根據(jù)不同的業(yè)務(wù)類(lèi)型和方向提取數(shù)據(jù)或者提供web頁(yè)面進(jìn)行數(shù)據(jù)展示。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種基于大數(shù)據(jù)量的清洗方法,該方法采用Scala語(yǔ)言來(lái)設(shè)計(jì)清洗程序,采用Hbase的key-value存儲(chǔ)非關(guān)系型數(shù)據(jù),在程序完全開(kāi)發(fā)完畢和測(cè)試達(dá)標(biāo)后,再根據(jù)Spark分布式計(jì)算的優(yōu)點(diǎn),通過(guò)任務(wù)調(diào)度來(lái)部署清洗程序,保證每天產(chǎn)生的數(shù)據(jù)量都能經(jīng)過(guò)清洗。如圖1所示,首先,根據(jù)HDFS或者Hive或者Hbase中的數(shù)據(jù),依據(jù)業(yè)務(wù)類(lèi)型配置清洗的規(guī)則;然后,根據(jù)清洗后的數(shù)據(jù)用于何種業(yè)務(wù)類(lèi)型和方向,配置清洗后數(shù)據(jù)的存儲(chǔ)方式,例如HDFS、Hive倉(cāng)庫(kù)或者Hbase;接著,根據(jù)所需清洗數(shù)據(jù)量的大小,配置用于清洗程序的Spark集群服務(wù)器資源,包括清洗程序所需的服務(wù)器的內(nèi)存大小、清洗程序?qū)?yīng)的分片大小、清洗程序所需服務(wù)器的最大CPU核數(shù)、以及清洗程序的日志目錄以便及時(shí)捕捉錯(cuò)誤;然后,在配置好清洗規(guī)則、數(shù)據(jù)存儲(chǔ)方式及服務(wù)器資源后,將清洗程序部署到任務(wù)調(diào)度中;最后,評(píng)估清洗后的數(shù)據(jù),原因在于清洗數(shù)據(jù)的目的是滿(mǎn)足客戶(hù)的不同需求并提高客戶(hù)的認(rèn)可,因此,對(duì)清洗后的數(shù)據(jù)進(jìn)行評(píng)估就顯得格外重要。
根據(jù)本發(fā)明實(shí)施例的一方面,配置清洗的規(guī)則包括:配置單表中將根據(jù)哪些字段的值去除重復(fù)的數(shù)據(jù)、配置單表中將根據(jù)哪些字段的值補(bǔ)全數(shù)據(jù)內(nèi)容、配置單表中將根據(jù)哪些字段的值判斷數(shù)據(jù)為垃圾數(shù)據(jù)、配置多表中將根據(jù)哪些字段進(jìn)行關(guān)聯(lián)(例如左關(guān)聯(lián)、右關(guān)聯(lián)及匹配)、配置多表中對(duì)關(guān)聯(lián)后的數(shù)據(jù)進(jìn)行篩選的條件、以及配置多表中關(guān)聯(lián)后所需數(shù)據(jù)的字段。
根據(jù)本發(fā)明實(shí)施例的另一方面,數(shù)據(jù)清洗的評(píng)估實(shí)質(zhì)上是對(duì)清洗后的數(shù)據(jù)的質(zhì)量進(jìn)行評(píng)估,具體包括:評(píng)估數(shù)據(jù)是否按著配置的業(yè)務(wù)類(lèi)來(lái)存儲(chǔ)、評(píng)估數(shù)據(jù)的準(zhǔn)確性、評(píng)估數(shù)據(jù)是否還有冗余、評(píng)估數(shù)據(jù)對(duì)web訪(fǎng)問(wèn)是否能達(dá)到規(guī)定的響應(yīng)時(shí)間、評(píng)估數(shù)據(jù)是否滿(mǎn)足多表關(guān)聯(lián)后數(shù)據(jù)的格式、評(píng)估數(shù)據(jù)是否滿(mǎn)足多表關(guān)聯(lián)后內(nèi)容是否一致。然而,數(shù)據(jù)質(zhì)量的評(píng)估過(guò)程是一種通過(guò)測(cè)量和改善數(shù)據(jù)綜合特征來(lái)優(yōu)化數(shù)據(jù)價(jià)值的過(guò)程。數(shù)據(jù)質(zhì)量的評(píng)估指標(biāo)和方法研究的難點(diǎn)在于對(duì)數(shù)據(jù)質(zhì)量的含義、內(nèi)容、分類(lèi)、分級(jí)的評(píng)估指標(biāo)等。數(shù)據(jù)質(zhì)量評(píng)估至少應(yīng)該包含以下兩方面的基本評(píng)估指標(biāo):
其一,數(shù)據(jù)對(duì)用戶(hù)必須是可信的??尚判园ň_性、完整性、一致性、有效性、唯一性等指標(biāo)。具體如下:
1.精確性:描述數(shù)據(jù)是否與其對(duì)應(yīng)的客觀實(shí)體的特征相一致。
2.完整性:描述數(shù)據(jù)是否存在缺失記錄或缺失字段。
3.一致性:描述同一實(shí)體的同一屬性的值在不同的系統(tǒng)是否一致。
4.有效性:描述數(shù)據(jù)是否滿(mǎn)足用戶(hù)定義的條件或者在一定的域值范圍內(nèi)。
5.唯一性:描述數(shù)據(jù)是否存在重復(fù)記錄。
其二,數(shù)據(jù)對(duì)用戶(hù)必須是可用的。可用性包括時(shí)間性、穩(wěn)定性等指標(biāo)。具有如下:
1.時(shí)間性:描述數(shù)據(jù)是當(dāng)前數(shù)據(jù)還是歷史數(shù)據(jù)。
2.穩(wěn)定性:描述數(shù)據(jù)是否是穩(wěn)定的,是否在數(shù)據(jù)的有效期內(nèi)。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。