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