国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法與流程

      文檔序號:11134020閱讀:777來源:國知局
      一種從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法與制造工藝

      本發(fā)明涉及一種數(shù)據(jù)處理方法,特別是涉及一種對海量數(shù)據(jù)中特定類型數(shù)據(jù)的處理方法。



      背景技術(shù):

      在競爭與機(jī)遇并存的數(shù)字化信息時(shí)代,數(shù)據(jù)的分析與統(tǒng)計(jì)以決策支撐的身份出現(xiàn)在經(jīng)濟(jì)、管理、規(guī)劃和投資等許多相關(guān)領(lǐng)域。作為為企業(yè)經(jīng)營部門和決策層提供重要決策依據(jù)的技術(shù)手段,需要完成對反應(yīng)和影響企業(yè)發(fā)展的重要數(shù)據(jù)進(jìn)行實(shí)時(shí)收集、分析,并及時(shí)形成關(guān)鍵信息并反饋的處理過程,在滿足時(shí)效性的前提下,客觀地反應(yīng)業(yè)務(wù)發(fā)展?fàn)顩r。

      例如對經(jīng)營性企業(yè)來說,用戶數(shù)指標(biāo)是反映業(yè)務(wù)發(fā)展的一項(xiàng)關(guān)鍵指標(biāo)。

      在用戶業(yè)務(wù)量不斷增長的情況下,海量數(shù)據(jù)環(huán)境下如何快速計(jì)算出用戶數(shù),已經(jīng)成為數(shù)據(jù)分析系統(tǒng)亟待解決的業(yè)務(wù)需求。在面對每天產(chǎn)生的上億條用戶使用日志進(jìn)行海量數(shù)據(jù)統(tǒng)計(jì)處理的計(jì)算中,用戶數(shù)的快速讀取計(jì)算是一個(gè)急需解決的技術(shù)難題。

      目前,計(jì)算海量數(shù)據(jù)的現(xiàn)有技術(shù)通常采用的方法是進(jìn)行一次對一種維度(即某一個(gè)計(jì)算指標(biāo)或參數(shù),例如日期、業(yè)務(wù)類型、用戶類型等)的統(tǒng)計(jì)需求,就要對全部數(shù)據(jù)進(jìn)行一次掃描計(jì)算,具體方法包括分組、去重、求和的過程。用戶數(shù)的計(jì)算過程是首先要在全部數(shù)據(jù)中排除重復(fù)用戶的標(biāo)識(shí),然后計(jì)算去重后的用戶數(shù)量。

      當(dāng)增加統(tǒng)計(jì)維度時(shí),還需要重新進(jìn)行去重操作與重復(fù)計(jì)算,其計(jì)算量非常巨大和耗時(shí)。例如:針對一天的日志數(shù)據(jù)分別計(jì)算網(wǎng)絡(luò)類型和業(yè)務(wù)類型的用戶數(shù)時(shí),按照現(xiàn)有技術(shù)的方法,需要掃描兩次日志文件數(shù)據(jù)源:第一次計(jì)算網(wǎng)絡(luò)類型的用戶對象的數(shù)量,第二次計(jì)算業(yè)務(wù)類型的用戶對象數(shù)量。

      當(dāng)需要以上兩種類型(兩個(gè)維度)的組合用戶數(shù)時(shí),還需要重新進(jìn)行一次掃描和計(jì)算,而每一次的掃描與統(tǒng)計(jì)計(jì)算因?yàn)樯婕昂A康臄?shù)據(jù)對象,都會(huì)占用大量的計(jì)算機(jī)資源。每一次對數(shù)據(jù)源(通常是存儲(chǔ)在數(shù)據(jù)庫中的日志數(shù)據(jù))的掃描,需要調(diào)用高級數(shù)據(jù)接口、處理復(fù)雜數(shù)據(jù)對象,往往要對數(shù)據(jù)庫引擎、處理器和磁盤系統(tǒng)、內(nèi)存系統(tǒng)造成較大壓力,海量數(shù)據(jù)的掃描周期較長也不利于保證時(shí)效性。

      如何快速完成多維度用戶數(shù)據(jù)的掃描計(jì)算形成多維度數(shù)據(jù)分析結(jié)果,這一計(jì)算機(jī)數(shù)值分析與統(tǒng)計(jì)領(lǐng)域的技術(shù)問題,往往涉及以下技術(shù)難點(diǎn):

      如何定位數(shù)據(jù)源中的某一維度的數(shù)據(jù),在去重的同時(shí)保證數(shù)據(jù)的離散化和可檢索。這是保證減少完整掃描次數(shù)和滿足數(shù)據(jù)掃描結(jié)果積累更新的關(guān)鍵。

      如何形成對海量數(shù)據(jù)的高效中間運(yùn)算,盡量運(yùn)用低級運(yùn)算方式和方法,避免高級數(shù)據(jù)對象運(yùn)算形成的高TPS(每秒處理事務(wù)數(shù))消耗。



      技術(shù)實(shí)現(xiàn)要素:

      有鑒于此,本發(fā)明實(shí)施例提供了一種從海量數(shù)據(jù)中進(jìn)行維度數(shù)據(jù)快速定位的方法,用于解決海量數(shù)據(jù)掃描過程數(shù)據(jù)離散化程度低,數(shù)據(jù)無法有效定位,導(dǎo)致數(shù)據(jù)分析效率低下的技術(shù)問題。

      本發(fā)明的一種從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法,包括以下步驟:

      掃描數(shù)據(jù)源,利用位置標(biāo)識(shí)定位單一維度下的用戶位置信息,形成用戶分布數(shù)據(jù);

      根據(jù)用戶分布數(shù)據(jù)形成可存儲(chǔ)的維度用戶數(shù)據(jù);

      在可存儲(chǔ)的維度用戶數(shù)據(jù)間,通過布爾運(yùn)算形成多維數(shù)據(jù)分析結(jié)果。

      所述位置標(biāo)識(shí)的形成過程包括:

      通過建立用戶標(biāo)識(shí)鍵值結(jié)構(gòu),形成用戶的位置標(biāo)識(shí)。

      所述位置標(biāo)識(shí)的形成過程包括:

      獲取數(shù)據(jù)源中的用戶信息,提取用戶標(biāo)識(shí);

      為每一用戶分配唯一的數(shù)字標(biāo)識(shí),形成用戶標(biāo)識(shí)和數(shù)字標(biāo)識(shí)的鍵值對數(shù)據(jù);

      利用鍵值對數(shù)據(jù)建立可讀入內(nèi)存的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)。

      所述用戶分布數(shù)據(jù)的形成過程包括:

      分段掃描數(shù)據(jù)源,提取數(shù)據(jù)源中單一維度的用戶數(shù)據(jù)中的用戶信息,形成相應(yīng)的用戶標(biāo)識(shí);

      用戶標(biāo)識(shí)與內(nèi)存中的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)比較,形成去重的用戶的相應(yīng)鍵值對數(shù)據(jù);

      將相應(yīng)用戶鍵值對數(shù)據(jù)形成線性結(jié)構(gòu)數(shù)據(jù);

      利用線性結(jié)構(gòu)數(shù)據(jù)中的值定位內(nèi)存中的存儲(chǔ)位,利用鍵作為賦值依據(jù),賦值,形成二維空間中的用戶分布數(shù)據(jù)。

      所述線性結(jié)構(gòu)數(shù)據(jù)采用鏈表結(jié)構(gòu)。

      所述維度用戶數(shù)據(jù)的形成過程包括:

      通過數(shù)據(jù)容器建立可存儲(chǔ)的數(shù)據(jù)環(huán)境;

      根據(jù)用戶分布數(shù)據(jù)中的位置數(shù)據(jù)確定存儲(chǔ)范圍;

      根據(jù)用戶分布數(shù)據(jù)中的位置數(shù)據(jù)在數(shù)據(jù)容器的相應(yīng)位賦值,在數(shù)據(jù)容器的其他位填充;

      將數(shù)據(jù)容器中的內(nèi)容形成磁盤文件,作為單一維度的用戶的位置的數(shù)據(jù)文件。

      所述多維數(shù)據(jù)分析過程包括:

      利用數(shù)據(jù)容器獲取不同單一維度的用戶的位置的數(shù)據(jù)文件;

      在數(shù)據(jù)容器中對各數(shù)據(jù)文件的相應(yīng)位進(jìn)行布爾運(yùn)算,形成布爾運(yùn)算的結(jié)果序列,計(jì)數(shù)結(jié)果序列中的標(biāo)識(shí)值,形成相應(yīng)維度的用戶數(shù)信息。

      所述用戶標(biāo)識(shí)與內(nèi)存中的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)比較,形成去重的用戶的相應(yīng)鍵值對數(shù)據(jù)替換為用戶標(biāo)識(shí)與內(nèi)存中的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)比較,形成重復(fù)的用戶的相應(yīng)鍵值對數(shù)據(jù);

      所述線性結(jié)構(gòu)數(shù)據(jù)采用隊(duì)列結(jié)構(gòu)。

      所述根據(jù)用戶分布數(shù)據(jù)中的位置數(shù)據(jù)在數(shù)據(jù)容器的相應(yīng)位賦值,包括:

      在賦值前與相應(yīng)位進(jìn)行或運(yùn)算。

      所述建立用戶標(biāo)識(shí)鍵值結(jié)構(gòu)采用Hash算法;

      所述形成可存儲(chǔ)的維度用戶數(shù)據(jù)采用BLOB容器。

      本發(fā)明的從海量數(shù)據(jù)中進(jìn)行維度數(shù)據(jù)快速定位的方法,利用數(shù)值的離散性,將與用戶對應(yīng)的連續(xù)數(shù)值形成相關(guān)的位置標(biāo)識(shí)作為坐標(biāo),將位置標(biāo)識(shí)映射為二維空間中的位置和距離,并利用內(nèi)存地址的連續(xù)性確定相應(yīng)的位置和距離,在線性位置的內(nèi)存對象賦值,形成可測量和存儲(chǔ)的分布信息,利用布爾運(yùn)算形成相應(yīng)維度類型的用戶信息。解決了維度數(shù)據(jù)處理無法利用高效運(yùn)算方式造成處理結(jié)果時(shí)效性差和系統(tǒng)負(fù)荷無法降低的技術(shù)問題。利用用戶與離散數(shù)值間建立的位置標(biāo)識(shí),在內(nèi)存空間中建立位置關(guān)聯(lián),將映射的用戶信息以位置信息存儲(chǔ),充分利用內(nèi)存環(huán)境的尋址性能和處理器低級運(yùn)算的絕對優(yōu)勢,將海量數(shù)據(jù)中的維度用戶數(shù)據(jù)分析的運(yùn)算周期大大縮短。

      附圖說明

      圖1a為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的流程圖;

      圖1b為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的預(yù)置流程圖;

      圖2為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的位置標(biāo)識(shí)的形成流程圖;

      圖3為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的用戶分布的形成流程圖;

      圖4為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的維度數(shù)據(jù)的形成流程圖;

      圖5為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的多維度用戶分析的形成流程圖;

      圖6為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例形成維度用戶數(shù)據(jù)的過程示意圖。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      圖紙中的步驟編號僅用于作為該步驟的附圖標(biāo)記,不表示執(zhí)行順序。

      本發(fā)明的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法,利用數(shù)的離散性,將與用戶對應(yīng)的連續(xù)數(shù)值形成相關(guān)的位置標(biāo)識(shí),將位置標(biāo)識(shí)映射為二維空間中的位置和距離,并利用內(nèi)存地址的連續(xù)性確定相應(yīng)的位置和距離,利用布爾運(yùn)算形成相應(yīng)維度類型的用戶信息。

      圖1a為本發(fā)明一實(shí)施例的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法的流程圖,為形成多維度用戶信息的過程。如圖1a所示,該方法包括:

      步驟02:掃描數(shù)據(jù)源,利用位置標(biāo)識(shí)定位單一維度下的用戶位置信息,形成用戶分布數(shù)據(jù);

      步驟03:根據(jù)用戶分布數(shù)據(jù)形成可存儲(chǔ)的維度用戶數(shù)據(jù);

      步驟04:在可存儲(chǔ)的維度用戶數(shù)據(jù)間,通過布爾運(yùn)算形成多維數(shù)據(jù)分析結(jié)果。

      本實(shí)施例的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法,利用用戶與離散數(shù)值間建立的位置標(biāo)識(shí),在內(nèi)存空間中建立位置關(guān)聯(lián),將映射的用戶信息以位置信息存儲(chǔ),充分利用內(nèi)存環(huán)境的尋址性能和處理器低級運(yùn)算的絕對優(yōu)勢,將海量數(shù)據(jù)中的維度用戶數(shù)據(jù)分析的運(yùn)算周期大大縮短。在復(fù)雜的多維度用戶數(shù)的處理過程中,可以將數(shù)據(jù)源掃描頻率降低、分析過程簡化,處理速度可以提高一至兩個(gè)量級。

      圖1b為本發(fā)明一實(shí)施例的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法的預(yù)置流程圖,提供了一種形成位置標(biāo)識(shí)的過程,如圖1b所示,該方法包括:

      步驟01:建立用戶標(biāo)識(shí)鍵值結(jié)構(gòu),形成用戶的位置標(biāo)識(shí)。

      步驟01作為利用位置標(biāo)識(shí)進(jìn)行數(shù)據(jù)處理前的獨(dú)立的數(shù)據(jù)處理過程。

      本實(shí)施例的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法,利用數(shù)值的離散性,將離散用戶與連續(xù)數(shù)值關(guān)聯(lián)形成位置標(biāo)識(shí),連續(xù)數(shù)值映射為二維空間中的距離和位置。

      圖2為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的位置標(biāo)識(shí)的形成流程圖。如圖2所示包括:

      步驟11:獲取數(shù)據(jù)源中的用戶信息,提取用戶標(biāo)識(shí);

      通過分段掃描數(shù)據(jù)源,獲取用戶信息,提取用戶的唯一用戶標(biāo)識(shí)。具有分段提取數(shù)據(jù)功能有利于數(shù)據(jù)源積累時(shí)的更新。

      步驟12:為每一用戶分配唯一的數(shù)字標(biāo)識(shí),形成用戶標(biāo)識(shí)和數(shù)字標(biāo)識(shí)的鍵值對數(shù)據(jù);

      待分配的數(shù)字標(biāo)識(shí)具有連續(xù)性,且不可重復(fù),每個(gè)用戶的用戶標(biāo)識(shí)固定對應(yīng)一個(gè)數(shù)字標(biāo)識(shí),數(shù)字標(biāo)識(shí)的分配具有隨機(jī)性。保證鍵及鍵值的唯一性,數(shù)字標(biāo)識(shí)的分配符合正態(tài)分布。

      步驟13:利用鍵值對數(shù)據(jù)建立可讀入內(nèi)存的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)。

      例如,利用JAVA編程將該用戶標(biāo)識(shí)和數(shù)字標(biāo)識(shí)的對應(yīng)關(guān)系加載至哈希映射對象HashMap中,形成"用戶名:數(shù)字標(biāo)識(shí)"的鍵值對數(shù)據(jù)結(jié)構(gòu),用戶標(biāo)識(shí)為鍵,數(shù)字標(biāo)識(shí)為值。

      圖3為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的用戶分布的形成流程圖。如圖3所示包括:

      步驟21:分段掃描數(shù)據(jù)源,提取數(shù)據(jù)源中單一維度的用戶數(shù)據(jù)中的用戶信息,形成相應(yīng)的用戶標(biāo)識(shí);

      可以是同步提取數(shù)據(jù)源中其他各維度的用戶數(shù)據(jù)中的用戶信息,形成后續(xù)并行的數(shù)據(jù)處理過程。

      步驟22:用戶標(biāo)識(shí)與內(nèi)存中的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)比較,形成去重的用戶的相應(yīng)鍵值對數(shù)據(jù);

      去重,體現(xiàn)了在同一維度中的用戶數(shù)量,也可以采用對用戶標(biāo)識(shí)進(jìn)行標(biāo)記,對標(biāo)記進(jìn)行布爾或運(yùn)算,過濾重復(fù)的用戶信息。例如,在分段掃描數(shù)據(jù)源的過程中,在用戶鍵值對結(jié)構(gòu)數(shù)據(jù)上設(shè)置標(biāo)記為1,被標(biāo)記過的用戶鍵值對對應(yīng)的重復(fù)用戶標(biāo)識(shí)放棄。適合在一次完整的海量數(shù)據(jù)的用戶分布數(shù)據(jù)形成過程中使用,可以與分段掃描配合。

      步驟23:將相應(yīng)用戶鍵值對數(shù)據(jù)形成線性結(jié)構(gòu)數(shù)據(jù);

      線性結(jié)構(gòu)數(shù)據(jù)采用鏈表結(jié)構(gòu),利用鍵和值確定相應(yīng)鏈表節(jié)點(diǎn)的域值。

      步驟24:利用線性結(jié)構(gòu)數(shù)據(jù)中的值定位內(nèi)存中的存儲(chǔ)位,利用鍵作為賦值依據(jù),賦值,形成二維空間中的用戶分布數(shù)據(jù)。

      利用內(nèi)存的連續(xù)尋址特點(diǎn),將離散的用戶數(shù)據(jù)通過鍵值對映射在內(nèi)存的連續(xù)地址空間中,獲得位置的索引信息,并充分利用內(nèi)存運(yùn)算速度,避免與存儲(chǔ)裝置頻繁交互。

      圖4為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的維度數(shù)據(jù)的形成流程圖。如圖4所示包括:

      步驟31:通過數(shù)據(jù)容器建立可存儲(chǔ)的數(shù)據(jù)環(huán)境;

      利用數(shù)據(jù)庫中存儲(chǔ)二進(jìn)制大對象文件的容器BLOB建立數(shù)據(jù)容器,也可以用個(gè)編程語言化凝重的相應(yīng)數(shù)據(jù)類型對象形成容器。

      步驟32:根據(jù)用戶分布數(shù)據(jù)中的位置數(shù)據(jù)確定存儲(chǔ)范圍;

      位置數(shù)據(jù)的最大值可用來確定數(shù)據(jù)容器的尺寸,數(shù)據(jù)容器的尺寸與位置數(shù)據(jù)數(shù)值相適應(yīng),可以后續(xù)擴(kuò)大,與用戶積累更新相適應(yīng)。

      步驟33:根據(jù)用戶分布數(shù)據(jù)中的位置數(shù)據(jù)在數(shù)據(jù)容器的相應(yīng)位賦值,在數(shù)據(jù)容器的其他位填充;

      在數(shù)據(jù)容器的與位置數(shù)據(jù)對應(yīng)的位賦值1,在其他位賦值0。也可以先填充0,再做相應(yīng)的賦值過程。

      步驟34:將數(shù)據(jù)容器中的內(nèi)容形成磁盤文件,作為單一維度的用戶的位置的數(shù)據(jù)文件。

      利用數(shù)據(jù)容器形成尺寸與內(nèi)存地址相應(yīng)的位或字節(jié)的對應(yīng)存儲(chǔ),將內(nèi)存地址中的信息映射為磁盤文件中具體的位或字節(jié)。用于映射用戶標(biāo)識(shí)的連續(xù)內(nèi)存地址在磁盤文件中形成相對起始位置的偏移地址,保證了映射前后的位置和間距的固定。

      在本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的數(shù)據(jù)處理過程中,在上述步驟21中以并行方式同步提取數(shù)據(jù)源中其他各維度的用戶數(shù)據(jù)中的用戶信息的相應(yīng)后續(xù)步驟會(huì)形成若干個(gè)單一維度的用戶的位置的數(shù)據(jù)文件。

      圖5為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例的多維度用戶分析的形成流程圖。如圖5所示包括:

      步驟41:利用數(shù)據(jù)容器獲取不同單一維度的用戶的位置的數(shù)據(jù)文件;

      步驟42:在數(shù)據(jù)容器中對各數(shù)據(jù)文件的相應(yīng)位進(jìn)行布爾運(yùn)算,形成布爾運(yùn)算的結(jié)果序列,計(jì)數(shù)結(jié)果序列中的標(biāo)識(shí)值,形成相應(yīng)維度的用戶數(shù)信息。

      單一維度用戶位置數(shù)據(jù)文件中包括以位數(shù)據(jù)形成的用戶分布數(shù)據(jù)中的位置信息和用戶信息,利用相同位置的用戶信息標(biāo)記內(nèi)容做必要的布爾運(yùn)算,可以充分利用軟硬件環(huán)境的優(yōu)勢,完成數(shù)據(jù)分析。

      例如,不同維度用戶的數(shù)據(jù)文件中相同位置的布爾運(yùn)算有下述兩種:

      位與是兩個(gè)二進(jìn)制位做與運(yùn)算:該兩個(gè)位必須都為1時(shí),它們的與運(yùn)算結(jié)果才為1,否則為0;

      位或是兩個(gè)二進(jìn)制位做或運(yùn)算:該兩個(gè)位只要有一個(gè)為1,它們的或運(yùn)算結(jié)果就為1,否則為0。

      將BLOB存儲(chǔ)位置二進(jìn)制位對象轉(zhuǎn)換為JAVA中表示大整數(shù)數(shù)據(jù)結(jié)構(gòu)的BigInteger對象;

      若是統(tǒng)計(jì)一個(gè)緯度的用戶數(shù),則對單一維度用戶位置數(shù)據(jù)文件調(diào)用BigInteger對象的bitCount()方法,統(tǒng)計(jì)其中二進(jìn)制1的個(gè)數(shù),就能夠獲得用戶數(shù)的數(shù)據(jù)。

      若是統(tǒng)計(jì)多個(gè)緯度組合匹配的用戶數(shù),則要對多個(gè)單一維度用戶位置數(shù)據(jù)文件相應(yīng)的位對象進(jìn)行布爾運(yùn)算,形成一個(gè)二進(jìn)制序列,再計(jì)算位運(yùn)算后的BigInteger對象的1的個(gè)數(shù),才能得到所需求的用戶數(shù)數(shù)據(jù)。

      本發(fā)明的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法的上述實(shí)施例的中的去重,可以與線性結(jié)構(gòu)數(shù)據(jù)的結(jié)構(gòu)優(yōu)化相結(jié)合,形成另一種用戶分布數(shù)據(jù)的形成過程,包括:

      在步驟22替換為:用戶標(biāo)識(shí)與內(nèi)存中的用戶鍵值對結(jié)構(gòu)數(shù)據(jù)比較,形成包括重復(fù)用戶的相應(yīng)鍵值對數(shù)據(jù);

      在步驟23的線性結(jié)構(gòu)數(shù)據(jù)采用隊(duì)列數(shù)據(jù)結(jié)構(gòu):將相應(yīng)用戶鍵值對數(shù)據(jù)形成隊(duì)列,記錄包含重復(fù)出現(xiàn)的用戶鍵值。

      相應(yīng)的,在步驟33替換為:根據(jù)用戶分布數(shù)據(jù)中的位置數(shù)據(jù)在數(shù)據(jù)容器的相應(yīng)位利用布爾運(yùn)算去重、賦值,在數(shù)據(jù)容器的其他位填充。

      本實(shí)施例中,利用改變線性結(jié)構(gòu)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),改變了去重的處理步驟和實(shí)現(xiàn)位置,可以使得去重盡量利用低級的布爾運(yùn)算,避免對高級數(shù)據(jù)對象的運(yùn)算,進(jìn)一步提高處理性能。

      圖6為本發(fā)明從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法一實(shí)施例形成維度用戶數(shù)據(jù)的過程示意圖。如圖6所示,用戶標(biāo)識(shí)鍵值結(jié)構(gòu)形成的鍵值對為“用戶:數(shù)值”,一用戶對應(yīng)一個(gè)唯一的數(shù)值,數(shù)值以遞增的整數(shù)連續(xù)分配。數(shù)值與內(nèi)存的地址相匹配,一數(shù)值對應(yīng)內(nèi)存一地址(具體為位地址或字節(jié)地址)。當(dāng)在單一維度的用戶位置計(jì)算時(shí),例如該維度的數(shù)據(jù)對象中出現(xiàn)user1、2、3、5、6,那么經(jīng)計(jì)算映射,在相應(yīng)內(nèi)存地址的寄存器置1,則所有用戶范圍內(nèi)的用戶信息序列數(shù)據(jù)位1110110,該數(shù)據(jù)采用BLOB對象可以直接處理為相應(yīng)的二進(jìn)制序列形成相應(yīng)的磁盤文件,使位置及用戶信息與維度相對應(yīng)地保存,并用于后續(xù)的數(shù)據(jù)分析。

      根據(jù)本發(fā)明實(shí)施例的從海量數(shù)據(jù)中高效計(jì)算多個(gè)維度用戶數(shù)的方法形成的相應(yīng)的處理裝置,至少包括:

      用戶分布數(shù)據(jù)生成裝置,用于掃描數(shù)據(jù)源,利用位置標(biāo)識(shí)定位單一維度下的用戶位置信息,形成用戶分布數(shù)據(jù);

      維度用戶數(shù)據(jù)生成裝置,用于根據(jù)用戶分布數(shù)據(jù)形成可存儲(chǔ)的維度用戶數(shù)據(jù)的裝置;

      多維數(shù)據(jù)分析結(jié)果生成裝置,用于在可存儲(chǔ)的維度用戶數(shù)據(jù)間,通過布爾運(yùn)算形成多維數(shù)據(jù)分析結(jié)果的裝置。

      還包括位置標(biāo)識(shí)裝置,用于建立用戶標(biāo)識(shí)鍵值結(jié)構(gòu),形成用戶的位置標(biāo)識(shí)。

      以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1