數(shù)據(jù)訪問處理方法和裝置的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)庫
技術(shù)領(lǐng)域:
,特別是涉及一種數(shù)據(jù)訪問處理方法和裝置?!?br>背景技術(shù):
】[0002]隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)量越來越大,大數(shù)據(jù)的存儲(chǔ)與查詢成為了一個(gè)需要解決的難題。云技術(shù)作為大數(shù)據(jù)的處理技術(shù),被越來越多的應(yīng)用在眾多信息領(lǐng)域中。例如,在云平臺插座項(xiàng)目中,家庭中的電器定時(shí)上報(bào)的耗電量數(shù)據(jù)至服務(wù)器,用戶可以設(shè)置查詢條件獲取家庭中各用電設(shè)備的耗電情況。由于電量數(shù)據(jù)存儲(chǔ)與電量數(shù)據(jù)查詢的并發(fā)量大。處理大量數(shù)據(jù)最直接的方法是將數(shù)據(jù)直接存入相應(yīng)的數(shù)據(jù)庫,這種方法對服務(wù)器性能要求高。[0003]傳統(tǒng)的數(shù)據(jù)訪問處理方法,當(dāng)服務(wù)器面臨高并發(fā)的數(shù)據(jù)訪問請求時(shí),會(huì)導(dǎo)致服務(wù)器無法及時(shí)處理數(shù)據(jù)訪問請求,容易造成處理阻塞,造成系統(tǒng)的不穩(wěn)定?!?br/>發(fā)明內(nèi)容】[0004]基于此,有必要針對上述技術(shù)問題,提供一種不容易造成數(shù)據(jù)訪問處理阻塞的數(shù)據(jù)訪問處理方法和裝置。[0005]一種數(shù)據(jù)訪問處理方法,所述方法包括:[0006]接收數(shù)據(jù)訪問請求;[0007]若數(shù)據(jù)訪問請求為數(shù)據(jù)上報(bào)請求,根據(jù)數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間確定對應(yīng)的臨時(shí)數(shù)據(jù)表處理所述數(shù)據(jù)上報(bào)請求;[0008]判斷臨時(shí)數(shù)據(jù)表對應(yīng)的時(shí)間是否到期,若是,則將臨時(shí)數(shù)據(jù)表中的數(shù)據(jù)記錄迀移至歷史數(shù)據(jù)總表中;[0009]若數(shù)據(jù)訪問請求為數(shù)據(jù)查詢請求,所述查詢請求中攜帶查詢條件,根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求,并返回查詢結(jié)果。[0010]在其中一個(gè)實(shí)施例中,所述根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求的步驟包括:[0011]對所述數(shù)據(jù)查詢請求中攜帶的查詢條件進(jìn)行合法性校驗(yàn),若校驗(yàn)通過,則根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求,并返回查詢結(jié)果。[0012]在其中一個(gè)實(shí)施例中,所述若數(shù)據(jù)訪問請求為數(shù)據(jù)上報(bào)請求,根據(jù)數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間確定對應(yīng)的臨時(shí)數(shù)據(jù)表處理所述數(shù)據(jù)上報(bào)請求的步驟,包括:[0013]獲取數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間;[0014]根據(jù)預(yù)設(shè)的臨時(shí)數(shù)據(jù)表與時(shí)間的對應(yīng)關(guān)系,確定所述上報(bào)時(shí)間對應(yīng)的臨時(shí)數(shù)據(jù)表;[0015]將所述數(shù)據(jù)上報(bào)請求中攜帶的上報(bào)數(shù)據(jù)插入所述臨時(shí)數(shù)據(jù)表中。[0016]在其中一個(gè)實(shí)施例中,所述臨時(shí)數(shù)據(jù)表包括:單月單天表、單月雙天表、雙月單天表以及雙月雙天表。[0017]在其中一個(gè)實(shí)施例中,所述方法還包括:[0018]接收數(shù)據(jù)總量查詢請求;[0019]根據(jù)所述數(shù)據(jù)總量查詢請求異步查詢系統(tǒng)表中的數(shù)據(jù)總量,并返回查詢結(jié)果,所述系統(tǒng)表中記錄了各臨時(shí)數(shù)據(jù)表對應(yīng)的數(shù)據(jù)總量以及各子數(shù)據(jù)表對應(yīng)的數(shù)據(jù)總量。[0020]一種數(shù)據(jù)訪問處理裝置,所述裝置包括:[0021]訪問請求接收模塊,用于接收數(shù)據(jù)訪問請求;[0022]第一處理模塊,用于若數(shù)據(jù)訪問請求為數(shù)據(jù)上報(bào)請求,根據(jù)數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間確定對應(yīng)的臨時(shí)數(shù)據(jù)表處理所述數(shù)據(jù)上報(bào)請求;[0023]數(shù)據(jù)備份模塊,用于判斷臨時(shí)數(shù)據(jù)表對應(yīng)的時(shí)間是否到期,若是,則將臨時(shí)數(shù)據(jù)表中的數(shù)據(jù)記錄迀移至歷史數(shù)據(jù)總表中;[0024]第二處理模塊,用于若數(shù)據(jù)訪問請求為數(shù)據(jù)查詢請求,所述查詢請求中攜帶查詢條件,根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求,并返回查詢結(jié)果。[0025]在其中一個(gè)實(shí)施例中,所述第二處理模塊還用于對所述數(shù)據(jù)查詢請求中攜帶的查詢條件進(jìn)行合法性校驗(yàn),若校驗(yàn)通過,根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求,并返回查詢結(jié)果。[0026]在其中一個(gè)實(shí)施例中,所述第一處理模塊包括:[0027]時(shí)間獲取模塊,用于獲取數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間;[0028]數(shù)據(jù)表確定模塊,用于根據(jù)預(yù)設(shè)的臨時(shí)數(shù)據(jù)表與時(shí)間的對應(yīng)關(guān)系,確定所述上報(bào)時(shí)間對應(yīng)的臨時(shí)數(shù)據(jù)表;[0029]數(shù)據(jù)插入模塊,用于將所述數(shù)據(jù)上報(bào)請求中攜帶的上報(bào)數(shù)據(jù)插入所述臨時(shí)數(shù)據(jù)表中。[0030]在其中一個(gè)實(shí)施例中,所述臨時(shí)數(shù)據(jù)表包括:單月單天表、單月雙天表、雙月單天表以及雙月雙天表。[0031]在其中一個(gè)實(shí)施例中,所述裝置還包括[0032]查詢請求接收模塊,用于接收數(shù)據(jù)總量查詢請求;[0033]數(shù)據(jù)總量查詢模塊,用于根據(jù)所述數(shù)據(jù)總量查詢請求異步查詢系統(tǒng)表中的數(shù)據(jù)總量,并返回查詢結(jié)果,所述系統(tǒng)表中記錄了各臨時(shí)數(shù)據(jù)表對應(yīng)的數(shù)據(jù)總量以及各子數(shù)據(jù)表對應(yīng)的數(shù)據(jù)總量。[0034]上述數(shù)據(jù)訪問處理方法和裝置,通過設(shè)置不同類型的數(shù)據(jù)表來處理數(shù)據(jù)訪問請求,面對數(shù)據(jù)上報(bào)請求時(shí),只由臨時(shí)數(shù)據(jù)表處理數(shù)據(jù)上報(bào)請求;面對數(shù)據(jù)查詢請求,由于臨時(shí)表和數(shù)據(jù)子表中數(shù)據(jù)記錄數(shù)量較少,因而能快速獲取到符合查詢條件的數(shù)據(jù)記錄,上述方法和裝置將處理數(shù)據(jù)上報(bào)請求的數(shù)據(jù)表區(qū)分開來,相比同一類型的數(shù)據(jù)表既處理數(shù)據(jù)查詢請求又處理數(shù)據(jù)上報(bào)請求,本發(fā)明提供的方法和裝置降低了數(shù)據(jù)表承受處理數(shù)據(jù)訪問請求的壓力,因而不容易造成處理阻塞,提高了系統(tǒng)的穩(wěn)定性?!靖綀D說明】[0035]圖1為一個(gè)實(shí)施例中數(shù)據(jù)訪問處理方法的流程示意圖;[0036]圖2為一個(gè)實(shí)施例中數(shù)據(jù)訪問處理裝置的結(jié)構(gòu)示意圖;[0037]圖3為一個(gè)實(shí)施例中第一處理模塊的結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】[0038]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0039]如圖1所示,在一個(gè)實(shí)施例中,提供了一種數(shù)據(jù)訪問處理方法,該方法包括如下步驟:[0040]步驟101,接收數(shù)據(jù)訪問請求。[0041]步驟102,若數(shù)據(jù)訪問請求為數(shù)據(jù)上報(bào)請求,根據(jù)數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間確定對應(yīng)的臨時(shí)數(shù)據(jù)表處理數(shù)據(jù)上報(bào)請求。[0042]若將數(shù)據(jù)查詢請求和數(shù)據(jù)上報(bào)請求都交由同一數(shù)據(jù)表來處理,在面臨高并發(fā)的數(shù)據(jù)訪問請求時(shí),容易導(dǎo)致處理數(shù)據(jù)訪問請求超時(shí),甚至造成服務(wù)器崩潰。本實(shí)施例中,創(chuàng)建了專門用于處理數(shù)據(jù)上報(bào)請求的多個(gè)臨時(shí)數(shù)據(jù)表,根據(jù)上報(bào)時(shí)間確定處理上報(bào)請求的臨時(shí)數(shù)據(jù)表。通過臨時(shí)數(shù)據(jù)表處理數(shù)據(jù)上報(bào)請求,提高了數(shù)據(jù)寫入的并發(fā)能力,不容易造成數(shù)據(jù)阻塞。[0043]在一個(gè)實(shí)施例中,步驟102,根據(jù)數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間確定對應(yīng)的臨時(shí)數(shù)據(jù)表處理數(shù)據(jù)上報(bào)請求包括:獲取數(shù)據(jù)上報(bào)請求對應(yīng)的上報(bào)時(shí)間;根據(jù)預(yù)設(shè)的臨時(shí)數(shù)據(jù)表與時(shí)間的對應(yīng)關(guān)系,確定上報(bào)時(shí)間對應(yīng)的臨時(shí)數(shù)據(jù)表;將數(shù)據(jù)上報(bào)請求中攜帶的上報(bào)數(shù)據(jù)插入臨時(shí)數(shù)據(jù)表中。[0044]本實(shí)施例中,多個(gè)臨時(shí)數(shù)據(jù)表中的每個(gè)臨時(shí)數(shù)據(jù)表都有對應(yīng)的時(shí)間。具體的,臨時(shí)數(shù)據(jù)表包含四個(gè):單月單天表、單月雙天表、雙月單天表以及雙月雙天表。例如,table_ll對應(yīng)的時(shí)間為單月單天、tble_12對應(yīng)的時(shí)間為單月雙天、table_21對應(yīng)的時(shí)間為雙月單天和table_22對應(yīng)的時(shí)間為雙月雙天。若獲取到的上報(bào)時(shí)間為I月I日屬于單月單天,通過臨時(shí)數(shù)據(jù)表為table_ll來處理數(shù)據(jù)上報(bào)請求,將上報(bào)數(shù)據(jù)插入table_ll中。[0045]步驟103,判斷臨時(shí)數(shù)據(jù)表對應(yīng)的時(shí)間是否到期。若是,則進(jìn)入步驟104。若否,則結(jié)束。[0046]步驟104,將臨時(shí)數(shù)據(jù)表中的數(shù)據(jù)記錄迀移至歷史數(shù)據(jù)總表中。[0047]每個(gè)臨時(shí)數(shù)據(jù)表用來處理數(shù)據(jù)訪問請求的時(shí)間是固定的,當(dāng)時(shí)間到期便將臨時(shí)數(shù)據(jù)表中的數(shù)據(jù)記錄備份至歷史數(shù)據(jù)總表中,備份完成后清空臨時(shí)數(shù)據(jù)表,等待下一次處理數(shù)據(jù)訪問請求的時(shí)間到來。通過歷史數(shù)據(jù)總表對臨時(shí)數(shù)據(jù)表的備份保證了數(shù)據(jù)不易丟失,方便對歷史數(shù)據(jù)記錄的查詢。[0048]例如,接收數(shù)據(jù)上報(bào)請求的時(shí)間為2月I日,則將table_ll(l月31日)中存儲(chǔ)的數(shù)據(jù)記錄全部備份到歷史數(shù)據(jù)總表中,并清空掉該數(shù)據(jù)表中的歷史記錄。2月I日接收到數(shù)據(jù)上報(bào)請求通過table_21處理。由多個(gè)臨時(shí)數(shù)據(jù)表循環(huán)切換處理數(shù)據(jù)上報(bào)請求,保證了臨時(shí)數(shù)據(jù)表中的數(shù)據(jù)記錄數(shù)量較少,提高通過臨時(shí)數(shù)據(jù)表查詢數(shù)據(jù)記錄的效率。[0049]步驟105,若數(shù)據(jù)訪問請求為數(shù)據(jù)查詢請求,查詢請求中攜帶查詢條件,根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理數(shù)據(jù)查詢請求,并返回查詢結(jié)果。[0050]由于歷史數(shù)據(jù)總表中存儲(chǔ)的數(shù)據(jù)記錄是海量的,直接在歷史數(shù)據(jù)總表中查詢數(shù)據(jù)速度太慢,若面臨高并發(fā)查詢請求容易引起阻塞,本實(shí)施例中,預(yù)先將查詢對象的歷史數(shù)據(jù)總表拆分為多個(gè)數(shù)據(jù)子表,具體的,以天、月或季度為時(shí)間單位將歷史數(shù)據(jù)總表拆分為多個(gè)天表、月表或季度表,減少了數(shù)據(jù)表中的數(shù)據(jù)記錄的數(shù)量,進(jìn)一步提高了查詢速度。根據(jù)查詢條件即可確定查詢對象,查詢對象可以是在臨時(shí)數(shù)據(jù)表中查詢最近的數(shù)據(jù)記錄,可以在數(shù)據(jù)子表中查詢歷史數(shù)據(jù)記錄,還可以是在臨時(shí)數(shù)據(jù)表和數(shù)據(jù)子表中組合查詢。[0051]上述數(shù)據(jù)訪問處理方法,通過設(shè)置不同類型的數(shù)據(jù)表來處理數(shù)據(jù)訪問請求,面對數(shù)據(jù)上報(bào)請求時(shí),只由臨時(shí)數(shù)據(jù)表處理數(shù)據(jù)上報(bào)請求;面對數(shù)據(jù)查詢請求,由于臨時(shí)表和數(shù)據(jù)子表中數(shù)據(jù)記錄數(shù)量較少,因而能快速獲取到符合查詢條件的數(shù)據(jù)記錄,上述方法和裝置將處理數(shù)據(jù)上報(bào)請求的數(shù)據(jù)表區(qū)分開來,相比同一類型的數(shù)據(jù)表既處理數(shù)據(jù)查詢請求又處理數(shù)據(jù)上報(bào)請求,本發(fā)明提供的方法和裝置降低了數(shù)據(jù)表承受處理數(shù)據(jù)訪問請求的壓力,因而不容易造成處理阻塞,提高了系統(tǒng)的穩(wěn)定性。[0052]在一個(gè)實(shí)施例中,通過可視化的查詢界面接收用戶輸入的查詢條件,獲取用戶點(diǎn)擊查詢按鈕觸發(fā)的數(shù)據(jù)查詢請求。服務(wù)器接收到查詢請求后,通過執(zhí)行查詢條件,將獲得查詢結(jié)果以分頁的形式顯示在查詢界面中。[0053]在一個(gè)實(shí)施例中,步驟105,根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求的步驟包括:對所述數(shù)據(jù)查詢請求中攜帶的查詢條件進(jìn)行合法性校驗(yàn),若校驗(yàn)通過,則根據(jù)查詢條件確定對應(yīng)的臨時(shí)數(shù)據(jù)表和/或歷史數(shù)據(jù)總表對應(yīng)的數(shù)據(jù)子表處理所述數(shù)據(jù)查詢請求,并返回查詢結(jié)果。[0054]本實(shí)施例中,由于數(shù)據(jù)庫中存當(dāng)前第1頁1 2