數(shù)據(jù)處理方法及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于直方圖的數(shù)據(jù)處理方法及設(shè)備。
【背景技術(shù)】
[0002]一般地,當(dāng)待分析數(shù)據(jù)的數(shù)量僅為幾十個時,通過目測就可以得到數(shù)據(jù)的分析結(jié)果,但是當(dāng)待分析數(shù)據(jù)的數(shù)量達到I千、I萬、……I億、10億時,就可以使用直方圖來分析數(shù)據(jù)。直方圖(Histogram)是一種表現(xiàn)數(shù)據(jù)分布特征的統(tǒng)計圖形,即用一組無間隔、等寬、高度不等的縱向線段或柱狀直條表示數(shù)據(jù)分布的情況。
[0003]例如,圖1OA至圖1OE是利用直方圖分析數(shù)據(jù)的一例的示意圖。圖1OA是針對某待分析數(shù)據(jù)而得到的直方圖,在將區(qū)間寬度(以下也稱作“組距”)設(shè)為80的情況下,由圖可知,數(shù)據(jù)大多集中在[480,560)和[0,80)這兩個區(qū)間。當(dāng)將組距從80變更為20時,如圖1OB所示,可以看出數(shù)據(jù)較多的兩個區(qū)間[500,520)和[0,20)優(yōu)勢非常明顯。進而,在僅關(guān)注數(shù)據(jù)最多的區(qū)間[500, 520)并將組距變更為2時,如圖1OC所示,可知在區(qū)間[510,512)上集中了絕大部分的數(shù)據(jù)。在同樣的區(qū)間[500,520),將組距調(diào)整為0.1時,如圖1OD所示,得出在這一區(qū)間內(nèi)數(shù)據(jù)均出現(xiàn)在整數(shù)附近這樣的結(jié)論。相對于此,當(dāng)僅關(guān)注區(qū)間[0,20)時,如圖1OE所示,這一區(qū)間內(nèi)的數(shù)據(jù)分布與區(qū)間[500,520)完全不同,而是表現(xiàn)出呈對數(shù)分布的形狀。由該示例可知,直方圖有利于對待分析數(shù)據(jù)的分布的了解,通過改變組距(區(qū)間寬度)就能得出數(shù)據(jù)分布的更多信息,通過關(guān)注直方圖中感興趣的若干區(qū)域,能夠比較直觀地看出各個區(qū)域的數(shù)據(jù)分布特點。
[0004]然而,當(dāng)待分析數(shù)據(jù)的數(shù)據(jù)量較小時,每次為獲得直方圖而執(zhí)行計算的時間很短,用戶可以連續(xù)地變換顯示組距(即直方圖的組距),切換到各個感興趣的區(qū)間,而沒有明顯的停頓感覺。但是,當(dāng)待分析數(shù)據(jù)的數(shù)據(jù)量較大時,計算時間就會變長,導(dǎo)致在切換區(qū)間的過程中明顯地出現(xiàn)畫面不流暢的現(xiàn)象,使用戶的體驗下降。另外,對于存儲在分布式系統(tǒng)的海量數(shù)據(jù)(即大數(shù)據(jù)),在用戶改變需求而變換顯示組距時,每次為獲得直方圖而執(zhí)行的計算需要花費幾分鐘,才能顯示出新的直方圖。
[0005]申請內(nèi)容
[0006]本申請的主要目的在于提供一種數(shù)據(jù)處理方法及設(shè)備,以解決現(xiàn)有技術(shù)存在的在直方圖的計算過程中計算時間過長而導(dǎo)致用戶體驗下降等問題,其中:
[0007]根據(jù)本申請的一個方面,提供一種數(shù)據(jù)處理方法,其特征在于,包括:響應(yīng)于針對一數(shù)據(jù)集合的初始查詢請求,通過讀取一遍數(shù)據(jù)集合內(nèi)的數(shù)據(jù)來得到基本直方圖;以及基于預(yù)定的目標(biāo)區(qū)間或目標(biāo)組距,由基本直方圖得到與目標(biāo)區(qū)間或目標(biāo)組距對應(yīng)的目標(biāo)直方圖,并呈現(xiàn)目標(biāo)直方圖。
[0008]根據(jù)本申請的另一方面,提供一種數(shù)據(jù)處理設(shè)備,其特征在于,包括:基本直方圖獲得裝置,被配置成響應(yīng)于針對一數(shù)據(jù)集合的初始查詢請求,通過讀取一遍數(shù)據(jù)集合內(nèi)的數(shù)據(jù)來得到基本直方圖;以及目標(biāo)直方圖獲得裝置,被配置成基于預(yù)定的目標(biāo)區(qū)間或目標(biāo)組距,由基本直方圖得到與目標(biāo)區(qū)間或目標(biāo)組距對應(yīng)的目標(biāo)直方圖,并呈現(xiàn)目標(biāo)直方圖。
[0009]與現(xiàn)有技術(shù)相比,根據(jù)本申請的技術(shù)方案,通過讀取一遍數(shù)據(jù),計算出作為中間數(shù)據(jù)的組距非常小的直方圖(稱作“基本直方圖”),然后根據(jù)用戶的需求,并使用基本直方圖來得到與用戶需求相應(yīng)的目標(biāo)直方圖。由此,在多次變換目標(biāo)直方圖的過程中,使讀取數(shù)據(jù)的次數(shù)減少為一次,并且每次使用基本直方圖就可實現(xiàn)直方圖的變換。由此,大大提高了系統(tǒng)的計算速度及數(shù)據(jù)處理能力,而且,即使在大數(shù)據(jù)的情況下也能夠快速地向用戶展示出直方圖。
【附圖說明】
[0010]此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0011]圖1是本申請實施例的數(shù)據(jù)處理方法的概略流程圖;
[0012]圖2是本申請實施例的獲得基本直方圖的流程圖;
[0013]圖3是本申請實施例的通過分布式計算得到基本直方圖的一例的示意圖;
[0014]圖4是本申請實施例的獲得節(jié)點基本直方圖的流程圖;
[0015]圖5是本申請實施例的合并節(jié)點基本直方圖的流程圖;
[0016]圖6是本申請實施例涉及的數(shù)據(jù)處理設(shè)備的結(jié)構(gòu)示意圖;
[0017]圖7是本申請實施例涉及的節(jié)點基本直方圖獲得裝置的一例的結(jié)構(gòu)示意圖;
[0018]圖8是本申請實施例涉及的節(jié)點基本直方圖獲得裝置的另一例的結(jié)構(gòu)示意圖;
[0019]圖9是本申請實施例涉及的直方圖獲得裝置的一例的結(jié)構(gòu)示意圖;
[0020]圖1OA至圖1OE是現(xiàn)有技術(shù)中利用直方圖分析數(shù)據(jù)的一例的示意圖。
【具體實施方式】
[0021]本申請的主要思想在于,對于大數(shù)據(jù),為了達到僅讀取一遍數(shù)據(jù)就能實現(xiàn)提供給用戶流暢的直方圖的查看功能這一目的,首先通過讀取一遍數(shù)據(jù)來計算出作為中間數(shù)據(jù)的組距非常小的直方圖(稱作“基本直方圖”),然后根據(jù)用戶的需求,將基本直方圖變換為與用戶需求對應(yīng)的目標(biāo)直方圖,即基于用戶需求的目標(biāo)區(qū)間或目標(biāo)組距,使用基本直方圖就可以得到目標(biāo)直方圖。從而,使得系統(tǒng)的計算速度及數(shù)據(jù)處理能力大幅度提高,而且即使在大數(shù)據(jù)的情況下也能夠快速地展示出直方圖以實現(xiàn)快速查看直方圖的功能。
[0022]這里需要說明的是,本申請中所稱的大數(shù)據(jù)可以是指數(shù)據(jù)量級為幾十GB以上的數(shù)據(jù)集合,并且可以為任意數(shù)據(jù)類型,諸如網(wǎng)絡(luò)日志、視頻、圖片、地理位置信息等等??梢岳斫獾剑旧暾埖姆桨赣绕溥m用于具有龐大數(shù)據(jù)量的大數(shù)據(jù)場景。與此同時,本申請的方案也同樣可以適用于其它任意數(shù)據(jù)量級的數(shù)據(jù)處理場景。為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,以下結(jié)合附圖及具體實施例,對本申請作進一步地詳細(xì)說明。
[0023]<數(shù)據(jù)處理方法>
[0024]根據(jù)本申請的實施例,提供了一種數(shù)據(jù)處理方法。經(jīng)過該數(shù)據(jù)處理方法處理后的處理結(jié)果以直方圖的形式顯示給用戶。
[0025]在現(xiàn)有技術(shù)中,構(gòu)成直方圖的兩個因素是組距和頻數(shù),直方圖的一般計算方法是:
(I)先讀取一遍數(shù)據(jù),計算出數(shù)據(jù)的最大值和最小值,從而得到極差即數(shù)據(jù)的最大值與最小值的差值。(2)根據(jù)用戶的需求來確定直方圖的組數(shù),然后用此組數(shù)去除極差,可得到直方圖的每組的寬度,即組距。(3)根據(jù)組距來確定各組的界限值。(4)再讀取一遍數(shù)據(jù),統(tǒng)計各組的頻數(shù)。對于該方法,每當(dāng)用戶改變需求,即如圖1OA至圖1OE所示那樣改變要顯示的直方圖的區(qū)間或組距時,都需要對全部數(shù)據(jù)讀取兩次并重新進行計算,才能得到與用戶需求對應(yīng)的直方圖。并且,在直方圖的計算過程中,由于需要讀取兩遍數(shù)據(jù),所以數(shù)據(jù)處理的時間變長。這樣,在數(shù)據(jù)量不斷增大的情況下,導(dǎo)致數(shù)據(jù)處理的時間變長,用戶的使用體驗就會大大下降。
[0026]鑒于上述問題,為了大幅度提高系統(tǒng)的數(shù)據(jù)處理能力,本申請從減少數(shù)據(jù)處理時間著手,即減少讀取數(shù)據(jù)的次數(shù)。因此,本申請涉及的數(shù)據(jù)處理方法主要包括兩個部分:一是通過自適應(yīng)的計算方法得到一個組距非常小的基本直方圖,以使得僅讀取一遍數(shù)據(jù)就可以得到基本直方圖;二是將基本直方圖變換為與用戶需求相應(yīng)的目標(biāo)直方圖,以使得無需對數(shù)據(jù)進行重復(fù)的讀取。
[0027]參照圖1,圖1是本申請實施例的數(shù)據(jù)處理方法的概略流程圖。在該圖中,步驟SlOl是本申請涉及的以自適應(yīng)方式處理數(shù)據(jù)的步驟,步驟S102是本申請涉及的基本直方圖變換處理的步驟。下面,逐一詳細(xì)地進行說明。
[0028]〔自適應(yīng)方式的數(shù)據(jù)處理〕
[0029]具體來說,在步驟SlOl中,響應(yīng)于針對一數(shù)據(jù)集合的初始查詢請求,通過讀取一遍所述數(shù)據(jù)集合內(nèi)的數(shù)據(jù)來得到基本直方圖。
[0030]當(dāng)用戶想要查看某些數(shù)據(jù)分布情況時,可以發(fā)起針對相應(yīng)數(shù)據(jù)集合的查詢請求。在本申請中,將用戶針對某一數(shù)據(jù)集合的首次查詢稱為初始查詢請求。該初始查詢請求可以是用戶通過輸入查詢關(guān)鍵字發(fā)起的數(shù)據(jù)查詢請求。更具體地,該初始查詢請求也可以是用戶針對某個數(shù)據(jù)集合發(fā)起的直方圖顯示請求。
[0031]在接收到用戶的上述初始查詢請求時,可以通過例如計算機等數(shù)據(jù)處理設(shè)備讀取數(shù)據(jù),經(jīng)過以自適應(yīng)方式處理數(shù)據(jù)后得到基本直方圖,而且在此過程中僅進行一次讀取數(shù)據(jù)的操作。上述的數(shù)據(jù)是指待處理的數(shù)據(jù)。另外,基本直方圖是組距非常小的直方圖,它實際上是用于構(gòu)成目標(biāo)直方圖的中間數(shù)據(jù),即經(jīng)過數(shù)據(jù)處理后得到的處理結(jié)果是中間數(shù)據(jù)而不是用于向用戶展示的真正的直方圖,但是為了便于描述,將此中間數(shù)據(jù)稱之為基本直方圖。
[0032]對于大數(shù)據(jù)而言,由于數(shù)據(jù)量龐大,所以通常采用分布式計算來處理數(shù)據(jù)。S卩,將數(shù)據(jù)劃分成多份后分配到多個計算節(jié)點,每個計算節(jié)點僅處理一部分?jǐn)?shù)據(jù),最后合并每個計算節(jié)點的處理結(jié)果來得到最終計算結(jié)果。所謂分布式計算就是通過多個計算節(jié)點互相共享信息,這些計算節(jié)點既可以在同一臺計算機上運行,也可以在通過網(wǎng)絡(luò)連接起來的多臺計算機上運行。下面,以分布式計算為例來說明基本直方圖的獲得方法。
[0033]圖2是本申請實施例的獲得基本直方圖的流程圖。圖3是本申請實施例的通過分布式計算得到基本直方圖的一例的示意圖。結(jié)合圖2和圖3,具體說明基本直方圖的獲得方法。
[0034]在步驟S201中,將數(shù)據(jù)分配到多個計算節(jié)點,以使得每個計算節(jié)點得到節(jié)點數(shù)據(jù)。即,如圖3所示,例如將海量數(shù)據(jù)劃分為節(jié)點數(shù)據(jù)1、節(jié)點數(shù)據(jù)2以及節(jié)點數(shù)據(jù)3這三部分以后,將這三部分的數(shù)據(jù)分別發(fā)送到計算節(jié)點1、計算節(jié)點2以及計算節(jié)點3。另外,圖3示出了三個計算節(jié)點和一個合并節(jié)點,但計算節(jié)點的數(shù)量不限于此,也可以是三個以上。此夕卜,合并節(jié)點也可以是多個計算節(jié)點之一。
[0035]在步驟S202中,每個計算節(jié)點通過讀取一遍節(jié)點數(shù)據(jù)來得到節(jié)點基本直方圖。即,如圖3所示,計算節(jié)點I讀取所接收到的節(jié)點數(shù)據(jù)1,經(jīng)過后述的圖4所示的處理后得到節(jié)點基本直方圖1。圖4是本