數據分析方法和裝置製造方法
2023-05-28 16:28:26 1
數據分析方法和裝置製造方法
【專利摘要】本發明公開了一種數據分析方法和裝置,所述方法包括:接收應用程式推送的數據;根據預設的統計目標,對所述數據採用流式計算獲得統計結果。所述裝置包括:數據接收模塊,用於接收應用程式推送的數據;統計模塊,用於根據預設的統計目標,對所述數據採用流式計算獲得統計結果。採用本發明技術方案,能夠快速、及時地獲得統計結果,滿足實時性要求比較高的在線網際網路應用。
【專利說明】數據分析方法和裝置
【技術領域】
[0001] 本發明涉及計算機【技術領域】,特別是涉及一種數據分析方法和裝置
【背景技術】
[0002]數據分析是指用適當的統計方法對大量數據進行分類、匯總,以求能夠最大化地 開發數據資料的功能。數據分析廣泛應用於計算機系統中,例如在遊戲運營領 過 戲數據進行數據分析,能夠掌握整個遊戲玩家的狀態信息,如登錄、在線!和流失情況等 從而根據玩家的狀態信息,能夠對遊戲的規劃和管理提供參考意見。 Μ 3 、'
[0003]現有的數據分析方法是先將需要分析的大量數據全部存儲到資料庫,然後再根據 統計需求對已存儲的數據採用統計方法獲得統計結果。因此現有的數據分析士能 獲得統計結果,不適用於提供在線服務的網際網路應用。
【發明內容】
[0004]基於此,有必要針對上述技術問題,提供一種數據分析方法和裝置,能夠快速及 時地獲得統計結果,滿足實時性要求比較高的在線網際網路應用。 '
[0005] -種數據分析方法,所述方法包括:
[0006] 接收應用程式推送的數據;
[0007]根據預設的統計目標,對所述數據採用流式計算獲得統計結果。
[0008] -種數據分析裝置,包括:
[0009]數據接收模塊,用於接收應用程式推送的數據;
[0010]統計模塊,用於根據預設的統計目標,對所述數據採用流式計算獲得統計結果。 上述數據分析方法和裝置,接收應用程式推送的數據,並根據預設的統計<目標°,對 =據米用流式計算獲得統計結果,相比與現有技術先存儲再統計的技術方案,由於採用流 ^計算來進行統計,能夠快速、及時地獲得統計結果,滿足實時性要求較高的在線網際網路應 用。
【專利附圖】
【附圖說明】 _2]目1為-個實施例中的數據分析方法的流程示意圖; _3]目2為另-個實施例中的數據分析方法的流程示意圖;
[0014]圖3為一個實施例中的數據分析方法的應用場景圖; ^015]目4為又-個實施例中的數據分析方法的流程示意圖; 〇〇16]圖5為-個實施例中的數據分析裝置的結構棚; 0017] 圖6為一個實施例中的數據分析裝置的結構框圖和應用場景圖; 0018] 圖7為另實施例中的數據分析裝置的結構框圖和應用場景圖;
[0019]圖8為-個實施例中的實時統計觀的結構框圖。
【具體實施方式】
[0020]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對 本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並 不用於限定本發明。
[0021] 參見圖1,在一個實施例中,提供了一種數據分析方法,本方法可以但不限於應用 於遊戲數據分析,也可以應用於其它計算機智能分析領域。本方法包括:
[0022] 步驟102,接收應用程式推送的數據。
[0023]本實施例中,所要分析的數據由應用程式推送。應用程式可以是遊戲運行相關程 序或其它軟體程序。為便於本方法進行數據分析處理,可以預先對應用程式推送的數據定 義好數據格式。接收應用程式推送的數據後,可以將數據進行緩存或存儲到資料庫中。
[0024] 步驟104,根據預設的統計目標,對數據採用流式計算獲得統計結果。
[0025] 本實施例中,提取已經緩存或存儲在資料庫中的數據,根據數據預先定義的數據 格式進行分析,按照預設的統計目標進行分類和匯總,採用流式計算方式以累加的形式得 到最終的統計結果。其中預設的統計目標,以遊戲數據分析舉例來說,可以包括日活躍用 戶、活躍用戶IP(IP,Internet Protocol,網絡協議)地區分布、活躍用戶遊戲等級分布等統 計目標。採用流式計算方式可以是接收應用程式推送的數據並同時進行累加統計的方式, 也可以預先將需要分析的數據分成多個部分,每次接收其中的一個部分並根據統計目標進 行統計得到一個中間結果,最後將中間結果進行累加得到統計結果。本實施例得到的最終 的統計結果,可以後續提供給其它分析軟體進行應用,也可以固化更新到資料庫中,以供查 詢或調用。
[0026]本實施例中,接收應用程式推送的數據,並根據預設的統計目標,對數據採用流式 計算獲得統計結果,相比與現有技術先存儲再統計的技術方案,由於採用流式計算來進行 統計,能夠快速、及時地獲得統計結果,滿足實時性要求較高的在線網際網路應用。
[0027] 參見圖2,在另一個實施例中,一種數據分析方法,其流程包括:
[0028]步驟202,實時接收應用程式推送的數據,並把數據緩存在Redis先進先出隊列 中。
[0029]實時接收應用程式推送的數據,其中的數據已預先定義了數據格式。例如在本實 施例中,以遊戲數據分析為例,數據的格式為JS0N數據格式(JSON,Java Script Object Notation,Java腳本目標格式,一種輕量級的數據交換格式),其包含的欄位如表1所示:
[0030] 表 1
[0031] lmode |整形 |遊戲數據類型,如登錄數據、註冊數據、流水數據等 ~H 數據所有者 ltime 整形 數據產生時間、時間戳 luip 字符串 數據所有者的IP位址 Idata數組 詳細遊戲數據內容,根據遊戲數據類型來定
[0032] 例如,以一條數據舉例說明,該數據為:
[0033] {"lm〇de":l,"uid":l,"ltime" :1368784546,"luip,,:"192. 168. 100. 146,,,"ldata ":{"level" :1〇,"money":3000,"uplogin" :1368764546, "login" :1368784546}}。 [0034] 則"lraode":l欄位表示該數據的遊戲數據類型為1,對應於登錄數據。"uid":l 欄位表示遊戲數據所有者的用戶ID (ID,Identity,身份標識)為1。"ltime" :1368784546 欄位表示該數據產生的時間戳為1368784546。"luip" : "192. 168. 100. 146"欄位代表數 據所有者的IP位址為192. 168. 100. 146。ldata欄位根據不同的遊戲數據類型有不同的 定義,例如在登錄數據類型中定義了登錄等級、登錄遊戲幣、上次登錄時間戳以及本次登錄 時間戳,因此本例中,"ldata": {"level":10, "money":3000, "uplogin": 1368764546, "log in" : 1368784546}欄位,代表了登錄等級為10級、登錄遊戲幣為3000、上次登錄時間戳為 136876454 6,以及本次登錄時間戳為1368784546。
[0035] 本實施例中,通過接口函數接收JS0N格式的數據,該接口函數的參數為JS0N數據 格式中的各欄位(如lmode欄位、uid欄位等),接收到各欄位後,再將各欄位組裝為JS0N數 據格式。
[0036] 接收到應用程式推送的數據後,將數據緩存在Redis先進先出隊列中。其中 Redis是一個高性能的key-value存儲系統,它支持的value類型相對更多,包括字符串 (string)、列表(list)、集合(set)、有序集合(zset)和哈希(hashs)。這些數據類型都支持 pUSh/p〇P、add/rem〇Ve及取交集併集和差集及更豐富的操作,並且這些操作都是原子性的。 Redis的數據都是緩存在內存中,效率很高。
[0037] 數據存儲到Redis先進先出隊列中,可以通過接口函數將數據提出,以供後續的 統計分析。
[0038] 步驟204,從Redis先進先出隊列中提取數據。
[0039]步驟2〇6,對提取的數據進行合法性驗證,判斷數據是否合法,若合法,執行步驟 208,否則丟棄該數據,返回步驟204,重新提取數據。
[0040]根據數據預先定義的數據格式對提取的數據進行合法性驗證。例如,應用本方 法進行遊戲數據分析時,數據採用表1的數據格式時,合法性驗證可以包括對lmode、uid、 ltime、luip、ldata欄位的數據類型進行驗證,例如判斷lm〇de欄位是不是整形,當遊戲數 據類型為登錄數據時,判斷ldata中的等級(level)是不是整形等。當提取的數據通過合 法性驗證,執行步驟208,否則丟棄該數據,重新提取數據,並記錄錯誤日誌。
[0041]步驟208,根據預設的統計目標,對數據進行去重。
[0042]在本實施中,如果數據合法,根據預設的統計目標判斷數據是否需要去重,若需要 去重,調用Redis接口進行去重。
[0043]以數據採用表1中的數據格式為例,例如統計目標包括遊戲的日活躍用戶量,而 該統計目標預先設置為需要進行去重,則根據數據的uid欄位和ltime欄位生成Redis的 key,調用SETNX (SETNX,Redis提供的應用程式接口,用於將key值設為value,在內存中 檢索key,當key不存在時返回值為true)判斷該數據是否存在過Redis緩存隊列中,若沒 有存在過則是有效的數據,需要進行相關統計目標的累加統計,否則對該數據不做統計。 [00 44]步驟210,調用Redis累加函數對預設的統計目標進行累加計數,得到統計結果。 [0045]本實施例中,根據數據的數據格式和預設的統計目標,對數據進行分類匯總,採用 Redis累加函數進行累加計數得到最終的統計結果。
[0046] 以數據採用表1的數據格式為例,預設的統計目標包括日活躍用戶量和日活躍IP 地區分布。設數據為:
[0047] {"1πκ^θ":1,"ι?(?":1,"1?;?π?Θ,,:1368784546,"1ι?ρ":"192. 168. 100. 146","ldata ":{ "level" : 10,"money" :3000, "uplogin" :1368764546, "login" :1368784546}}。
[0048] 則統計時,根據uid欄位、登錄時段(對應於該統計日的時間戳範圍)生成Redis的 緩存key,對提取的數據進行監控,調用Redis累加函數對日活躍用戶量進行累加計數;相 應的,根據luip欄位和登錄時段(對應於該統計日的時間戳範圍)生成Redis的緩存key, 對提取的數據進行監控,調用Redis累加函數對日活躍IP位址進行累加計數。
[0049] 本實施例得到的統計結果,可以緩存在Redis緩存中,以供後續提供給用戶端查 詢、或提供給應用程式應用或固化在資料庫中。
[0050] 步驟212,提取統計結果,並更新到統計結果資料庫中。
[0051] 在本實施中,定時調用接口函數,按照預設的統計目標依次提取出統計結果,並把 結果更新到統計結果資料庫中。
[0052]參見圖3,提供了一種數據分析方法的應用場景。由應用程式3〇2向隊列系統304 推送數據。應用程式3〇2推送的數據已預先定義好數據了格式,例如jS0N數據格式。隊列 系統304可以但不限於是採用包含HFO (FIFO, First Input and First Output,先進先 出)存儲晶片的硬體系統。隊列系統3〇4接收推送的數據並進行格式化,例如為 JS0N格式, 並添加到Redis隊列伺服器310的先進先出隊列中,並按照先進先出的次序將數據提出給 統計系統306。統計運算系統3〇 6可以但不限於是採用具有統計計算功能的晶片來實現,統 計運算系統306對提取的數據進行合法性驗證,再經過去重處理,按照預設的統計目標進 行累加得到統計結果,並把統計結果緩存在Redis緩存伺服器 312中。統計運算系統3〇6 還提供了查詢功能。存儲系統3〇8提取統計結果存入統計結果資料庫 314中,存儲系統3〇8 也提供了查詢功能。
[0053]參見圖4,在又一個實施例中,提供了一種數據分析方法,其流程包括:
[0054]步驟402,定時接收應用程式推送的數據,並把數據更新到推送數據資料庫中。 [0055]本實施例中,定時(例如可以設置為每隔一小時)接收應用程式推送的數據,把數 據存儲到推送數據資料庫中,該推送數據資料庫可以是分布式資料庫或關係型資料庫'。 [00 56]步驟404,每次推送數據資料庫更新後,根據預設的統計目標,調用推送數據數據 庫統計函數對存儲在推送數據資料庫中的數據進行統計,得到臨時統計結果並將每次得 到的臨時統計結果進行累加得到統計結果。 < '
[0057]數據存儲到推送數據資料庫之後,根據預設的統計目標,調用推送數據資料庫統 計函數丨如-COUNT函數(計數函數)、SUM函數(求和函數)等對當前存儲在推送數據資料庫中 的數據進行統計,得到臨時統計結果。之後,清除推送數據資料庫中的數據並再次接收應 矛王序推送的數據,進行統計,將每次得到的臨時統計結果進行累加得到最線的統計結果 [00 58]步驟406,將最終的統計結果保存至統計結果資料庫中 a < < 。
[0_在本實顧巾,敏推纖撤娜後,調馳___統計函數進行 射關,並機時射關進彳7勸_的最麵紐結果更新纖計
[0060] 參見圖5,在一個實施例中,提供了一種數據分析裝置,包括:
[0061] 數據接收模塊502,用於接收應用程式推送的數據。
[0062]統計模塊5〇4,用於根據預設的統計目標,對數據採用流式計算獲得統計結果。 [0063]參見圖6,在一個實施例中,一種數據分析裝置,其中,數據接收模塊502包括實時 接收模塊6〇 2,統計模塊5〇4包括實時統計模塊604。
[0064] 實時接收模塊6〇2,用於實時接收應用程式600推送的數據,並把數據緩存在 Redis先進先出隊列608中。
[0065] 參見圖8,在本實施例中,實時統計模塊6〇4包括:數據提取單元6042,用於從 Redis先進先出隊列608中提取數據。驗證單元6〇44,用於對提取的數據進行合法性驗 證。去重單元6046,用於根據預設的統計目標,對數據進行去重。累加單元6048,用於調 用Redis累加函數對預設的統計目標進行累加計數,得到統計結果,並把統計結果緩存在 Redis緩存610中。
[0066] 在本實施例中,該數據分析裝置還包括統計結果提取模塊506,統計結果提取模塊 506包括第一提取模塊606,用於提取實時統計模塊604進行統計得到的統計結果,並更新 到第一統計結果資料庫612中。
[0067]參見圖7,在一個實施例中,一種數據分析裝置,其中數據接收模塊502包括實時 接收模塊6〇2和定時接收模塊7〇2,統計模塊 5〇4包括實時統計模塊604和定時統計模塊 704。統計結果提取模塊5〇6包括第一提取模塊606和第二提取模塊706。
[0068]實時接收模塊6〇2,用於實時接收應用程式700推送的數據,並把數據緩存在 Redis先進先出隊列608中。
[0069]參見圖8,在本實施例中,實時統計模塊604包括:數據提取單元6042,用於從 Redis先進先出隊列608中提取數據。驗證單元6044,用於對提取的數據進行合法性驗 證。去重單元6046,用於根據預設的統計目標,對數據進行去重。累加單元 6〇48,用於調 用Redis累加函數對預設的統計目標進行累加計數,得到統計結果,並把統計結果緩存在 Redis緩存610中。
[0070]第一提取模塊6〇6,用於提取實時統計模塊6〇4進行統計得到的統計結果,並更新 到第一統計結果資料庫612中。
[0071]本實施中,定時接收模塊7〇2,用於定時接收應用程式700推送的數據,並把數據 更新到推送數據資料庫708中。
[0072]定時統計模塊704,用於每次推送數據資料庫708更新後,根據預設的統計目標, 調用推送數據資料庫統計函數對存儲在推送數據資料庫708中的數據進行統計,得到臨時 統計結果,並將每次得到的臨時統計結果進行累加得到統計結果。
[0073]第二提取模塊7〇6,用於提取定時統計模塊704進行統計得到的臨時統計結果和 最終的統計結果,並更新到第二統計結果資料庫712中。
[0074]以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並 不能因此而理^為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員 來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保 護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
【權利要求】
1. 一種數據分析方法,所述方法包括: 接收應用程式推送的數據; 根據預設的統計目標,對所述數據採用流式計算獲得統計結果。
2. 根據權利要求1所述的方法,其特徵在於,所述接收應用程式推送的數據包括: 實時接收應用程式推送的數據,並把所述數據緩存在Redis先進先出隊列中; 所述根據預設的統計目標,對所述數據採用流式計算獲得統計結果包括: 從所述Redis先進先出隊列中提取數據,並對所述數據進行合法性驗證,若未通過驗 證,則重新提取數據,若通過驗證,則調用Redis累加函數對預設的統計目標進行累加計 數,得到所述統計結果。
3. 根據權利要求2所述的方法,其特徵在於,在所述調用Redis累加函數對預設的統計 目標進行累加計數前,還包括: 根據預設的統計目標,對所述數據進行去重。
4. 根據權利要求1至3任一項所述的方法,其特徵在於,所述接收應用程式推送的數據 還包括: 定時接收應用程式推送的數據,並把所述數據更新到推送數據資料庫中; 所述根據預設的統計目標,對所述數據採用流式計算獲得統計結果還包括: 每次所述推送數據資料庫更新後,根據預設的統計目標,調用推送數據資料庫統計函 數對存儲在推送數據資料庫中的數據進行統計,得到臨時統計結果,並將每次得到的臨時 統計結果進行累加得到所述統計結果。
5. 根據權利要求1所述的方法,其特徵在於,在所述根據預設的統計目標,對所述數據 採用流式計算獲得統計結果的步驟之後,還包括: 提取所述統計結果,並更新到統計結果資料庫中。
6. -種數據分析裝置,其特徵在於,包括: 數據接收模塊,用於接收應用程式推送的數據; 統計模塊,用於根據預設的統計目標,對所述數據採用流式計算獲得統計結果。
7. 根據權利要求6所述的裝置,其特徵在於,所述數據接收模塊包括實時接收模塊,用 於實時接收應用程式推送的數據,並把所述數據緩存在Redis先進先出隊列中; 所述統計模塊包括實時統計模塊,所述實時統計模塊包括數據提取單元,用於從所述 Redis先進先出隊列中提取數據;驗證單元,用於對所述數據進行合法性驗證;累加單元, 用於調用Redis累加函數對預設的統計目標進行累加計數,得到所述統計結果。
8. 根據權利要求8所述的裝置,其特徵在於,所述實時統計模塊還包括去重單元,用於 根據預設的統計目標,對所述數據進行去重。
9. 根據權利要求6至8任一項所述的裝置,其特徵在於,所述數據接收模塊進一步包括 定時接收模塊,用於定時接收應用程式推送的數據,並把所述數據更新到推送數據資料庫 中; 所述統計模塊進一步包括定時統計模塊,用於每次所述推送數據資料庫更新後,根據 預設的統計目標,調用資料庫統計函數對存儲在推送數據資料庫中的數據進行統計,得到 臨時統計結果,並將每次得到的臨時統計結果進行累加得到所述統計結果。
10. 根據權利要求6所述的裝置,其特徵在於,所述裝置還包括統計結果提取模塊,用 於提取所述統計結果,並更新到統計結果資料庫中。
【文檔編號】G06F17/30GK104252458SQ201310256819
【公開日】2014年12月31日 申請日期:2013年6月25日 優先權日:2013年6月25日
【發明者】張奎 申請人:博雅網路遊戲開發(深圳)有限公司