本發(fā)明涉及數據存儲
技術領域:
,特別涉及一種存儲數據的方法及裝置。
背景技術:
:隨著大數據時代來臨,信息系統需要處理的數據量越來越大,數據存儲系統需要存儲的數據量也越來越大,目前,針對很多應用場景,需要保證存儲的數據的唯一性。例如,針對話費統計的場景,在這種場景中,在對計費的話單進行匯總統計時,如果針對某一個用戶在同一時間段有兩個或者多個重復的話單時,就會存在話費統計不準確的缺陷,進而造成對該用戶重復計費。又例如,針對訂單統計的場景,在這種場景中,在對訂單進行匯總統計時,針對某一用戶在同一時間段有針對同一商品的兩個或者多個重復的訂單時,就會存在訂單統計不準確的缺陷,進而造成對該用戶重復扣款。目前,為了保證存儲的數據的唯一性,只從一個維度來查看待存儲的數據是否唯一,但是,在實際應用中,這種唯一性保證的準確度較低。例如,針對訂單統計這種應用場景,某用戶在網站訂購了某商品之后,針對該用戶在這個時間點訂購的這個商品,可能生成兩份訂單,但是這兩份訂單可能只是訂單號不同,其他內容是一樣的,這樣就會造成該用戶在同一時間點訂購了兩次商品的缺陷,這樣,如果用戶按照兩份訂單付款的話,會存在重復扣款的缺陷。綜上所述,目前的存儲數據的方法存在針對同一數據多次進行存儲的缺陷,即針對同一數據在存儲過程中會存在唯一性保證準確度較低的缺陷。技術實現要素:本發(fā)明實施例提供一種存儲數據的方法及裝置,用以解決現有技術中存在的針對同一數據進行多次存儲的缺陷。第一方面,提供一種存儲數據的方法,包括:接收存儲數據請求,根據所述存儲數據請求確定待存儲數據的至少兩個唯一性約束條件;確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,將所述待存儲的數據存儲至第一存儲節(jié)點,所述唯一性約束條件數據庫包括與所述待存儲的數據屬于同一數據類型的已存儲的所有數據中提取出的所有唯一性約束條件。結合第一方面,在第一種可能的實現方式中,確定待存儲數據的至少兩個唯一性約束條件,包括:確定所述待存儲數據所屬的數據類型,及所述數據類型所對應的唯一性約束參數;將所述待存儲數據針對所述唯一性約束參數的取值,作為所述待存儲數據的至少兩個唯一性約束條件。結合第一方面,或者第一方面的第一種可能的實現方式,在第二種可能的實現方式中,確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件之前,還包括:將所述唯一性約束條件數據庫中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到多個第一轉換值,每一個唯一性約束條件分別對應一個第一轉換值,任意兩個不同的唯一性約束條件所對應的第一轉換值不同;將所述至少兩個唯一性約束條件中的每一個唯一性約束條件均采用所述安全摘要轉換方式進行轉換,得到至少兩個第二轉換值,所述至少兩個唯一性約束條件分別對應一個第二轉換值,任意兩個不同的唯一性約束條件所對應的第二轉換值不同;確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中 的任意一唯一性約束條件相同的唯一性約束條件,包括:確定所述唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件分別對應的第二轉換值相同的第一轉換值。結合第一方面,或者第一方面的第一種至第二種可能的實現方式,在第三種可能的實現方式中,確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件之后,還包括:將所述至少兩個唯一性約束條件存儲至所述唯一性約束條件數據庫。結合第一方面,或者第一方面的第一種至第三種可能的實現方式,在第四種可能的實現方式中,所述唯一性約束條件數據庫為分布式存儲數據庫;將所述至少兩個唯一性約束條件存儲至所述唯一性約束條件數據庫,包括:針對所述至少兩個唯一性約束條件中的任意一唯一性約束條件,分別執(zhí)行:計算所述任意一唯一性約束條件的哈希值;將所述任意一唯一性約束條件存儲至編號為所述哈希值的第二存儲節(jié)點。結合第一方面的第四種可能的實現方式,在第五種可能的實現方式中,所述第二存儲節(jié)點與所述第一存儲節(jié)點為不同的存儲節(jié)點。結合第一方面,或者第一方面的第一種至第五種可能的實現方式,在第六種可能的實現方式中,將所述待存儲的數據存儲至第一存儲節(jié)點之后,還包括:接收刪除數據請求;根據所述刪除數據請求確定待刪除的數據所對應的全部唯一性約束條件;從所述第一存儲節(jié)點中將所述待刪除的數據刪除,及將與所述待刪除的數據所對應的全部唯一性約束條件從所述唯一性約束條件數據庫中刪除。結合第一方面,或者第一方面的第一種至第六種可能的實現方式,在第七種可能的實現方式中,所述方法還包括:確定唯一性約束條件數據庫中存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,禁止將所述待存儲的數據存儲至所述第一存儲節(jié)點。結合第一方面,或者第一方面的第一種至第七種可能的實現方式,在第八種可能的實現方式中,所述至少兩個唯一性約束條件中的任意一唯一性約束條件包括一個字段或者至少兩個字段的組合。第二方面,提供一種存儲數據的裝置,包括:接收單元,用于接收存儲數據請求;確定單元,用于根據所述存儲數據請求確定待存儲數據的至少兩個唯一性約束條件,并確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件;存儲單元,用于在所述確定單元確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,將所述待存儲的數據存儲至第一存儲節(jié)點,所述唯一性約束條件數據庫包括與所述待存儲的數據屬于同一數據類型的已存儲的所有數據中提取出的所有唯一性約束條件。結合第二方面,在第一種可能的實現方式中,所述確定單元確定待存儲數據的至少兩個唯一性約束條件時,具體為:確定所述待存儲數據所屬的數據類型,及所述數據類型所對應的唯一性約束參數;將所述待存儲數據針對所述唯一性約束參數的取值,作為所述待存儲數據的至少兩個唯一性約束條件。結合第二方面,或者第二方面的第一種可能的實現方式,在第二種可能的實現方式中,還包括轉換單元,所述轉換單元用于:將所述唯一性約束條件數據庫中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到多個第一轉換值,每一個唯一性約束條件分別對應 一個第一轉換值,任意兩個不同的唯一性約束條件所對應的第一轉換值不同;將所述至少兩個唯一性約束條件中的每一個唯一性約束條件均采用所述安全摘要轉換方式進行轉換,得到至少兩個第二轉換值,所述至少兩個唯一性約束條件分別對應一個第二轉換值,任意兩個不同的唯一性約束條件所對應的第二轉換值不同;所述確定單元確定唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,具體為:確定所述唯一性約束條件數據庫中不存在與所述至少兩個唯一性約束條件分別對應的第二轉換值相同的第一轉換值。結合第二方面,或者第二方面的第一種至第二種可能的實現方式,在第三種可能的實現方式中,所述存儲單元還用于,將所述至少兩個唯一性約束條件存儲至所述唯一性約束條件數據庫。結合第二方面,或者第二方面的第一種至第三種可能的實現方式,在第四種可能的實現方式中,所述唯一性約束條件數據庫為分布式存儲數據庫;所述存儲單元將所述至少兩個唯一性約束條件存儲至所述唯一性約束條件數據庫時,具體為:針對所述至少兩個唯一性約束條件中的任意一唯一性約束條件,分別執(zhí)行:計算所述任意一唯一性約束條件的哈希值;將所述任意一唯一性約束條件存儲至編號為所述哈希值的第二存儲節(jié)點。結合第二方面的第四種可能的實現方式,在第五種可能的實現方式中,所述第二存儲節(jié)點與所述第一存儲節(jié)點為不同的存儲節(jié)點。結合第二方面,或者第二方面的第一種至第五種可能的實現方式,在第六種可能的實現方式中,所述接收單元還用于,接收刪除數據請求;所述確定單元還用于,根據所述刪除數據請求確定待刪除的數據所對應的全部唯一性約束條件;還包括刪除單元,用于從所述第一存儲節(jié)點中將所述待刪除的數據刪除,及將與所述待刪除的數據所對應的全部唯一性約束條件從所述唯一性約束條件數據庫中刪除。結合第二方面,或者第二方面的第一種至第六種可能的實現方式,在第七種可能的實現方式中,所述確定單元還用于,確定唯一性約束條件數據庫中存在與所述至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,禁止將所述待存儲的數據存儲至所述第一存儲節(jié)點。結合第二方面,或者第二方面的第一種至第七種可能的實現方式,在第八種可能的實現方式中,所述至少兩個唯一性約束條件中的任意一唯一性約束條件包括一個字段或者至少兩個字段的組合。本發(fā)明實施例中,提出一種存儲數據的方法:接收存儲數據請求,根據存儲數據請求確定待存儲數據的至少兩個唯一性約束條件;確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,將待存儲的數據存儲至第一存儲節(jié)點,唯一性約束條件數據庫包括與待存儲的數據屬于同一數據類型的已存儲的所有數據中提取出的所有唯一性約束條件,在該方案中,確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,才將待存儲的數據存儲至第一存儲節(jié)點,也就是說,要滿足至少兩個唯一性約束條件在唯一性約束條件數據庫中均查找不到時,才將待存儲的數據進行存儲,因此,避免了同一數據重復存儲的缺陷。附圖說明圖1為本發(fā)明實施例中存儲數據的流程圖;圖2為本發(fā)明實施例中存儲數據的一種實施例;圖3為本發(fā)明實施例中存儲數據的另一種實施例;圖4為本發(fā)明實施例中存儲數據的裝置的一種結構示意圖;圖5為本發(fā)明實施例中存儲數據的裝置的另一種結構示意圖。具體實施方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。另外,本文中術語“系統”和“網絡”在本文中常被可互換使用。本文中術語“和/或”,僅僅是一種描述關聯對象的關聯關系,表示可以存在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字母“/”,一般表示前后關聯對象是一種“或”的關系。下面結合說明書附圖對本發(fā)明優(yōu)選的實施方式進行詳細說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面結合附圖對本發(fā)明優(yōu)選的實施方式進行詳細說明。參閱圖1所示,本發(fā)明實施例中,存儲數據的詳細流程如下:步驟100:接收存儲數據請求,根據存儲數據請求確定待存儲數據的至少兩個唯一性約束條件;步驟110:確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,將待存儲的數據存儲至第一存儲節(jié)點,唯一性約束條件數據庫包括從第一存儲節(jié)點中已存儲的所有數據中提取出的所有唯一性約束條件。本發(fā)明實施例中,確定待存儲數據的至少兩個唯一性約束條件的方式有多種,可選的,可以采用如下方式:確定待存儲數據所屬的數據類型,及數據類型所對應的唯一性約束參數;將待存儲數據針對唯一性約束條件的取值,作為待存儲數據的至少兩個唯一性約束條件。也就是說,待存儲數據的唯一性約束條件是跟數據類型相對應的,例如,針對通話記錄這一類數據類型,唯一性約束參數可以為電話號碼和時間段這兩個字段的組合,那么針對通話記錄A:電話號碼為158****1234,時間段為2015年6月1日上午9點至9點半,針對通話記錄B:電話號碼為138****1678,時間段為2015年6月1日上午10點至10點半,屬于同一類數據類型的不同的待存儲數據的唯一性約束參數是相同的,但是唯一性約束參數的具體取值是不同的。實際應用中,待存儲數據也可以是訂單記錄,針對訂單記錄這一類數據類型,唯一性約束參數可以為訂單號、購買商品的用戶名和購買商品的時間段這三個字段的組合,那么針對訂單記錄A:訂單號為GH123456,用戶名為:李**,時間段為2015年6月1日9點,針對訂單記錄B:訂單號為HF678910,時間段為2015年6月1日10點,屬于同一類數據類型的不同的待存儲數據的唯一性約束參數是相同的,但是唯一性約束參數的具體取值是不同的。上面是以通話記錄和訂單記錄為例進行說明,當然,實際應用中,待存儲數據也可以為其他類型的數據,在此不再進行一一詳述。上述講述的是存儲數據請求只是用于通知要將待存儲數據進行存儲,在這種情況下,確定待存儲數據的至少兩個唯一性約束條件時,可以采用如下方式:確定待存儲數據所屬的數據類型,及數據類型所對應的唯一性約束參數;將待存儲數據針對唯一性約束條件的取值,作為待存儲數據的至少兩個唯一性約束條件。當然,存儲數據請求中可以直接攜帶待存儲數據的數據類型和唯一性約束條件,如表1和表2所示,表1針對一個待存儲數據,表2為針對多個待存儲數據,多個待存儲數據屬于同一數據類型:表1存儲數據請求表2存儲數據請求本發(fā)明實施例中,確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件之前,要生成唯一性約束條件數據庫,唯一性約束條件數據庫可以根據已經存儲的數據的唯一性約束條件生成的。在應用中,唯一性約束條件所占用的存儲空間可能較大,本發(fā)明實施例中,為了減少唯一性約束條件所占用的存儲空間,提高存儲空間的利用率,可以將唯一性約束條件進行轉換,因此,本發(fā)明實施例中,確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束字段之前,還包括如下操作:將唯一性約束條件數據庫中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到多個第一轉換值,每一個唯一性約束條件分別對應一個第一轉換值,任意兩個不同的唯一性約束條件所對應的第一轉換值不同;將至少兩個唯一性約束條件中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到至少兩個第二轉換值,至少兩個唯一性約束條件分別對應一個第二轉換值,任意兩個不同的唯一性約束條件所對應的第二轉換值不同;此時,確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,可選的,可以采用如下方式:確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件分別對應的第二轉換值相同的第一轉換值。也就是說,比較的時候不是對唯一性約束條件進行比較,而是將唯一性約束條件轉換后的值進行比較。其中,可選的,安全摘要轉換方式可以為SHA-1轉換,也可以為SHA-256轉換,SHA-1轉換后為40位,SHA-256轉換后為64位。雖然安全摘要轉換方式有多種,但是,需要說明的是,將唯一性約束條件數據庫中的每一個唯一性約束條件轉換時所采用安全摘要轉換方式,和至少兩個唯一性約束條件轉換時所采用的安全摘要轉換方式是相同的。采用將唯一性約束條件轉換后的值進行比較的話,進一步的,為了提高比較結果的準確度,可以再將至少兩個唯一性約束條件與唯一性約束條件數據庫中的唯一性約束條件進行比較,即將未轉換之前的值進行比較。例如:唯一性約束條件1和唯一性約束條件2,唯一性約束條件1采用SHA-1轉換后得到第二轉換值1,唯一性約束條件2采用SHA-1轉換后得到第二轉換值2,唯一性約束條件數據庫中的唯一性約束條件也采用SHA-1轉換,得到第一轉換值,查找唯一性約束條件數據庫中的第一轉換值中是否存在于第二轉換值1相同的第一轉換值,查找唯一性約束條件數據庫中的第一轉換值中是否存在于第二轉換值2相同的第一轉換值,如果唯一性約束條件數據庫中的第一轉換值中不存在與第二轉換值1相同的第一轉換值,也不存在與第二轉換值2相同的第一轉換值的話,再查找未轉換的唯一性約束條件數據庫中的唯一性約束條件中是否存在與唯一性約束條件1相同的唯一性約束條件,及和唯一性約束條件2相同的唯一性約束條件,如果仍然不存在的話,將待存儲的數據進行存儲。本發(fā)明實施例中,確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件之后,為了使后續(xù)待存儲的數據在存儲時根據唯一性約束條件來判斷該待存儲的數據是否已經 存儲,因此,還包括如下操作:將至少兩個唯一性約束條件存儲至唯一性約束條件數據庫。這樣,再次接收到與已經存儲的數據相同的數據時,可以通過唯一性約束條件避免再次將該數據進行存儲。例如:訂單記錄1對應的唯一性約束條件為唯一性約束條件1和唯一性約束條件2,根據步驟200和步驟210,將訂單記錄1存儲之后,還要存儲唯一性約束條件1和唯一性約束條件2,這樣再次接收到要存儲訂單記錄1的存儲數據請求時,唯一性約束條件數據庫中已經存在唯一性約束條件1和唯一性約束條件2了,這樣就禁止將訂單記錄1再次進行存儲。本發(fā)明實施例中,如果唯一性約束條件數據庫為分布式存儲數據庫的時候,將至少兩個唯一性約束條件存儲至唯一性約束條件數據庫時,可選的,可以采用如下方式:針對至少兩個唯一性約束條件中的任意一唯一性約束條件,分別執(zhí)行:計算任意一唯一性約束條件的哈希值;將任意一唯一性約束條件存儲至編號為哈希值的第二存儲節(jié)點。例如,有兩個唯一性約束條件:唯一性約束條件1和唯一性約束條件2,將唯一性約束條件1計算得出的哈希值為哈希值1,將唯一性約束條件2計算得出的哈希值為哈希值2,則將唯一性約束條件1存儲至編號為1的存儲節(jié)點,將唯一性約束條件2存儲至編號為2的存儲節(jié)點。由于唯一性約束條件的存儲和數據的存儲對存儲節(jié)點的存儲空間是不同的,為了擴容方便,本發(fā)明實施例中,可選的,第二存儲節(jié)點和第一存儲節(jié)點為不同的存儲節(jié)點,也就是說,存儲唯一性約束條件的存儲節(jié)點和存儲數據的存儲節(jié)點是不同的存儲節(jié)點。本發(fā)明實施例中,進一步的,還可以返回針對存儲數據請求的響應消息,響應消息如表3、表4所示,表3針對一個待存儲數據,表4為針對多個待存儲數據,多個待存儲數據屬于同一數據類型:表3響應消息參數名稱取值說明字段類型Resultcode結果碼IntegerResultDesc描述結果碼StringOriginalField唯一性約束條件StringCreateTime待存儲數據的存儲時間String表4響應消息其中,Resultcode和ResultDesc是必須的字段,OriginalField和CreateTime是可選的字段,結果碼有兩個0、1,0表示確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件,1表示確定唯一性約束條件數據庫中存在與至少兩個唯一性約束條件中的至少一個唯一性約束條件相同的唯一性約束條件。上述講述的是存儲數據的過程,在應用中,有可能包括刪除數據的過程,因此,本發(fā)明實施例中,將待存儲的數據存儲至第一存儲節(jié)點之后,還包括如下操作:接收刪除數據請求;根據刪除數據請求確定待刪除的數據所對應的全部唯一性約束條件;從第一存儲節(jié)點中將待刪除的數據刪除,及將與待刪除的數據所對應的全部唯一性約束條件從唯一性約束條件數據庫中刪除。刪除數據請求中也可以攜帶表1或者表2中所示的參數,針對刪除數據請求的響應消息也可以攜帶表3或者表4所示的參數,在此不再進行詳述。上述講述的是將待存儲的數據存儲的過程,但是,在應用中,確定唯一性約束條件數據庫中可能存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件,此時,禁止將待存儲的數據存儲至第一存儲節(jié) 點。本發(fā)明實施例中,可選的,至少兩個唯一性約束條件中的任意一唯一性約束條件包括一個字段或者至少兩個字段的組合。例如:訂單號可以作為一個唯一性約束性條件,用戶名、訂購時間及訂購商品也可以作為一個唯一性約束條件。為了更好地理解本發(fā)明實施例,以下給出具體應用場景,針對存儲數據的過程,作出進一步詳細描述,如圖2所示:步驟200:接收存儲數據請求,存儲數據請求中攜帶待存儲數據的數據類型、字段1、字段2、字段3和字段4;步驟210:根據數據類型確定與該數據類型對應的唯一性約束參數;步驟220:確定字段1和字段2為針對唯一性約束參數的取值,將字段1作為唯一性約束條件1,字段2作為唯一性約束條件2;步驟230:確定字段1和字段2是否均不存在于唯一性約束條件數據庫中,若是,執(zhí)行步驟240,否則,執(zhí)行步驟270;步驟240:將待存儲的數據存儲至第一存儲節(jié)點;步驟250:計算字段1的哈希值為哈希值1,字段2的哈希值為哈希值2;步驟260:將字段1存儲至編號為1的第二存儲節(jié)點中,將字段2存儲至編號為2的第二存儲節(jié)點中;步驟270:禁止將待存儲的數據存儲只第一存儲節(jié)點。為了更好地理解本發(fā)明實施例,以下給出具體應用場景,針對刪除數據的過程,作出進一步詳細描述,如圖3所示:步驟300:接收刪除數據請求,刪除數據請求中攜帶待刪除數據的數據類型、字段1、字段2、字段3和字段4;步驟310:根據數據類型確定與該數據類型對應的唯一性約束參數;步驟320:確定字段1和字段2為針對唯一性約束參數的取值,將字段1作為唯一性約束條件1,字段2作為唯一性約束條件2;步驟330:從第一存儲節(jié)點中刪除待刪除的數據;步驟340:計算字段1的哈希值為哈希值1,字段2的哈希值為哈希值2;步驟350:將字段1從編號為1的第二存儲節(jié)點中刪除,將字段2從編號為2的第二存儲節(jié)點中刪除?;谏鲜黾夹g方案,參閱圖4所示,提出一種存儲數據的裝置,該裝置包括接收單元40、確定單元41及存儲單元42,其中:接收單元40,用于接收存儲數據請求;確定單元41,用于根據存儲數據請求確定待存儲數據的至少兩個唯一性約束條件,并確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件;存儲單元42,用于在確定單元41確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,將待存儲的數據存儲至第一存儲節(jié)點,唯一性約束條件數據庫包括與待存儲的數據屬于同一數據類型的已存儲的所有數據中提取出的所有唯一性約束條件。本發(fā)明實施例中,可選的,確定單元41確定待存儲數據的至少兩個唯一性約束條件時,具體為:確定待存儲數據所屬的數據類型,及數據類型所對應的唯一性約束參數;將待存儲數據針對唯一性約束參數的取值,作為待存儲數據的至少兩個唯一性約束條件。本發(fā)明實施例中,進一步的,還包括轉換單元43,轉換單元43用于:將唯一性約束條件數據庫中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到多個第一轉換值,每一個唯一性約束條件分別對應一個第一轉換值,任意兩個不同的唯一性約束條件所對應的第一轉換值不同;將至少兩個唯一性約束條件中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到至少兩個第二轉換值,至少兩個唯一性約束條件分別 對應一個第二轉換值,任意兩個不同的唯一性約束條件所對應的第二轉換值不同;確定單元41確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,具體為:確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件分別對應的第二轉換值相同的第一轉換值。進一步的,存儲單元42還用于,將至少兩個唯一性約束條件存儲至唯一性約束條件數據庫??蛇x的,唯一性約束條件數據庫為分布式存儲數據庫;存儲單元42將至少兩個唯一性約束條件存儲至唯一性約束條件數據庫時,具體為:針對至少兩個唯一性約束條件中的任意一唯一性約束條件,分別執(zhí)行:計算任意一唯一性約束條件的哈希值;將任意一唯一性約束條件存儲至編號為哈希值的第二存儲節(jié)點。可選的,,第二存儲節(jié)點與第一存儲節(jié)點為不同的存儲節(jié)點。進一步的,接收單元40還用于,接收刪除數據請求;確定單元41還用于,根據刪除數據請求確定待刪除的數據所對應的全部唯一性約束條件;還包括刪除單元44,用于從第一存儲節(jié)點中將待刪除的數據刪除,及將與待刪除的數據所對應的全部唯一性約束條件從唯一性約束條件數據庫中刪除。進一步的,確定單元41還用于,確定唯一性約束條件數據庫中存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,禁止將待存儲的數據存儲至第一存儲節(jié)點??蛇x的,至少兩個唯一性約束條件中的任意一唯一性約束條件包括一個字段或者至少兩個字段的組合。如圖5所示,為本發(fā)明實施例提供的存儲數據的裝置的實體裝置圖,存儲 數據的裝置包括至少一個處理器501,通信總線502,存儲器503以及至少一個通信接口504。其中,通信總線502用于實現上述組件之間的連接并通信,通信接口504用于與外部設備連接并通信。其中,存儲器503用于存儲需要執(zhí)行的程序代碼,處理器501可以通過通信總線502調用存儲器503中存儲的程序代碼,當處理器501調用存儲器503中存儲的程序代碼時,將執(zhí)行如下操作:接收存儲數據請求,根據存儲數據請求確定待存儲數據的至少兩個唯一性約束條件;確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,將待存儲的數據存儲至第一存儲節(jié)點,唯一性約束條件數據庫包括與待存儲的數據屬于同一數據類型的已存儲的所有數據中提取出的所有唯一性約束條件。可選的,處理器501確定待存儲數據的至少兩個唯一性約束條件時,具體為:確定待存儲數據所屬的數據類型,及數據類型所對應的唯一性約束參數;將待存儲數據針對唯一性約束參數的取值,作為待存儲數據的至少兩個唯一性約束條件。進一步的,處理器501確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件之前,還包括如下操作:將唯一性約束條件數據庫中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到多個第一轉換值,每一個唯一性約束條件分別對應一個第一轉換值,任意兩個不同的唯一性約束條件所對應的第一轉換值不同;將至少兩個唯一性約束條件中的每一個唯一性約束條件均采用安全摘要轉換方式進行轉換,得到至少兩個第二轉換值,至少兩個唯一性約束條件分別 對應一個第二轉換值,任意兩個不同的唯一性約束條件所對應的第二轉換值不同;處理器501確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件時,可選的,可以采用如下操作:確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件分別對應的第二轉換值相同的第一轉換值。進一步的,處理器501確定唯一性約束條件數據庫中不存在與至少兩個唯一性約束條件中的任意一唯一性約束條件相同的唯一性約束條件之后,還包括如下操作:將至少兩個唯一性約束條件存儲至唯一性約束條件數據庫??蛇x的,唯一性約束條件數據庫為分布式存儲數據庫;可選的,處理器501將至少兩個唯一性約束條件存儲至唯一性約束條件數據庫時,具體為:針對至少兩個唯一性約束條件中的任意一唯一性約束條件,分別執(zhí)行:計算任意一唯一性約束條件的哈希值;將任意一唯一性約束條件存儲至編號為哈希值的第二存儲節(jié)點??蛇x的,第二存儲節(jié)點與第一存儲節(jié)點為不同的存儲節(jié)點。進一步的,處理器501將待存儲的數據存儲至第一存儲節(jié)點之后,還包括如下操作:接收刪除數據請求;根據刪除數據請求確定待刪除的數據所對應的全部唯一性約束條件;從第一存儲節(jié)點中將待刪除的數據刪除,及將與待刪除的數據所對應的全部唯一性約束條件從唯一性約束條件數據庫中刪除。進一步的,處理器501還執(zhí)行如下操作:確定唯一性約束條件數據庫中存在與至少兩個唯一性約束條件中的任意 一唯一性約束條件相同的唯一性約束條件時,禁止將待存儲的數據存儲至第一存儲節(jié)點??蛇x的,至少兩個唯一性約束條件中的任意一唯一性約束條件包括一個字段或者至少兩個字段的組合。本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中的功能。這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領域的技術人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。當前第1頁1 2 3