競彩統(tǒng)計數(shù)據(jù)的提取方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種競彩統(tǒng)計數(shù)據(jù)的提取方法。
【背景技術(shù)】
[0002] 對于競彩數(shù)據(jù)來說,其統(tǒng)計的項目較多,而且由于其參與競彩者眾多,因此其數(shù)據(jù) 量很大。
[0003] 競彩統(tǒng)計數(shù)據(jù)包括維度項和數(shù)據(jù)項。維度項用來表示數(shù)據(jù)的歸類,其中,業(yè)務日 期、終端ID、游戲種類等屬于維度項。數(shù)據(jù)項即對應的統(tǒng)計的數(shù)據(jù),其中,銷售票數(shù)、銷售金 額、取消票數(shù)、取消金額、中獎票數(shù)、中獎金額、兌獎票數(shù)、兌獎金額、棄獎票數(shù)、棄獎金額等 屬于數(shù)據(jù)項。
[0004] 僅針對體育競彩系統(tǒng)來說,總共多于4萬臺終端,每臺終端上可執(zhí)行15種競彩游 戲,每日有約60萬行統(tǒng)計數(shù)據(jù)出現(xiàn),這些龐大的數(shù)據(jù)均需要匯總至服務器進行存儲,以便 于數(shù)據(jù)的統(tǒng)計和提取。
[0005]目前的競彩統(tǒng)計數(shù)據(jù)存儲時,按照每日統(tǒng)計數(shù)據(jù)進行依次存儲,形成日度統(tǒng)計數(shù) 據(jù)(day_saleS)表,日度統(tǒng)計數(shù)據(jù)即按天發(fā)生的各種業(yè)務數(shù)據(jù)的合計,并將這些數(shù)據(jù)以日 期進行順序排列。當需提取一段時間連續(xù)的數(shù)據(jù)時,是采用依次提取全部日期范圍內(nèi)的每 日統(tǒng)計數(shù)據(jù)后進行匯總的方式進行提取。匯總后的數(shù)據(jù)在提取時,需對所需的數(shù)據(jù)逐條讀 取,由于以日為單位統(tǒng)計的文件數(shù)量很多,讀取很慢,導致提取計算較慢。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本發(fā)明的主要目的在于提供一種時間連續(xù)的競彩統(tǒng)計數(shù)據(jù)的提取方 法,以縮短讀取時間。
[0007] 本發(fā)明提供的競彩統(tǒng)計數(shù)據(jù)的提取方法,競彩數(shù)據(jù)的每日統(tǒng)計數(shù)據(jù)存儲在日度數(shù) 據(jù)表中,包括:
[0008] 建立一旬度數(shù)據(jù)表存儲每旬統(tǒng)計數(shù)據(jù),建立一月度數(shù)據(jù)表存儲每月統(tǒng)計數(shù)據(jù);
[0009] 月度數(shù)據(jù)表中,對應每月起始位置,建立一指向旬度數(shù)據(jù)表中對應該月的第一旬 度數(shù)據(jù)表起始位置的指針;旬度數(shù)據(jù)表中,對應每旬的起始位置,建立一指向日度數(shù)據(jù)表中 對應該旬的日度數(shù)據(jù)表起始位置的指針;
[0010] 競彩統(tǒng)計數(shù)據(jù)提取步驟包括:
[0011] A、將所要提取的數(shù)據(jù)依次以月、旬、日拆分;
[0012] B、確定出所提取數(shù)據(jù)的起始日期所在的月度;
[0013] 判斷所在月度為非整月度數(shù)據(jù)時,則根據(jù)月度數(shù)據(jù)表中的指針指向該月的旬度數(shù) 據(jù)表;
[0014] 確定起始日期所在的旬度,判斷所在旬度為非整旬度數(shù)據(jù)時,則根據(jù)旬度數(shù)據(jù)表 中的該旬度的指針指向該旬的日度數(shù)據(jù)表中該旬的起始位置,并由所述起始位置開始檢索 到所要提取數(shù)據(jù)的日度的起始位置;
[0015] 由所述指針指向的所述旬度數(shù)據(jù)表的位置,依次讀取確定出的起始月當月中整旬 的旬度數(shù)據(jù),以及由所述指針指向的所述日度數(shù)據(jù)表中的所檢索到的起始位置,依次讀取 確定出的當旬中的日度數(shù)據(jù);
[0016] C、確定出所提取數(shù)據(jù)的終止日期所在的月度;
[0017] 依次從月度數(shù)據(jù)表中讀取起始月到終止月之間的整月的月度數(shù)據(jù);
[0018] D、判斷所提取數(shù)據(jù)的終止日期所在的月度為非整月度數(shù)據(jù)時,則根據(jù)月度數(shù)據(jù)表 中的指針指向該月的旬度數(shù)據(jù)表;
[0019] 確定終止日期所在的旬度,判斷所在旬度為非整旬度數(shù)據(jù),則根據(jù)旬度數(shù)據(jù)表中 的該旬度的指針指向該旬的日度數(shù)據(jù)表中該旬的起始位置,并由所述起始位置開始檢索到 所述終止日期位置;
[0020] 由所述指針跳指向的所述旬度數(shù)據(jù)表的位置,依次讀取確定出的終止月當月中整 旬的旬度數(shù)據(jù),以及由所述指針指向的所述日度數(shù)據(jù)表中的所檢索到的終止日期位置,依 次讀取出確定出的當旬中的日度數(shù)據(jù);
[0021] E、將所提取的所述整月的月度數(shù)據(jù)、整旬的旬度數(shù)據(jù)和所述日度數(shù)據(jù)進行統(tǒng)計。
[0022] 可選的,不同的數(shù)據(jù)表采用不同的分區(qū)進行存儲。
[0023] 由上,本發(fā)明提前計算好旬度統(tǒng)計數(shù)據(jù)、月度統(tǒng)計數(shù)據(jù)存儲,在計算日期段統(tǒng)計數(shù) 據(jù)時使用高聚合的月度、旬度統(tǒng)計數(shù)據(jù)組合后合計計算,使得數(shù)據(jù)讀取不用再按照日度數(shù) 據(jù)表依次讀取大量數(shù)據(jù),在保證數(shù)據(jù)準確的同時減少從磁盤讀取數(shù)據(jù),減少計算量,減少了 數(shù)據(jù)的讀取時間,從而提高競彩統(tǒng)計數(shù)據(jù)的查詢效率。
[0024] 并且,由于月度、旬度、日度數(shù)據(jù)表之間通過指針快速定位,使得在使用下一表時 不需進行全文檢索,而是直接通過指針定位到相應位置,進行少量檢索即可定位到正確的 旬度、日期上,這也大大減少了運算量,減少了數(shù)據(jù)的讀取時間,從而提高競彩統(tǒng)計數(shù)據(jù)的 查詢效率。
[0025] 并且,不同月度、旬度、日度表采用不同的分區(qū)進行存儲,這樣查詢時只會讀取涉 及時段的分區(qū),不會讀取其他分區(qū),提高查詢效率。
【附圖說明】
[0026] 圖1為日度數(shù)據(jù)表不意圖;
[0027] 圖2為旬度數(shù)據(jù)表示意圖;
[0028] 圖3為月度數(shù)據(jù)表示意圖;
[0029] 圖4為數(shù)據(jù)提取流程圖。
【具體實施方式】
[0030] 本發(fā)明在進行競彩數(shù)據(jù)存儲時,除了日度統(tǒng)計數(shù)據(jù)(day_saleS)表,參見圖1 所示,還建立了如圖2示出的旬度數(shù)據(jù)表(tenday_sales)和如圖3示出的月度數(shù)據(jù)表 (m 〇nth_sales),其中,旬度、月度統(tǒng)計數(shù)據(jù)即按旬度、月度發(fā)生的各種業(yè)務數(shù)據(jù)的合計。
[0031] 其中,旬度數(shù)據(jù)表是基于日度數(shù)據(jù)表計算而來,旬度數(shù)據(jù)表的維度與日度統(tǒng)計維 度表相同,統(tǒng)計數(shù)據(jù)為相同維度中旬度范圍內(nèi)每日數(shù)據(jù)的和。例如,已銷售為例下述列出了 2014年1月第三旬度數(shù)據(jù)計算公式:
[0033] 其中,月度數(shù)據(jù)表是基于日度或旬度數(shù)據(jù)表計算而來,月度數(shù)據(jù)表的維度與日度 數(shù)據(jù)表維度相同,統(tǒng)計數(shù)據(jù)為相同維度中日度或旬度范圍內(nèi)每日數(shù)據(jù)的和。例如,已銷售為 例下述列出了 2014年1月月度數(shù)據(jù)計算公式:
[0035] 不僅如此,在月度數(shù)據(jù)表中,對應每月起始位置,建立一指向旬度數(shù)據(jù)表中對應該 月的第一旬度數(shù)據(jù)表起始位置的指針,例如給出了對應的第一旬度數(shù)據(jù)表的起始行。在旬 度數(shù)據(jù)表中,對應每旬的起始位置,建立一指向日度數(shù)據(jù)表中對應該旬的日度數(shù)據(jù)表起始 位置的指針,例如給出了對應的日度數(shù)據(jù)表的起始行。通過指針,當通過月度數(shù)據(jù)表去訪問 旬度數(shù)據(jù)表,或通過旬度數(shù)據(jù)去訪問日度數(shù)據(jù)表時,以便于讀取時的快速定位,免去數(shù)據(jù)的 依次檢索和比較。
[0036] 對應上述的數(shù)據(jù)存儲方法,本發(fā)明相應的提供了一種數(shù)據(jù)的提取方法,以在給定 任意連續(xù)日期段時,能夠快速查詢并匯總出所述日期段的競彩統(tǒng)計數(shù)據(jù)。其基本原理是:通 過上述月度數(shù)據(jù)表、旬度數(shù)據(jù)表、日度數(shù)據(jù)表可以實現(xiàn)任意連續(xù)日期段提取數(shù)據(jù)時可以使 用日期段包括的整月度數(shù)據(jù)、整旬度數(shù)據(jù),再用部分日度數(shù)據(jù)補齊整個日期段