一種多維度拆分的計算方法及系統的製作方法
2023-05-20 12:21:16 3
一種多維度拆分的計算方法及系統的製作方法
【專利摘要】本發明公開一種多維度拆分的計算方法及系統,涉及多維度拆分【技術領域】,可以對海量數據進行實時多維度拆分計算,降低計算複雜度。本發明實施例通過根據預設的指標以及維度信息生成遞推拓撲;根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。本發明實施例提供的方案適於進行多維度拆分時採用。
【專利說明】一種多維度拆分的計算方法及系統
【技術領域】
[0001]本發明涉及多維度拆分【技術領域】,尤其涉及一種多維度拆分的計算方法及系統。
【背景技術】
[0002]目前,對於大數據量的數據一般採用N+1的數據進行離線地多維度拆分,即通常進行多維度拆分計算時,首先統計一天接收到的所有數據,然後第二天將前一天統計的所有數據進行多維度拆分。現有技術在進行多維度拆分計算時,通常採用關係型資料庫的OLAP (on-line analytical processing),聯機分析處理)系統。關係型資料庫為由二維表及各個二維表之間的聯繫組成的一個數據組織。採用現有技術進行多維度拆分計算時,根據用戶的數據請求,通過關係型資料庫的多個二維表以及多個二維表之間的聯繫聯合計算,從而獲得符合用戶數據請求的多維組合結果。
[0003]然而,對大數據量的數據進行多維度拆分時,無法做到實時多維度拆分處理,採用OLAP系統僅能支持小數據量下的多維度拆分,並且由於基於關係型資料庫的多個二維表進行多維度拆分計算,計算複雜度較高,並且處理數據量較小。
【發明內容】
[0004]本發明的實施例提供一種多維度拆分的計算方法及系統,可以對海量數據進行實時多維度拆分計算,降低計算複雜度。
[0005]第一方面,本發明實施例提供一種多維度拆分的計算方法,包括:
[0006]根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱;
[0007]根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;
[0008]接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;
[0009]根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。
[0010]第二方面,本發明實施例提供一種多維度拆分的計算系統,包括:
[0011]運算決策模塊,用於根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱;
[0012]所述運算決策模塊,還用於根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;
[0013]預處理模塊,用於接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;
[0014]維度組合實時計算服務模塊,用於根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。
[0015]本發明實施例提供一種多維度拆分的計算方法及系統,通過根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱;根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。
[0016]與現有技術中對大數據量的數據進行多維度拆分時,無法做到實時多維度拆分處理,採用OLAP系統僅能支持小數據量下的多維度拆分,並且由於基於關係型資料庫的多個二維表進行多維度拆分計算,計算複雜度較高,並且處理數據量較小相比,本發明通過實時對所述處理數據執行不同的累加計算,獲得累加計算結果,使得可以對海量數據進行實時多維度拆分計算,並降低計算複雜度。
【專利附圖】
【附圖說明】
[0017]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0018]圖1為本發明一個實施例提供的一種多維度拆分的計算方法的流程圖;
[0019]圖2為本發明一個實施例提供的遞推拓撲示意圖;
[0020]圖3為本發明另一個實施例提供的一種多維度拆分的計算方法的流程圖;
[0021]圖4為本發明另一個實施例提供的對處理數據執行不同的累加計算,獲得累加計算結果的流程圖;
[0022]圖5為本發明另一個實施例提供的由待計算的TopView列表換算的流水列號列表示意圖;
[0023]圖6為本發明另一個實施例提供的View存儲服務中內存緩存存儲結構示意圖;
[0024]圖7為本發明另一個實施例提供的根據用戶的數據查詢請求獲取對應的數據的流程圖;
[0025]圖8為本發明另一個實施例提供的一種多維度拆分的計算系統的框圖;
[0026]圖9為本發明另一個實施例提供的另一種多維度拆分的計算方法的框圖。
【具體實施方式】
[0027]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0028]本發明實施例提供一種多維度拆分的計算方法,該方法的執行主體可以為伺服器,具體可以為多維度拆分系統,該方法包括:
[0029]步驟101,根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱。
[0030]可選的,預設的指標以及維度信息可以根據當前需要處理的業務進行設置,不同的業務可以設置不同的指標以及維度信息。在本步驟執行之前,可以由配置管理員向多維度拆分系統配置根據當前需要處理的業務設置的指標和維度信息。
[0031]根據預設的指標以及維度信息生成遞推拓撲時,可以根據屬性之間的層級關係進行上卷或者刪除某一個屬性等方式進行拓撲。例如,對於維度組合用戶城市、用戶年齡、用戶性別生成遞推拓撲,可選的,根據用戶城市進行上卷,例如用戶城市為石家莊,用戶城市所屬的省為河北省,則從用戶城市這個屬性通過上卷可以獲得用戶城市所屬的省這個屬性。可選的,可以根據用戶年齡進行上卷,例如用戶年齡為13歲,用戶年齡所屬的年齡段為10歲-20歲,則從用戶年齡這個屬性通過上卷可以獲得用戶年齡所屬的年齡段這個屬性。可選的,可以刪除某一個屬性從而獲得新的維度組合,例如可以刪除用戶性別這個屬性,從而可以獲得新的維度組合:用戶城市以及用戶年齡。
[0032]可選的,如圖2所示的遞推拓撲示意圖,圖中ABC為接收到的海量預處理數據,其中,ABC可以為由三個維度構成的維度組合(View),第二層中包括從View_ABC中獲取的View_AB以及View_AC兩個維度組合,第三層包括從View_AB中獲得View_A以及View_B,從View_AC中獲得的View_C。其中,維度組合之間的箭頭表示屬性之間的遞推路徑。
[0033]步驟102,根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑。
[0034]預設固化策略用於指示固化維度組合的查詢數據來源。
[0035]固化維度組合即為預設的某些維度的組合,例如,用戶年齡、用戶性別、用戶城市這三個維度的組合,或者,用戶年齡、用戶性別這兩個維度的組合等。
[0036]最優固化維度組合的運算路徑可以為獲得需求的維度組合時計算代價最小的運算路徑。
[0037]可選的,根據預設固化策略確定構成最優固化維度組合的運算路徑時,路徑端點的維度組合即可以為固化維度組合。
[0038]步驟103,接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據。
[0039]可選的,配置管理員預先向多維度拆分系統註冊數據上報點,多維度拆分系統接收預配置的數據上報點。
[0040]根據預配置的所述數據上報點,接收所述數據上報點通過不同的數據通道上報的海量數據,所述數據通道用於對接收到的所述海量數據進行合併數據包處理或者傳輸失敗重傳處理或者壓縮處理。可選的,不同的數據上報點可以接收不同格式的數據,並通過不同的數據通道傳輸數據。
[0041]可選的,合併數據包為將小的數據包合併為大的數據包,使得可以減少數據在數據通道傳輸過程中的握手驗證等,從而在跨城市傳輸時可以降低平均傳輸時延。失敗重傳即在傳輸失敗時重新傳輸,以保證可以傳輸成功,提高傳輸可靠性。
[0042]可選的,本步驟可以對接收到的海量數據進行及時預處理。海量數據可以為不同用戶一段時間內的數據,例如,不同用戶在9::0-10:00進行操作的數據。
[0043]可選的,對接收到的海量數據進行預處理包括:
[0044]A,根據所述海量數據以及預設選擇預處理規則,確定與所述海量數據對應的預處理規則。
[0045]可選的,預設選擇預處理規則為指定海量數據採用哪種預處理規則進行處理的規貝U。可選的,海量數據可以為接收到的一個用戶預設時間段的數據,此時可以採用預處理規貝IJI進行處理,預處理規則I可以為對海量數據進行非法欄位過濾;海量數據可以為接收到的多個用戶預設時間段的數據,此時可以採用預設處理規則2進行處理,預設處理規則2可以為先對海量數據按照用戶進行分組,獲得每個用戶預設時間段內的數據,然後對分組後每一組數據進行非法欄位過濾。
[0046]B,根據所述預處理規則,對所述海量數據進行清洗處理,獲得第一處理數據。
[0047]可選的,根據上述描述的預處理規則對不同的海量數據進行清洗處理,即對海量數據中的非法欄位過濾。
[0048]C,根據預設抽取欄位規則,在所述第一處理數據中抽取多維度拆分所需的至少一個欄位或者至少一個欄位組合。
[0049]可選的,預設抽取欄位規則可以為根據經驗設置的需要抽取的欄位,即需要在第一處理數據中分別抽取需要的維度組合,例如,需要獲得用戶的性別、用戶的年齡的維度組合,或者需要獲得用戶的性別、用戶的地址的維度組合,則可以根據預設抽取欄位規則,在第一處理數據中抽取用戶的性別、用戶的年齡這兩個欄位,以及再第一處理數據中抽取用戶的性別、用戶的地址這兩個欄位。進一步可選的,可以對抽取的至少一個欄位或者至少一個欄位組合進行短暫緩存。
[0050]D,根據抽取的所述至少一個欄位或者至少一個欄位組合生成寬表,並將所述至少一個欄位或者至少一個欄位組合保存在所述寬表中。
[0051]寬表指以列存儲的形式存儲數據的表,即每一個欄位佔用寬表中的一列進行存儲。
[0052]可選的,一個欄位組合採用一個寬表存儲,可以理解的,一個欄位組合中不論有幾個欄位,都採用一個寬表存儲,例如抽取的欄位組合為用戶的性別、用戶的年齡,則對應的寬表中保存用戶的性別、用戶的年齡的數據,抽取的欄位組合為用戶的性別、用戶的地址,則對應的寬表中保存用戶的性別、用戶的地址的數據。
[0053]可選的,可以將重複的寬表進行合併。
[0054]E,將所述寬表中保存的所述至少一個欄位或者至少一個欄位組合進行壓縮,獲得所述處理數據。
[0055]可選的,為了減少保存寬表的空間,減少落地數據量,則可以對寬表中保存的欄位組合進行壓縮,例如,可以採用重量壓縮、輕量壓縮等方式進行壓縮。其中,重量壓縮指採用較大的壓縮比例壓縮數據,輕量壓縮指採用較小的壓縮比例壓縮數據。同樣的數據採用重量壓縮後的數據量比採用輕量壓縮後數據量小,但採用重量壓縮後的數據的計算性能較差,即由於壓縮比例較大,後續處理壓縮後數據時,需要解壓縮的時間較多,採用輕量壓縮後的數據的計算性能較好,因此優選的,將所述寬表中保存的所述至少一個欄位或者至少一個欄位組合進行輕量壓縮,獲得所述處理數據。
[0056]進一步可選的,可以對由寬表對應的處理數據採用全內存或者內存列表的方式保存至實時寬表服務中。可選的,實時寬表服務為大列表存儲系統,由分布式的內存列表和基於分布式文件系統的大表(Big Table)組成,對於需要檢驗是否去重等隨機讀寫多、時延低的數據,會全內存存儲,其他數據則是使用內存列表存儲,並定期合併到分布式文件系統的Big Table 上。
[0057]步驟104,根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。
[0058]可選的,預設計算規則可以為根據指標判斷對處理數據進行簡單累加或者去重累力口。例如,北京某個男性用戶A在早上8:00用手機登錄QQ,同時在7:00用計算機登陸過QQ,待運算指標是QQ登陸人數,則對於View[用戶城市-用戶性別]來說,用戶A之前已經計算過,因此不能將用戶A此次的登錄進行重複計數,因此需要採用去重累加的方式計算;但對於View[用戶城市-用戶性別-登陸方式]來說,由於用戶A的登錄方式不同,因此View值不同,則該View下的[北京-男性-手機登陸]這個值需要加一,即採用簡單累加的方式計算。
[0059]進一步可選的,將累加計算結果採用全內存或者內存列表的方式保存在View存儲服務中,可選的,View存儲服務為大列表存儲系統,由分布式的內存列表和基於分布式文件系統的大表(Big Table)組成,對於需要檢驗是否去重等隨機讀寫多、時延低的數據,會全內存存儲,其他數據則是使用內存列表存儲,並定期合併到分布式文件系統的Big Table上。
[0060]本發明實施例提供一種多維度拆分的計算方法,通過根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱;根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,使得可以對海量數據進行實時多維度拆分計算,並降低計算複雜度。
[0061]本發明實施例提供一種多維度拆分的計算方法,如圖3所示,該方法包括:
[0062]步驟301,接收配置管理員配置的數據上報點、指標、維度信息以及預設的多維度拆分計算頻率。
[0063]可選的,在多維度拆分的計算方法執行之前,配置管理員會將與當前需要處理的業務相關的信息配置到多維度拆分系統中。例如,指標可以為當前需要處理的業務的待計算的指標,指標可以為登錄人數、登錄次數、點擊人數、點擊次數等。維度信息可以為當前需要處理的業務中待計算的維度,可以根據此維度以及維度之間的層級關係生成遞推拓撲。
[0064]可選的,例如,多維度拆分計算頻率可以為5分鐘、15分鐘、I小時等,根據此多維度拆分計算頻率多維度拆分系統可以儘可能地緩存流水數據,並執行合併計算以及讀寫操作,使得可以更有效地調度資源。
[0065]需要說明的是,根據不同的業務可以獲得不同的指標、維度信息以及多維度拆分計算頻率。
[0066]步驟302,根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱。
[0067]可選的,本步驟與附圖1中步驟101相同,在此不再--贅述。
[0068]步驟303,根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;
[0069]可選的,本步驟與附圖1中步驟102相同,在此不再一一贅述。
[0070]步驟304,接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據。
[0071]可選的,根據預配置的所述數據上報點,接收所述數據上報點通過不同的數據通道上報的海量數據,所述數據通道用於對接收到的所述海量數據進行合併數據包處理或者傳輸失敗重傳處理或者壓縮處理。
[0072]可選的,本步驟與附圖1中步驟103相同,在此不再--贅述。
[0073]步驟305,將由寬表對應的所述處理數據採用全內存或者內存列表的方式保存。
[0074]可選的,可以將預處理之後的處理數據落地至實時寬表服務中。可選的,實時寬表服務為大列表存儲系統,由分布式的內存列表和基於分布式文件系統的大表(Big Table)組成,對於需要檢驗是否去重等隨機讀寫多、時延低的數據,會全內存存儲,其他數據則是使用內存列表存儲,並定期合併到分布式文件系統的Big Table上。
[0075]可選的,實時寬表服務中保存的寬表適於各個計算節點實時計算時執行去重時採用。
[0076]步驟306,根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,各個計算節點實時地對所述處理數據執行不同的累加計算,獲得累加計算結果O
[0077]如圖4所示,本步驟包括以下子步驟401-410:
[0078]步驟401,根據一致性哈希(Hash)將所述處理數據分發至不同的計算節點。
[0079]可選的,將處理數據分發到不同的計算節點的過程中,處理數據採用內存交換的方式存儲,即處理數據不落地,從而可以對處理數據進行及時處理,並且不同的計算節點同時計算,從而提高處理速度。
[0080]步驟402,獲取半序結構(Lattice),所述Lattice包括所述固化維度組合以及所述最優固化維度組合的運算路徑。
[0081]可選的,Lattice為由View和上卷(Rollup)組成的半序結構,也可以理解為拓撲圖,其中,View之間有層級關係,細粒度View可以Rollup到粗粒度View,例如,用戶城市與用戶城市所屬的省的層級關係,用戶年齡與用戶年齡所屬的年齡段的層級關係等等。
[0082]步驟403,根據所述預設計算規則以及所述半序結構,確定待計算的頂層維度組合(TopView)列表。
[0083]可選的,TopView為只能從原始動作信息(Act1n)得到的View,例如,附圖2中View_AB以及View_AC為TopView。待計算的頂層維度組合(TopView)列表中包括所有的TopView維度組合構成的列表,其中,所有的TopView維度組合可以為最優固化維度組合的運算路徑中涉及到的固化維度組合。
[0084]可選的,將待計算的TopView列表發送給各個計算節點,各個計算節點根據接收到的待計算的TopView列表執行具體的計算。如下步驟404-步驟410:
[0085]步驟404,判斷指標類型,指標類型包括簡單累加和去重累加。
[0086]可選的,指標為Measure,為Act1n提供量化的描述,為可以累加的數據。累加計算包括求和函數(sum)、計數函數(count)、count [不同的(distinct)]、平均值函數(avg)等;例如付費金額、付費次數、付費人數、平均在線時長。
[0087]步驟405,當所述指標類型為所述簡單累加時,根據所述指標以及接收到的處理數據,從所述待計算的TopView列表中抽取相關列。
[0088]例如,北京某個男性用戶A在早上8:00用手機登錄QQ,同時在7:00用計算機登錄QQ,當指標為登錄次數時,當TopView為用戶城市、用戶性別以及登錄方式時,該TopView下的值需要加一,則在待計算的TopView列表中抽取用戶城市、用戶性別以及登錄方式對應的列。
[0089]步驟406,將所述相關列以及所述指標的值寫入維度組合(View)結果表,將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
[0090]可選的,計算節點將獲取的相關列寫入View結果表中,其中,View結果表保存在View存儲服務中,View存儲服務將新寫入的View結果表中的數據與當天View數據累加。
[0091]進一步可選的,將累加計算結果採用全內存或者內存列表的方式保存在View存儲服務中,可選的,View存儲服務為大列表存儲系統,由分布式的內存列表和基於分布式文件系統的大表(Big Table)組成,對於需要檢驗是否去重等隨機讀寫多、時延低的數據,會全內存存儲,其他數據則是使用內存列表存儲,並定期合併到分布式文件系統的Big Table上。
[0092]可選的,View存儲服務中內存緩存存儲結構如圖6所示,Key表示維度組合標識與維度組合值,第二列以後後續的列表示各種指標以及對應的指標值,將所述View結果表中的數據與當天View數據累加時,可以首先確定維度組合以及指標對應的列,然後再對應的列中指標值上執行加一操作。
[0093]每次累加請求只需操作內存的緩存表,緩存表每過一定時間間隔,會合併成順序的數據文件,並合併到分布式文件資料庫的大表上,從而減少了大量隨機寫和讀對分布式資料庫的壓力。
[0094]需要說明的是,新的處理數據到來之前,首先更新本計算節點的內存View值,等緩存時間到時才寫入View存儲服務,從而極大的降低了 View的更新壓力。
[0095]步驟407,當所述指標類型為所述去重累加時,根據所述待計算的TopView列表以及接收到的處理數據,確定不重複的主鍵(Key)列表;
[0096]可選的,將待計算的TopView列表換算為流水列號列表,如圖5所示的流水列號列表,其中,流水列號列表中的Key表示流水標識和流水主鍵,其餘為表示流水數據的列,即表示某一個屬性對應的數據。根據接收到的處理數據,轉換為TopView的值列表1,根據TopView的值列表的Key,獲取該用戶之前的流水信息,將獲取的該用戶之前的流水信息組合TopView的值列表2,比較值列表I和值列表2,篩選出值列表I中不存在與值列表2中的TopView。篩選出的TopView構成的列表即為本步驟中不重複的Key列表。
[0097]步驟408,比較所述Key列表以及保存的由所述處理數據對應的寬表,當所述寬表中不存在所述Key列表中的第一列時,將所述第一列插入所述寬表中,所述第一列表示所述Key列表中的任一列。
[0098]可選的,第一列為所述Key列表中的任一列,這裡「第一」並不是為了排序,而是為了描述方便。
[0099]步驟409,根據插入所述寬表中的列構成的新Key列表,確定TopView的新相關列。
[0100]步驟410,將所述新相關列以及所述指標的值寫入View結果表,將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
[0101]進一步可選的,將累加計算結果採用全內存或者內存列表的方式保存在View存儲服務中。
[0102]獲得累加計算結果後繼續執行後續的步驟。
[0103]步驟307,定期將保存的由所述處理數據對應的所述寬表以及所述累加計算結果合併到分布式資料庫中。
[0104]可選的,定期將實時寬表服務中的寬表和View存儲服務中的累加計算結果合併到分布式資料庫中,採用分布式文件系統的大表(Big Table)存儲,即採用支持列存儲的方式存儲計算結果,分布式資料庫為數據分別存儲在計算機網絡中的不同臺計算機上的資料庫,存儲的數據量較大,並且可以提供高效訪問能力。需要說明的是,當採用支持列存儲的方式存儲計算結果時,對於沒有數據的列則不佔用存儲資源,即僅有數據的列佔用存儲資源,與現有技術中存儲數據相比,可以節省大量存儲資源,用來存儲有效數據。
[0105]步驟308,接收用戶發送的數據查詢請求,並根據用戶的數據查詢請求獲取對應的數據。
[0106]所述數據查詢請求用於請求查詢維度組合的相關數據,可以包括各維度值以及指標值,所述數據查詢請求包括所述維度組合的各個維度的屬性名稱。
[0107]如圖7所示,本步驟包括步驟701-步驟710:
[0108]步驟701,解析用戶發送的數據查詢請求,獲得待查詢指標、待查詢View以及待查詢時間點。
[0109]可選的,解析用戶發送的數據查詢請求,可以獲得待查詢指標,例如登錄人數,可以獲得待查詢View,例如用戶城市、用戶性別等,可以獲得待查詢時間點,例如,9:00、9:30、10:00、10:30、11:00、11:30、12:00這幾個時間點,即用戶的數據查詢請求為希望獲得一段時間內登陸人數的趨勢變化。
[0110]步驟702,根據所述待查詢指標以及所述待查詢View,查詢內存中是否保存有所述待查詢指標以及所述待查詢View對應的待查詢數據。
[0111]可選的,當根據用戶的數據查詢請求進行查詢時,首先在內存緩存中查詢是否存在待查詢數據,如果內存中保存有待查詢的數據則可以直接獲取,從而可以提高查詢速度,提聞用戶體驗。
[0112]步驟703,當所述內存中保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則直接讀取所述待查詢數據。
[0113]步驟704,當所述內存中未保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則根據Lattice判斷所述待查詢View類型,所述待查詢View類型包括TopView 和上卷(RollupView)。
[0114]可選的,Lattice中包括所有維度組合,從Lattice中可以查詢出待查詢View的類型。
[0115]步驟705,當所述待查詢View類型為所述TopView時,直接獲取所述待查詢View對應的數據,並將獲取的所述數據採用全內存或者內存列表的方式保存。
[0116]可選的,將獲取的數據採用全內存或者內存列表的方式匯聚到View存儲服務中,以方便後續用戶查詢。
[0117]步驟706,當所述待查詢View類型為所述RollupView時,判斷所述待查詢View是否為已經計算的View。
[0118]判斷所述待查詢View是否為已經計算過的View,即查看Lattice中是否包括待查詢View, Lattice中包括固化維度組合,即查看固化維度組合中是否包括待查詢View。
[0119]步驟707,當所述待查詢View為已經計算的View時,直接獲取所述待查詢View對應的數據。
[0120]步驟708,當所述待查詢View為未被計算的View時,查詢獲得計算所述待查詢View代價最小並且已經計算過的所述待查詢View的父View。
[0121]可選的,根據最優固化維度組合的運算路徑,查看與待查詢View計算代價最小並且已經計算過的父View,如果與待查詢View計算代價最小並且已經計算過的存在父View,則可以提高獲取待查詢View對應的待查詢數據的速度。
[0122]步驟709,根據所述待查詢View以及所述父View之間的遞推路徑,確定計算任務。
[0123]可選的,例如,待查詢View為A1B1,父View為A2B2,待查詢View以及父View之間的遞推路徑為A1B1-SA2B1-SA2B2,貝U計算任務可以為A2Br>A2B2與A1B1-SA2Biq
[0124]可選的,將不同的任務分配給不同的計算節點進行計算。
[0125]步驟710,根據所述計算任務,獲取所述各任務對應的數據。
[0126]根據所述計算任務,不同的計算節點獲取對應的數據。
[0127]步驟711,將所述各任務對應的數據執行上卷操作,獲得待查詢View對應的數據,並將所述待查詢View對應的數據採用全內存或者內存列表的方式保存。
[0128]根據各計算節點獲得的各任務對應的數據,分段獲取父View對應的數據,然後進行上卷,獲得待查詢View。
[0129]步驟712,當所述待查詢View為未被計算的View時,並且未查詢到計算過的所述待查詢View的父View時,則合併預設時間段內的至少一個用戶發送的數據查詢請求,並根據所述固化維度組合以及所述最優固化維度組合的運算路徑,批量啟動維度組合計算的計算任務,批量執行所述維度組合計算的計算任務,獲得計算結果,所述計算結果中包含所述待查詢View對應的數據。
[0130]可選的,當查詢沒有定位到固化View時,則觸發實時地按需計算,即根據所述固化維度組合以及所述最優固化維度組合的運算路徑,計算待查詢View。優選的,可以合併預設時間段內的至少一個用戶發送的數據查詢請求,將各個用戶的待查詢View進行合併,並批量計算,從而可以提高系統吞吐量。
[0131]本發明實施例提供一種多維度拆分的計算方法,通過根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,使得可以對海量數據進行實時多維度拆分計算,並降低計算複雜度。使得在不同業務場景例如新版本發布或者新活動推廣等場景下,可以快速執行多維度拆分計算,從而查找重要影響因素,做出決策。同時還可以根據計算結果實時對用戶分群,為實時廣告推薦系統提供決策數據。
[0132]本發明實施例提供一種多維度拆分的計算系統,如圖8所示,該系統包括:運算決策模塊801,預處理模塊802,維度組合實時計算服務模塊803。
[0133]運算決策模塊801,用於根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱;
[0134]所述運算決策模塊801,還用於根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;
[0135]預處理模塊802,用於接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;
[0136]維度組合實時計算服務模塊803,用於根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。
[0137]進一步可選的,所述運算決策模塊801根據預設的指標以及維度信息生成遞推拓撲時,用於:
[0138]根據當前待處理業務,確定並預配置待計算的指標以及維度信息,所述維度信息包括各維度屬性以及維度之間層級關係;
[0139]根據所述指標以及所述維度信息,生成遞推拓撲。
[0140]進一步可選的,所述預處理模塊802,用於:
[0141]根據預配置的所述數據上報點,接收所述數據上報點通過不同的數據通道上報的海量數據,所述數據通道用於對接收到的所述海量數據進行合併數據包處理或者傳輸失敗重傳處理或者壓縮處理。
[0142]進一步可選的,如圖9所示,所述系統,還包括:實時寬表服務模塊804 ;
[0143]實時寬表服務模塊804,用於將由寬表對應的所述處理數據採用全內存或者內存列表的方式保存。
[0144]進一步可選的,如圖9所示,所述維度組合實時計算服務模塊803,包括:分發單元8031,獲取單元8032,確定單元8033,計算節點8034 ;
[0145]分發單元8031,用於根據一致性哈希(Hash)將所述處理數據分發至不同的計算節點;
[0146]獲取單元8032,用於獲取半序結構(Lattice),所述Lattice包括所述固化維度組合以及所述最優固化維度組合的運算路徑;
[0147]確定單元8033,用於根據所述預設計算規則以及所述半序結構,確定待計算的頂層維度組合(TopView)列表;
[0148]計算節點8034,用於根據待計算的指標類型,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,所述指標類型包括簡單累加和去重累加。
[0149]進一步可選的,如圖9所示,所述計算節點8034,包括:
[0150]抽取子單元80341,用於當所述指標類型為所述簡單累加時,根據所述指標以及接收到的處理數據,從所述待計算的TopView列表中抽取相關列;
[0151]計算子單元80342,用於將所述相關列以及所述指標的值寫入維度組合(View)結果表;
[0152]所述系統還包括:View存儲服務模塊805,用於將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
[0153]進一步可選的,如圖9所示,所述計算節點8034,包括:
[0154]確定子單元80343,用於當所述指標類型為所述去重累加時,根據所述待計算的TopView列表以及接收到的處理數據,確定不重複的主鍵(Key)列表;
[0155]插入子單元80344,用於比較所述Key列表以及保存的由所述處理數據對應的寬表,當所述寬表中不存在所述Key列表中的第一列時,將所述第一列插入所述寬表中,所述第一列表不所述Key列表中的任一列;
[0156]所述確定子單元80343,還用於根據插入所述寬表中的列構成的新Key列表,確定TopView的新相關列;
[0157]計算子單元80345,用於將所述新相關列以及所述指標的值寫入View結果表;
[0158]所述系統還包括:View存儲服務模塊805,用於將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
[0159]進一步可選的,如圖9所示,所述系統,還包括:分布式資料庫806 ;
[0160]分布式資料庫806,用於定期接收以及合併由所述處理數據對應的所述寬表以及所述累加計算結果。
[0161]進一步可選的,如圖9所示,所述系統,還包括:查詢服務集群模塊807,所述查詢服務集群模塊807包括:
[0162]解析單元8071,用於解析用戶發送的數據查詢請求,獲得待查詢指標、待查詢View以及待查詢時間點;
[0163]查詢單元8072,用於根據所述待查詢指標以及所述待查詢View,查詢內存中是否保存有所述待查詢指標以及所述待查詢View對應的待查詢數據;
[0164]讀取單元8073,用於當所述內存中保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則直接讀取所述待查詢數據;
[0165]判斷單元8074,用於當所述內存中未保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則根據Lattice確定所述待查詢View類型,所述待查詢View 類型包括 TopView 和上卷(RollupView);
[0166]處理單元8075,用於根據所述待查詢View的不同類型,採用不同的方式獲取所述待查詢View對應的數據;
[0167]所述系統還包括:View存儲服務模塊805,用於保存所述數據。
[0168]進一步可選的,所述處理模塊8075,用於:
[0169]當所述待查詢View類型為所述TopView時,直接獲取所述待查詢View對應的數據;
[0170]所述View存儲服務模塊805,用於將獲取的所述數據採用全內存或者內存列表的方式保存。
[0171]進一步可選的,所述處理模塊8075,包括:
[0172]判斷單元,用於當所述待查詢View類型為所述RollupView時,判斷所述待查詢View是否為已經計算的View ;
[0173]獲取單元,用於當所述待查詢View為已經計算的View時,直接獲取所述待查詢View對應的數據;
[0174]獲取單元,用於當所述待查詢View為未被計算的View時,查詢獲得計算所述待查詢View代價最小並且已經計算過的所述待查詢View的父View ;確定單元,用於根據所述待查詢View以及所述父View之間的遞推路徑,確定計算任務;所述獲取單元,還用於根據所述計算任務,獲取所述各任務對應的數據;計算單元,用於將所述各任務對應的數據執行上卷操作,獲得待查詢View對應的數據;
[0175]所述View存儲服務模塊,用於將所述待查詢View對應的數據採用全內存或者內存列表的方式保存。
[0176]進一步可選的,所述處理模塊8075,還用於當所述待查詢View為未被計算的View時,並且未查詢到計算過的所述待查詢View的父View時,則合併預設時間段內的至少一個用戶發送的數據查詢請求,並根據所述固化維度組合以及所述最優固化維度組合的運算路徑,批量啟動維度組合計算的計算任務,批量執行所述維度組合計算的計算任務,獲得計算結果,所述計算結果中包含所述待查詢View對應的數據。
[0177]需要說明的是,附圖8或附圖9所示裝置中,其各個模塊的具體實施過程以及各個模塊之間的信息交互等內容,由於與本發明方法實施例基於同一發明構思,可以參見方法實施例,在此不一一贅述。
[0178]本發明實施例提供一種多維度拆分的計算系統,通過運算決策模塊,用於根據預設的指標以及維度信息生成遞推拓撲,以及根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑;預處理模塊,用於接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據;維度組合實時計算服務模塊,用於根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,使得可以對海量數據進行實時多維度拆分計算,降低計算複雜度。
[0179]需說明的是,以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
[0180]通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體的方式來實現,當然也可以通過專用硬體包括專用集成電路、專用CPU、專用存儲器、專用元器件等來實現,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在可讀取的存儲介質中,如計算機的軟盤,U盤、移動硬碟、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)>磁碟或者光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0181]本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置和系統實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。
[0182]以上所述,僅為本發明的【具體實施方式】,但本發明的保護範圍並不局限於此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應所述以權利要求的保護範圍為準。
【權利要求】
1.一種多維度拆分的計算方法,其特徵在於,包括: 根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱; 根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑; 接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據; 根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果。
2.根據權利要求1所述的方法,其特徵在於,所述根據預設的指標以及維度信息生成遞推拓撲,包括: 根據當前待處理業務,確定並預配置待計算的指標以及維度信息,所述維度信息包括各維度屬性以及維度之間層級關係; 根據所述指標以及所述維度信息,生成遞推拓撲。
3.根據權利要求1所述的方法,其特徵在於,所述接收數據上報點上報的海量數據,包括: 根據預配置的所述數據上報點,接收所述數據上報點通過不同的數據通道上報的海量數據,所述數據通道用於對接收到的所述海量數據進行合併數據包處理或者傳輸失敗重傳處理或者壓縮處理。
4.根據權利要求3所述的方法,其特徵在於,所述對所述海量數據進行預處理,獲得處理數據之後,還包括: 將由寬表對應的所述處理數據採用全內存或者內存列表的方式保存。
5.根據權利要求2所述的方法,其特徵在於,根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,包括: 根據一致性哈希(Hash)將所述處理數據分發至不同的計算節點; 獲取半序結構(Lattice),所述Lattice包括所述固化維度組合以及所述最優固化維度組合的運算路徑; 根據所述預設計算規則以及所述半序結構,確定待計算的頂層維度組合(TopView)列表; 各個計算節點根據待計算的指標類型,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,所述指標類型包括簡單累加和去重累加。
6.根據權利要求5所述的方法,其特徵在於,所述各個計算節點根據待計算的指標類型,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,包括: 當所述指標類型為所述簡單累加時,根據所述指標以及接收到的處理數據,從所述待計算的TopView列表中抽取相關列; 將所述相關列以及所述指標的值寫入維度組合(View)結果表,將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
7.根據權利要求5所述的方法,其特徵在於,所述各個計算節點根據待計算的指標類型,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,包括: 當所述指標類型為所述去重累加時,根據所述待計算的TopView列表以及接收到的處理數據,確定不重複的主鍵(Key)列表; 比較所述Key列表以及保存的由所述處理數據對應的寬表,當所述寬表中不存在所述Key列表中的第一列時,將所述第一列插入所述寬表中,所述第一列表不所述Key列表中的任一列; 根據插入所述寬表中的列構成的新Key列表,確定TopView的新相關列; 將所述新相關列以及所述指標的值寫入View結果表,將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
8.根據權利要求6或7所述的方法,其特徵在於,在所述獲得累加計算結果之後,還包括: 定期將保存的由所述處理數據對應的所述寬表以及所述累加計算結果合併到分布式資料庫中。
9.根據權利要求1所述的方法,其特徵在於,在所述根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果之後,還包括: 解析用戶發送的數據查詢請求,獲得待查詢指標、待查詢View以及待查詢時間點; 根據所述待查詢指標以及所述待查詢View,查詢內存中是否保存有所述待查詢指標以及所述待查詢View對應的待查詢數據; 當所述內存中保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則直接讀取所述待查詢數據; 當所述內存中未保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則根據Lattice確定所述待查詢View類型,所述待查詢View類型包括TopView和上卷(RollupView); 根據所述待查詢View的不同類型,採用不同的方式獲取所述待查詢View對應的數據,並保存所述數據。
10.根據權利要求9所述的方法,其特徵在於,所述根據所述待查詢View的不同類型,採用不同的方式獲取所述待查詢View對應的數據,並保存所述數據,包括: 當所述待查詢View類型為所述TopView時,直接獲取所述待查詢View對應的數據,並將獲取的所述數據採用全內存或者內存列表的方式保存。
11.根據權利要求9所述的方法,其特徵在於,所述根據所述待查詢View的不同類型,採用不同的方式獲取所述待查詢View對應的數據,並保存所述數據,包括: 當所述待查詢View類型為所述RollupView時,判斷所述待查詢View是否為已經計算的 View ; 當所述待查詢View為已經計算的View時,直接獲取所述待查詢View對應的數據; 當所述待查詢View為未被計算的View時,查詢獲得計算所述待查詢View代價最小並且已經計算過的所述待查詢View的父View ;根據所述待查詢View以及所述父View之間的遞推路徑,確定計算任務;根據所述計算任務,獲取所述各任務對應的數據;將所述各任務對應的數據執行上卷操作,獲得待查詢View對應的數據,並將所述待查詢View對應的數據採用全內存或者內存列表的方式保存。
12.根據權利要求11所述的方法,其特徵在於, 當所述待查詢View為未被計算的View時,並且未查詢到計算過的所述待查詢View的父View時,則合併預設時間段內的至少一個用戶發送的數據查詢請求,並根據所述固化維度組合以及所述最優固化維度組合的運算路徑,批量啟動維度組合計算的計算任務,批量執行所述維度組合計算的計算任務,獲得計算結果,所述計算結果中包含所述待查詢View對應的數據。
13.—種多維度拆分的計算系統,其特徵在於,包括: 運算決策模塊,用於根據預設的指標以及維度信息生成遞推拓撲,所述遞推拓撲包括維度組合以及各維度組合之間的遞推路徑,所述維度組合包括各維度的屬性名稱; 所述運算決策模塊,還用於根據預設固化策略,確定固化維度組合併確定構成最優固化維度組合的運算路徑; 預處理模塊,用於接收數據上報點上報的海量數據,並對所述海量數據進行預處理,獲得處理數據; 維度組合實時計算服務模塊,用於根據預設計算規則以及所述固化維度組合以及所述最優固化維度組合的運算路徑,實時地對所述處理數據執行不同的累加計算,獲得累加計晳奸裡
14.根據權利要求13所述的系統,其特徵在於,所述運算決策模塊,用於: 根據當前待處理業務,確定並預配置待計算的指標以及維度信息,所述維度信息包括各維度屬性以及維度之間層級關係; 根據所述指標以及所述維度信息,生成遞推拓撲。
15.根據權利要求13所述的系統,其特徵在於,所述預處理模塊,用於: 根據預配置的所述數據上報點,接收所述數據上報點通過不同的數據通道上報的海量數據,所述數據通道用於對接收到的所述海量數據進行合併數據包處理或者傳輸失敗重傳處理或者壓縮處理。
16.根據權利要求15所述的系統,其特徵在於,所述系統,還包括: 實時寬表服務模塊,用於將由寬表對應的所述處理數據採用全內存或者內存列表的方式保存。
17.根據權利要求14所述的系統,其特徵在於,所述維度組合實時計算服務模塊,包括: 分發單元,用於根據一致性哈希(Hash)將所述處理數據分發至不同的計算節點; 獲取單元,用於獲取半序結構(Lattice),所述Lattice包括所述固化維度組合以及所述最優固化維度組合的運算路徑; 確定單元,用於根據所述預設計算規則以及所述半序結構,確定待計算的頂層維度組合(TopView)列表; 計算節點,用於根據待計算的指標類型,實時地對所述處理數據執行不同的累加計算,獲得累加計算結果,所述指標類型包括簡單累加和去重累加。
18.根據權利要求17所述的系統,其特徵在於,所述計算節點,包括: 抽取子單元,用於當所述指標類型為所述簡單累加時,根據所述指標以及接收到的處理數據,從所述待計算的TopView列表中抽取相關列; 計算子單元,用於將所述相關列以及所述指標的值寫入維度組合(View)結果表; 所述系統還包括=View存儲服務模塊,用於將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
19.根據權利要求17所述的系統,其特徵在於,所述計算節點,包括: 確定子單元,用於當所述指標類型為所述去重累加時,根據所述待計算的TopView列表以及接收到的處理數據,確定不重複的主鍵(Key)列表; 插入子單元,用於比較所述Key列表以及保存的由所述處理數據對應的寬表,當所述寬表中不存在所述Key列表中的第一列時,將所述第一列插入所述寬表中,所述第一列表不所述Key列表中的任一列; 所述確定子單元,還用於根據插入所述寬表中的列構成的新Key列表,確定TopView的新相關列; 計算子單元,用於將所述新相關列以及所述指標的值寫入View結果表; 所述系統還包括=View存儲服務模塊,用於將所述View結果表中的數據與當天View數據累加,獲得累加計算結果,所述累加計算結果採用全內存或者內存列表的方式保存。
20.根據權利要求18或19所述的系統,其特徵在於,所述系統,還包括: 分布式資料庫,用於定期接收以及合併由所述處理數據對應的所述寬表以及所述累加計算結果。
21.根據權利要求13所述的系統,其特徵在於,所述系統,還包括:查詢服務集群模塊,所述查詢服務集群模塊包括: 解析模塊,用於解析用戶發送的數據查詢請求,獲得待查詢指標、待查詢View以及待查詢時間點; 查詢模塊,用於根據所述待查詢指標以及所述待查詢View,查詢內存中是否保存有所述待查詢指標以及所述待查詢View對應的待查詢數據; 讀取模塊,用於當所述內存中保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則直接讀取所述待查詢數據; 判斷模塊,用於當所述內存中未保存有所述待查詢指標以及所述待查詢View對應的所述待查詢數據時,則根據Lattice確定所述待查詢View類型,所述待查詢View類型包括TopView 和上卷(RollupView); 處理模塊,用於根據所述待查詢View的不同類型,採用不同的方式獲取所述待查詢View對應的數據; 所述系統還包括=View存儲服務模塊,用於保存所述數據。
22.根據權利要求21所述的系統,其特徵在於,所述處理模塊,用於: 當所述待查詢View類型為所述TopView時,直接獲取所述待查詢View對應的數據; 所述View存儲服務模塊,用於將獲取的所述數據採用全內存或者內存列表的方式保存。
23.根據權利要求21所述的系統,其特徵在於,所述處理模塊,包括: 判斷單元,用於當所述待查詢View類型為所述RollupView時,判斷所述待查詢View是否為已經計算的View ; 獲取單元,用於當所述待查詢View為已經計算的View時,直接獲取所述待查詢View對應的數據; 獲取單元,用於當所述待查詢View為未被計算的View時,查詢獲得計算所述待查詢View代價最小並且已經計算過的所述待查詢View的父View ;確定單元,用於根據所述待查詢View以及所述父View之間的遞推路徑,確定計算任務;所述獲取單元,還用於根據所述計算任務,獲取所述各任務對應的數據;計算單元,用於將所述各任務對應的數據執行上卷操作,獲得待查詢View對應的數據; 所述View存儲服務模塊,用於將所述待查詢View對應的數據採用全內存或者內存列表的方式保存。
24.根據權利要求23所述的系統,其特徵在於, 所述處理模塊,還用於當所述待查詢View為未被計算的View時,並且未查詢到計算過的所述待查詢View的父View時,則合併預設時間段內的至少一個用戶發送的數據查詢請求,並根據所述固化維度組合以及所述最優固化維度組合的運算路徑,批量啟動維度組合計算的計算任務,批量執行所述維度組合計算的計算任務,獲得計算結果,所述計算結果中包含所述待查詢View對應的數據。
【文檔編號】G06F17/30GK104424229SQ201310376344
【公開日】2015年3月18日 申請日期:2013年8月26日 優先權日:2013年8月26日
【發明者】李 浩, 武磊, 曾偉紀, 蔡馥晗 申請人:騰訊科技(深圳)有限公司