一種數(shù)據(jù)寫入方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)寫入方法和裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來越多的數(shù)據(jù)需要存儲在數(shù)據(jù)庫中,以方便用戶進行統(tǒng)計和分析。
[0003]相關(guān)技術(shù)中,用戶往往需要先將更新的數(shù)據(jù)寫入數(shù)據(jù)庫中,然后由數(shù)據(jù)庫根據(jù)存儲的所有數(shù)據(jù)進行統(tǒng)計分析,以生成用戶需要查詢的統(tǒng)計結(jié)果。在這個過程中,用戶寫入數(shù)據(jù)的速率將直接影響用戶的使用體驗。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種數(shù)據(jù)寫入方法和裝置。
[0005]具體地,本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
[0006]一種數(shù)據(jù)寫入方法,所述方法包括:
[0007]接收客戶端發(fā)送的數(shù)據(jù);
[0008]根據(jù)所述數(shù)據(jù)的屬性信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲所述數(shù)據(jù);
[0009]如果數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù),則將所述數(shù)據(jù)保存在緩存中;
[0010]向客戶端返回上傳成功的消息。
[0011]進一步地,在向客戶端返回上傳成功的消息后,還包括:
[0012]將保存在緩存中的所述數(shù)據(jù)寫入數(shù)據(jù)庫。
[0013]進一步地,所述數(shù)據(jù)的屬性信息是所述數(shù)據(jù)的時間段信息;
[0014]所述根據(jù)所述數(shù)據(jù)的屬性信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲所述數(shù)據(jù),包括:
[0015]如果所述數(shù)據(jù)庫日志的時間段和所述數(shù)據(jù)的時間段沒有交集,則確認(rèn)數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù);
[0016]如果所述數(shù)據(jù)庫日志的時間段包含所述數(shù)據(jù)的時間段,則確認(rèn)數(shù)據(jù)庫中存儲有所述數(shù)據(jù)。
[0017]進一步地,所述方法還包括:
[0018]如果所述數(shù)據(jù)庫日志的時間段與所述數(shù)據(jù)的時間段有交集,且交集不是所述數(shù)據(jù)的時間段,則將所述數(shù)據(jù)保存在緩存中。
[0019]進一步地,所述方法還包括:
[0020]接收客戶端發(fā)送的數(shù)據(jù)統(tǒng)計查詢指令;
[0021]根據(jù)所述數(shù)據(jù)統(tǒng)計查詢指令,從數(shù)據(jù)庫預(yù)設(shè)的中間表中獲取查詢結(jié)果,所述查詢結(jié)果是在將所述數(shù)據(jù)寫入數(shù)據(jù)庫后由數(shù)據(jù)庫統(tǒng)計生成;
[0022]將所述查詢結(jié)果返回客戶端。
[0023]一種數(shù)據(jù)寫入裝置,所述裝置包括:
[0024]數(shù)據(jù)接收單元,用于接收客戶端發(fā)送的數(shù)據(jù);
[0025]存儲判斷單元,用于根據(jù)所述數(shù)據(jù)的屬性信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲所述數(shù)據(jù);
[0026]數(shù)據(jù)保存單元,用于在數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù)時,將所述數(shù)據(jù)保存在緩存中;
[0027]成功返回單元,用于向客戶端返回上傳成功的消息。
[0028]進一步地,所述裝置還包括:
[0029]數(shù)據(jù)寫入單元,用于在向客戶端返回上傳成功的消息后,將保存在緩存中的所述數(shù)據(jù)寫入數(shù)據(jù)庫。
[0030]進一步地,所述數(shù)據(jù)的屬性信息是所述數(shù)據(jù)的時間段信息;
[0031]所述存儲判斷單元,具體在所述數(shù)據(jù)庫日志的時間段和所述數(shù)據(jù)的時間段沒有交集時,確認(rèn)數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù);
[0032]在所述數(shù)據(jù)庫日志的時間段包含所述數(shù)據(jù)的時間段時,確認(rèn)數(shù)據(jù)庫中存儲有所述數(shù)據(jù)。
[0033]進一步地,所述數(shù)據(jù)保存單元,進一步用于在所述數(shù)據(jù)庫日志的時間段與所述數(shù)據(jù)的時間段有交集,且交集不是所述數(shù)據(jù)的段時間段時,將所述數(shù)據(jù)保存在緩存中。
[0034]進一步地,所述裝置還包括:
[0035]查詢接收單元,用于接收客戶端發(fā)送的數(shù)據(jù)統(tǒng)計查詢指令;
[0036]結(jié)果獲取單元,用于根據(jù)所述數(shù)據(jù)統(tǒng)計查詢指令,從數(shù)據(jù)庫預(yù)設(shè)的中間表中獲取查詢結(jié)果,所述查詢結(jié)果是在將所述數(shù)據(jù)寫入數(shù)據(jù)庫后由數(shù)據(jù)庫統(tǒng)計生成;
[0037]結(jié)果返回單元,用于將所述查詢結(jié)果返回客戶端。
[0038]由以上描述可以看出,本發(fā)明服務(wù)端在接收到客戶端發(fā)送的數(shù)據(jù)時,可以根據(jù)數(shù)據(jù)的屬性信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲所述數(shù)據(jù),并在數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù)時,將所述數(shù)據(jù)保存在緩存中,然后向客戶端返回上傳成功的消息,進而提升用戶寫入數(shù)據(jù)的速率,同時提升用戶的操作體驗。
【附圖說明】
[0039]圖1是本發(fā)明一示例性實施例示出的一種數(shù)據(jù)寫入方法的流程圖。
[0040]圖2是本發(fā)明一示例性實施例示出的一種數(shù)據(jù)統(tǒng)計查詢的方法流程圖。
[0041]圖3是本發(fā)明一示例性實施例示出的一種服務(wù)端的結(jié)構(gòu)示意圖。
[0042]圖4是本發(fā)明一示例性實施例示出的一種數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0043]這里將詳細(xì)地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0044]在本發(fā)明使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
[0045]應(yīng)當(dāng)理解,盡管在本發(fā)明可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
[0046]針對上述問題,本發(fā)明提供一種數(shù)據(jù)寫入方案,可能有效提高用戶寫入數(shù)據(jù)的速率,進而提升用戶的使用體驗。
[0047]圖1是本發(fā)明一示例性實施例示出的一種數(shù)據(jù)寫入方法的流程圖。
[0048]請參考圖1,本發(fā)明提供一種數(shù)據(jù)寫入方法,所述方法可以應(yīng)用在服務(wù)端上,比如:Web服務(wù)器等,所述數(shù)據(jù)寫入方法可以包括以下步驟:
[0049]步驟101,接收客戶端發(fā)送的數(shù)據(jù)。
[0050]在本實施例中,用戶可以通過終端中裝載的客戶端上傳數(shù)據(jù)。服務(wù)端接收客戶端發(fā)送的用戶上傳的所述數(shù)據(jù)。
[0051]步驟102,根據(jù)所述數(shù)據(jù)的屬性信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲所述數(shù)據(jù)。如果數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù),則執(zhí)行步驟103。
[0052]在本實施例中,服務(wù)端在接收到所述數(shù)據(jù)以后,獲取所述數(shù)據(jù)的屬性信息,然后根據(jù)所述屬性信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲有所述數(shù)據(jù),所述數(shù)據(jù)的屬性信息為所述數(shù)據(jù)的時間段信息。
[0053]具體地,客戶端發(fā)送的所述數(shù)據(jù)通常包括有多條子數(shù)據(jù),其中,每條子數(shù)據(jù)都具有自身的時間信息。在本實施例中,所述數(shù)據(jù)的時間段信息為所述數(shù)據(jù)中所有子數(shù)據(jù)的時間信息中最早的時間與最晚的時間所組成的時間段。舉例來說,假設(shè)所述數(shù)據(jù)為客戶的通話詳單,所述數(shù)據(jù)包括的子數(shù)據(jù)為所述通話詳單中的通話記錄。對于所述通話詳單中的每一條通話記錄而言,都對應(yīng)有一個通話時間,則在本實施例中,所述數(shù)據(jù)的屬性信息為客戶通話詳單的時間段。如果所述通話詳單中最早的一條通話記錄的通話時間為2014年3月I日,最晚一條通話記錄的通話時間為2014年4月I日,則該客戶的通話詳單的時間段為2014年3月I日至2014年4月I日,即所述數(shù)據(jù)的時間段信息為2014年3月I日至2014年4月I日。
[0054]在本步驟中,服務(wù)端根據(jù)所述數(shù)據(jù)的時間段信息查詢數(shù)據(jù)庫日志,以判斷數(shù)據(jù)庫中是否已存儲有所述數(shù)據(jù)。具體地,對于數(shù)據(jù)庫而言,終端或者服務(wù)端對數(shù)據(jù)庫的寫入操作都會記錄在數(shù)據(jù)庫日志中,因此,在本發(fā)明中,服務(wù)端可以通過判斷所述數(shù)據(jù)庫日志的時間段和所述數(shù)據(jù)的時間段是否存在交集以判斷數(shù)據(jù)庫中是否已存儲有所述數(shù)據(jù),所述數(shù)據(jù)庫日志的時間段為對數(shù)據(jù)庫進行寫入時所寫入的數(shù)據(jù)的時間段。仍以所述數(shù)據(jù)為通話詳單為例,假設(shè)某一條數(shù)據(jù)庫日志的時間段為2014年I月I日至2014年2月I日,則該數(shù)據(jù)庫日志表明數(shù)據(jù)庫中已存儲有時間段信息為2014年I月I日至2014年2月I日的通話詳單。
[0055]在實際應(yīng)用中,一個客戶的數(shù)據(jù)庫日志可能會有多條,服務(wù)端可以將該客戶的各條數(shù)據(jù)庫日志的時間段進行匯總后判斷所述時間段和所述數(shù)據(jù)的時間段是否存在交集,月艮務(wù)端也可以針對各條數(shù)據(jù)庫日志的時間段分別判斷所述時間段和所述數(shù)據(jù)的時間段是否存在交集,然后對判斷結(jié)果進行匯總,本發(fā)明對此不作特殊限制。
[0056]較為簡單的,以服務(wù)端將各條數(shù)據(jù)庫日志的時間段進行匯總后再判斷為例,所述判斷結(jié)果可以包括以下三種情況:
[0057]情況一:所述數(shù)據(jù)庫日志的時間段和所述數(shù)據(jù)的時間段沒有交集,則可以確認(rèn)數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù)。仍假設(shè),所述數(shù)據(jù)的時間段為2014年3月I日至2014年4月I日,如果所述數(shù)據(jù)日志的時間段為2014年I月I日至2014年2月I日,則所述數(shù)據(jù)庫日志的時間段和所述數(shù)據(jù)的時間段沒有交集,確認(rèn)數(shù)據(jù)庫中沒有存儲所述數(shù)據(jù),執(zhí)行步驟103。
[0058]情況二:所述數(shù)據(jù)庫日志的時間段包含所述數(shù)據(jù)的時間段,則可以確認(rèn)數(shù)據(jù)庫中存儲有所述數(shù)據(jù)。仍假設(shè),所述數(shù)據(jù)的時間段為2014年3月I日至2014年4月I日,如果所述數(shù)據(jù)日志的時間段為2014年I月I日至2014年5月I日,則所述數(shù)據(jù)庫日志的時間段包含所述數(shù)據(jù)的時間段,確認(rèn)數(shù)據(jù)庫中存儲有所述數(shù)據(jù),即數(shù)據(jù)庫中已經(jīng)存儲有用戶要寫入的數(shù)據(jù),服務(wù)端可以依據(jù)相關(guān)技術(shù)中的處理方式向客戶端返回處理結(jié)果,比如:服務(wù)端可以向客戶端返回數(shù)據(jù)已上傳完畢的消息等,本發(fā)明對此不作特殊限制。
[0059]情況三:所述數(shù)據(jù)庫日志的時間段與所述數(shù)據(jù)的時間段有交集,且交集不是所述數(shù)據(jù)的時間段,則可以確認(rèn)數(shù)據(jù)庫中存儲有部分所述數(shù)據(jù)。仍假設(shè),所述數(shù)據(jù)的時間段為2014年3月I日至2014年4月I日,如果所述數(shù)據(jù)日志的時間段為2014年I月I日至2014年3月15日,則所述數(shù)據(jù)庫日志的時間段與所述數(shù)據(jù)的時間段有交集,交集為:2014年3月I日至2014年3月15日,該交集不是所述數(shù)據(jù)的時間段,可以確認(rèn)數(shù)據(jù)庫中存儲有該客戶2014年3月I日至2014年3月15日的