本發(fā)明涉及移動終端報表生成的方法,具體涉及運營商對于運營形成的數(shù)據(jù)進行按渠道號、分發(fā)地址、時間段進行查詢點擊量及用戶量的領域。
背景技術:
為了更好地了解客戶的喜好、市場的需求來規(guī)劃未來的發(fā)展計劃。移動運營商需要經(jīng)常對各種數(shù)據(jù)進行了解和統(tǒng)計。當前,在運營商對移動通訊運營形成的數(shù)據(jù)進行管理的主要是使用的是潤乾報表。潤乾報表是一個純JAVA的企業(yè)級報表工具,為企業(yè)級數(shù)據(jù)分析與商業(yè)智能提供了高性能、高效率的報表系統(tǒng)解決方案。當前運營統(tǒng)計數(shù)據(jù)逐漸變大,而潤乾報表是將用戶訪問信息通過JVM內(nèi)容裝載數(shù)據(jù),因為用戶訪問信息越來越龐大。并且當多個用戶訪問日志上的數(shù)據(jù)時,潤乾報表會根據(jù)查詢的內(nèi)容創(chuàng)建報表對象,而這些對象再利用JAVA內(nèi)存,儲存在存儲器中,存在存儲器的內(nèi)存占用越來越多;由于上述的原因就會造成訪問數(shù)據(jù)庫的速度越來越慢,內(nèi)存占用越來越大,甚至使系統(tǒng)崩潰。
因此,需要一種能夠快速地對運營管理形成的數(shù)據(jù)進行渠道號、分發(fā)地址、時間段進行查詢點擊量及用戶量的一體化報表。
技術實現(xiàn)要素:
1、所要解決的技術問題:
本發(fā)明提供一種生成運營平臺一體化報表的方法,該方法能夠讓運營商快速方便地進行查詢渠道號、分發(fā)地址、時間段的點擊量及用戶量的數(shù)據(jù)。
2、技術方案:
本方法提供了一種生成運營平臺一體化報表的方法,包括以下步驟:
步驟一:預處理階段,提前設置匯總表的模板;匯總表的模板內(nèi)容包括渠道號,分發(fā)地址,時間段以及用戶查詢上述內(nèi)容的移動用戶的點擊量和用戶量。匯總表的模板內(nèi)容的限定是為以后生成的日志表以及匯總表需要寫入的內(nèi)容提出模板。
步驟二:將現(xiàn)有的數(shù)據(jù)庫進行分庫,分為日志庫與業(yè)務庫;將用戶訪問數(shù)據(jù)和匯總數(shù)據(jù)寫入到日志庫中?,F(xiàn)行的方法是所有的數(shù)據(jù)都寫在一個數(shù)據(jù)總庫,當運營商對上述所述的點擊量和用戶量查詢是從一個大的數(shù)據(jù)庫的中,導致數(shù)據(jù)查詢的速度比較慢。
步驟三:生成匯總表階段,在日志庫中,以月為單位生成對應的數(shù)據(jù)表,數(shù)據(jù)表的內(nèi)容為該月數(shù)據(jù)內(nèi)容及匯總數(shù)據(jù),所述數(shù)據(jù)表應用匯總表的模板,形成對應單位月的匯總表,所述匯總表寫入日志庫。在本步驟中,將日志庫根據(jù)時間進行生成各個對應時間的小匯總表,方便在查詢的時候加快速度。
步驟四:當運營商查詢報表時,按用戶查詢條件生成報表,并存儲報表對象到緩存服務器中,下次運營商查詢同樣的內(nèi)容,直接從緩存服務器中讀出。 查詢過的內(nèi)容生成的匯總表不是存儲在主服務器,而是將它存儲在緩存中,大大降低了主服務器占內(nèi)存的現(xiàn)象,從而提高了整體數(shù)據(jù)的查詢的速度。
進一步地,所述步驟二運營商訪問數(shù)據(jù)和匯總數(shù)據(jù)包括對渠道號、分發(fā)地址、時間段進行查詢點擊量及用戶量。
上述步驟三中的匯總表包括整單位月的匯總表和本月的匯總表;整單位月的匯總表包括本月之前用戶訪問數(shù)據(jù)和匯總數(shù)據(jù)以月為單位生成對應的數(shù)據(jù)表;本月的匯總表包括從本月的1日開始到所在日的前一天的用戶訪問數(shù)據(jù)和匯總數(shù)據(jù)生成的數(shù)據(jù)表。
進一步地,一種生成運營平臺一體化報表的方法還包括定時裝置,所述定時裝置設置每日的預設時間點,當時間到達定時器預設的時間點時,寫入從本月1日開始到該時間點的所有訪問數(shù)據(jù)和匯總數(shù)據(jù)到該月的匯總表中,形成該月的新的匯總表。
一種生成運營平臺一體化報表的方法,還包括異常清除。匯總表生成后,出現(xiàn)日志錯誤,并進行手動重新生成匯總表,清除錯誤的日志。
3、有益效果:
1)、對日志庫進行分庫,對匯總表進行物理分表,使數(shù)據(jù)由大變小大大增加了查詢的數(shù)據(jù)的速度;
2)、對于一體化報表系統(tǒng)查詢的結(jié)果引進緩存機制,減少對數(shù)據(jù)庫操作,減少對內(nèi)存的占用;從用戶的反饋情況來看,之前用戶半小時出來數(shù)據(jù),現(xiàn)在只要4秒之內(nèi)出結(jié)果。在查詢功能上得到的質(zhì)的飛躍。
附圖說明
圖1形成一體化報表的流程;
圖2利用一體化報表分渠道分地址采集數(shù)據(jù)的流程;
圖3為一體化報表的查詢流程。
具體實施方式
如圖1所示,將現(xiàn)有的oralce數(shù)據(jù)庫分為兩個單獨的數(shù)據(jù)庫:日志庫和業(yè)務庫,其中日志庫采用單點備份的方式。日志庫的內(nèi)容包括渠道號、分發(fā)地址、時間段。當用戶點擊或查詢進入一個鏈接內(nèi)容時,日志庫同時保存該數(shù)據(jù)。當運營商想了解和統(tǒng)計某一項或者多項活動用戶的點擊量時,只需要對日志庫進行訪問形成匯總表。該匯總表同時保存在緩存服務器中,下次如果運營商再次查詢時就直接從緩存服務器中讀出,這就大大緩解了對主服務器的內(nèi)存的壓力。
本方法采用redis緩存服務器,該緩存服務器安裝在一個單獨的虛機服務器上,同時使用nginx反向代理,使雙應用服務器實現(xiàn)負載均衡 ,這樣可以實現(xiàn)更快的查詢,減少錯誤率。
本方法對于前期的數(shù)據(jù)可以提前生成,手段為數(shù)據(jù)庫的JOB、spring的定時器。前期的數(shù)據(jù)包括已經(jīng)過去的月份的數(shù)據(jù)和現(xiàn)在正在進行的月份的數(shù)據(jù)。已經(jīng)過去的月的數(shù)據(jù)直接以單位月為一時間段生成匯總表保存在日志庫中。現(xiàn)在正在進行的月份的匯總表生成是利用定時器在每日的預設時間點時生成從該月1日到該日的前一天數(shù)據(jù)形成該月的匯總表同時將上一天形成的匯總表覆蓋。比如今天是5月15日,在今天晚上的12點(預設的時間點),將從5月1日到五月15日的數(shù)據(jù)生成日志表即為本月的匯總表。
如圖2所示為一體化報表分渠道分地址采集數(shù)據(jù)的流程。運營商先登錄一體化報表的界面,選擇鏈接地址,其中鏈接地址可以為內(nèi)部鏈接地址,也可以為外部鏈接地址。點擊鏈接地址打開,選擇所要查詢的時間段,輸入所要查詢的自有頁面,進行打碼投放,
如圖3所示為一體化報表的查詢過程導出報表,運營商輸入所要查詢的內(nèi)容,生成所需查詢的內(nèi)容,并且同時將所查詢出的內(nèi)容進行入庫緩存。
雖然本發(fā)明已以較佳實施例公開如上,但它們并不是用來限定本發(fā)明的,任何熟習此技藝者,在不脫離本發(fā)明之精神和范圍內(nèi),自當可作各種變化或潤飾,因此本發(fā)明的保護范圍應當以本申請的權利要求保護范圍所界定的為準。