CN106326285B - 一种存储数据的方法及装置 - Google Patents

一种存储数据的方法及装置 Download PDF

Info

Publication number
CN106326285B
CN106326285B CN201510374953.9A CN201510374953A CN106326285B CN 106326285 B CN106326285 B CN 106326285B CN 201510374953 A CN201510374953 A CN 201510374953A CN 106326285 B CN106326285 B CN 106326285B
Authority
CN
China
Prior art keywords
unique constraints
constraints condition
data
unique
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510374953.9A
Other languages
English (en)
Other versions
CN106326285A (zh
Inventor
李世华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510374953.9A priority Critical patent/CN106326285B/zh
Publication of CN106326285A publication Critical patent/CN106326285A/zh
Application granted granted Critical
Publication of CN106326285B publication Critical patent/CN106326285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储数据的方法及装置:接收存储数据请求,根据存储数据请求确定待存储数据的至少两个唯一性约束条件;确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将待存储的数据存储至第一存储节点,唯一性约束条件数据库包括与待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件,在该方案中,要满足至少两个唯一性约束条件在唯一性约束条件数据库中均查找不到时,才将待存储的数据进行存储,因此,避免了同一数据重复存储的缺陷。

Description

一种存储数据的方法及装置
技术领域
本发明涉及数据存储技术领域,特别涉及一种存储数据的方法及装置。
背景技术
随着大数据时代来临,信息系统需要处理的数据量越来越大,数据存储系统需要存储的数据量也越来越大,目前,针对很多应用场景,需要保证存储的数据的唯一性。
例如,针对话费统计的场景,在这种场景中,在对计费的话单进行汇总统计时,如果针对某一个用户在同一时间段有两个或者多个重复的话单时,就会存在话费统计不准确的缺陷,进而造成对该用户重复计费。又例如,针对订单统计的场景,在这种场景中,在对订单进行汇总统计时,针对某一用户在同一时间段有针对同一商品的两个或者多个重复的订单时,就会存在订单统计不准确的缺陷,进而造成对该用户重复扣款。
目前,为了保证存储的数据的唯一性,只从一个维度来查看待存储的数据是否唯一,但是,在实际应用中,这种唯一性保证的准确度较低。例如,针对订单统计这种应用场景,某用户在网站订购了某商品之后,针对该用户在这个时间点订购的这个商品,可能生成两份订单,但是这两份订单可能只是订单号不同,其他内容是一样的,这样就会造成该用户在同一时间点订购了两次商品的缺陷,这样,如果用户按照两份订单付款的话,会存在重复扣款的缺陷。
综上所述,目前的存储数据的方法存在针对同一数据多次进行存储的缺陷,即针对同一数据在存储过程中会存在唯一性保证准确度较低的缺陷。
发明内容
本发明实施例提供一种存储数据的方法及装置,用以解决现有技术中存在的针对同一数据进行多次存储的缺陷。
第一方面,提供一种存储数据的方法,包括:
接收存储数据请求,根据所述存储数据请求确定待存储数据的至少两个唯一性约束条件;
确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将所述待存储的数据存储至第一存储节点,所述唯一性约束条件数据库包括与所述待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件。
结合第一方面,在第一种可能的实现方式中,确定待存储数据的至少两个唯一性约束条件,包括:
确定所述待存储数据所属的数据类型,及所述数据类型所对应的唯一性约束参数;
将所述待存储数据针对所述唯一性约束参数的取值,作为所述待存储数据的至少两个唯一性约束条件。
结合第一方面,或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之前,还包括:
将所述唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将所述至少两个唯一性约束条件中的每一个唯一性约束条件均采用所述安全摘要转换方式进行转换,得到至少两个第二转换值,所述至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件,包括:
确定所述唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
结合第一方面,或者第一方面的第一种至第二种可能的实现方式,在第三种可能的实现方式中,确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之后,还包括:
将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库。
结合第一方面,或者第一方面的第一种至第三种可能的实现方式,在第四种可能的实现方式中,所述唯一性约束条件数据库为分布式存储数据库;
将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库,包括:
针对所述至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算所述任意一唯一性约束条件的哈希值;
将所述任意一唯一性约束条件存储至编号为所述哈希值的第二存储节点。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第二存储节点与所述第一存储节点为不同的存储节点。
结合第一方面,或者第一方面的第一种至第五种可能的实现方式,在第六种可能的实现方式中,将所述待存储的数据存储至第一存储节点之后,还包括:
接收删除数据请求;
根据所述删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
从所述第一存储节点中将所述待删除的数据删除,及将与所述待删除的数据所对应的全部唯一性约束条件从所述唯一性约束条件数据库中删除。
结合第一方面,或者第一方面的第一种至第六种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:
确定唯一性约束条件数据库中存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,禁止将所述待存储的数据存储至所述第一存储节点。
结合第一方面,或者第一方面的第一种至第七种可能的实现方式,在第八种可能的实现方式中,所述至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
第二方面,提供一种存储数据的装置,包括:
接收单元,用于接收存储数据请求;
确定单元,用于根据所述存储数据请求确定待存储数据的至少两个唯一性约束条件,并确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件;
存储单元,用于在所述确定单元确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将所述待存储的数据存储至第一存储节点,所述唯一性约束条件数据库包括与所述待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件。
结合第二方面,在第一种可能的实现方式中,所述确定单元确定待存储数据的至少两个唯一性约束条件时,具体为:
确定所述待存储数据所属的数据类型,及所述数据类型所对应的唯一性约束参数;
将所述待存储数据针对所述唯一性约束参数的取值,作为所述待存储数据的至少两个唯一性约束条件。
结合第二方面,或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括转换单元,所述转换单元用于:
将所述唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将所述至少两个唯一性约束条件中的每一个唯一性约束条件均采用所述安全摘要转换方式进行转换,得到至少两个第二转换值,所述至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
所述确定单元确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,具体为:
确定所述唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
结合第二方面,或者第二方面的第一种至第二种可能的实现方式,在第三种可能的实现方式中,所述存储单元还用于,将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库。
结合第二方面,或者第二方面的第一种至第三种可能的实现方式,在第四种可能的实现方式中,所述唯一性约束条件数据库为分布式存储数据库;
所述存储单元将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库时,具体为:
针对所述至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算所述任意一唯一性约束条件的哈希值;
将所述任意一唯一性约束条件存储至编号为所述哈希值的第二存储节点。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第二存储节点与所述第一存储节点为不同的存储节点。
结合第二方面,或者第二方面的第一种至第五种可能的实现方式,在第六种可能的实现方式中,所述接收单元还用于,接收删除数据请求;
所述确定单元还用于,根据所述删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
还包括删除单元,用于从所述第一存储节点中将所述待删除的数据删除,及将与所述待删除的数据所对应的全部唯一性约束条件从所述唯一性约束条件数据库中删除。
结合第二方面,或者第二方面的第一种至第六种可能的实现方式,在第七种可能的实现方式中,所述确定单元还用于,确定唯一性约束条件数据库中存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,禁止将所述待存储的数据存储至所述第一存储节点。
结合第二方面,或者第二方面的第一种至第七种可能的实现方式,在第八种可能的实现方式中,所述至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
本发明实施例中,提出一种存储数据的方法:接收存储数据请求,根据存储数据请求确定待存储数据的至少两个唯一性约束条件;确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将待存储的数据存储至第一存储节点,唯一性约束条件数据库包括与待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件,在该方案中,确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,才将待存储的数据存储至第一存储节点,也就是说,要满足至少两个唯一性约束条件在唯一性约束条件数据库中均查找不到时,才将待存储的数据进行存储,因此,避免了同一数据重复存储的缺陷。
附图说明
图1为本发明实施例中存储数据的流程图;
图2为本发明实施例中存储数据的一种实施例;
图3为本发明实施例中存储数据的另一种实施例;
图4为本发明实施例中存储数据的装置的一种结构示意图;
图5为本发明实施例中存储数据的装置的另一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,本发明实施例中,存储数据的详细流程如下:
步骤100:接收存储数据请求,根据存储数据请求确定待存储数据的至少两个唯一性约束条件;
步骤110:确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将待存储的数据存储至第一存储节点,唯一性约束条件数据库包括从第一存储节点中已存储的所有数据中提取出的所有唯一性约束条件。
本发明实施例中,确定待存储数据的至少两个唯一性约束条件的方式有多种,可选的,可以采用如下方式:
确定待存储数据所属的数据类型,及数据类型所对应的唯一性约束参数;
将待存储数据针对唯一性约束条件的取值,作为待存储数据的至少两个唯一性约束条件。
也就是说,待存储数据的唯一性约束条件是跟数据类型相对应的,例如,针对通话记录这一类数据类型,唯一性约束参数可以为电话号码和时间段这两个字段的组合,那么针对通话记录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 存储数据请求
本发明实施例中,确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之前,要生成唯一性约束条件数据库,唯一性约束条件数据库可以根据已经存储的数据的唯一性约束条件生成的。
在应用中,唯一性约束条件所占用的存储空间可能较大,本发明实施例中,为了减少唯一性约束条件所占用的存储空间,提高存储空间的利用率,可以将唯一性约束条件进行转换,因此,本发明实施例中,确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束字段之前,还包括如下操作:
将唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将至少两个唯一性约束条件中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到至少两个第二转换值,至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
此时,确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,可选的,可以采用如下方式:
确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
也就是说,比较的时候不是对唯一性约束条件进行比较,而是将唯一性约束条件转换后的值进行比较。
其中,可选的,安全摘要转换方式可以为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相同的唯一性约束条件,如果仍然不存在的话,将待存储的数据进行存储。
本发明实施例中,确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之后,为了使后续待存储的数据在存储时根据唯一性约束条件来判断该待存储的数据是否已经存储,因此,还包括如下操作:
将至少两个唯一性约束条件存储至唯一性约束条件数据库。
这样,再次接收到与已经存储的数据相同的数据时,可以通过唯一性约束条件避免再次将该数据进行存储。
例如:订单记录1对应的唯一性约束条件为唯一性约束条件1和唯一性约束条件2,根据步骤200和步骤210,将订单记录1存储之后,还要存储唯一性约束条件1和唯一性约束条件2,这样再次接收到要存储订单记录1的存储数据请求时,唯一性约束条件数据库中已经存在唯一性约束条件1和唯一性约束条件2了,这样就禁止将订单记录1再次进行存储。
本发明实施例中,如果唯一性约束条件数据库为分布式存储数据库的时候,将至少两个唯一性约束条件存储至唯一性约束条件数据库时,可选的,可以采用如下方式:
针对至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算任意一唯一性约束条件的哈希值;
将任意一唯一性约束条件存储至编号为哈希值的第二存储节点。
例如,有两个唯一性约束条件:唯一性约束条件1和唯一性约束条件2,将唯一性约束条件1计算得出的哈希值为哈希值1,将唯一性约束条件2计算得出的哈希值为哈希值2,则将唯一性约束条件1存储至编号为1的存储节点,将唯一性约束条件2存储至编号为2的存储节点。
由于唯一性约束条件的存储和数据的存储对存储节点的存储空间是不同的,为了扩容方便,本发明实施例中,可选的,第二存储节点和第一存储节点为不同的存储节点,也就是说,存储唯一性约束条件的存储节点和存储数据的存储节点是不同的存储节点。
本发明实施例中,进一步的,还可以返回针对存储数据请求的响应消息,响应消息如表3、表4所示,表3针对一个待存储数据,表4为针对多个待存储数据,多个待存储数据属于同一数据类型:
表3 响应消息
参数名称 取值说明 字段类型
Resultcode 结果码 Integer
ResultDesc 描述结果码 String
OriginalField 唯一性约束条件 String
CreateTime 待存储数据的存储时间 String
表4 响应消息
其中,Resultcode和ResultDesc是必须的字段,OriginalField和CreateTime是可选的字段,结果码有两个0、1,0表示确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件,1表示确定唯一性约束条件数据库中存在与至少两个唯一性约束条件中的至少一个唯一性约束条件相同的唯一性约束条件。
上述讲述的是存储数据的过程,在应用中,有可能包括删除数据的过程,因此,本发明实施例中,将待存储的数据存储至第一存储节点之后,还包括如下操作:
接收删除数据请求;
根据删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
从第一存储节点中将待删除的数据删除,及将与待删除的数据所对应的全部唯一性约束条件从唯一性约束条件数据库中删除。
删除数据请求中也可以携带表1或者表2中所示的参数,针对删除数据请求的响应消息也可以携带表3或者表4所示的参数,在此不再进行详述。
上述讲述的是将待存储的数据存储的过程,但是,在应用中,确定唯一性约束条件数据库中可能存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件,此时,禁止将待存储的数据存储至第一存储节点。
本发明实施例中,可选的,至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
例如:订单号可以作为一个唯一性约束性条件,用户名、订购时间及订购商品也可以作为一个唯一性约束条件。
为了更好地理解本发明实施例,以下给出具体应用场景,针对存储数据的过程,作出进一步详细描述,如图2所示:
步骤200:接收存储数据请求,存储数据请求中携带待存储数据的数据类型、字段1、字段2、字段3和字段4;
步骤210:根据数据类型确定与该数据类型对应的唯一性约束参数;
步骤220:确定字段1和字段2为针对唯一性约束参数的取值,将字段1作为唯一性约束条件1,字段2作为唯一性约束条件2;
步骤230:确定字段1和字段2是否均不存在于唯一性约束条件数据库中,若是,执行步骤240,否则,执行步骤270;
步骤240:将待存储的数据存储至第一存储节点;
步骤250:计算字段1的哈希值为哈希值1,字段2的哈希值为哈希值2;
步骤260:将字段1存储至编号为1的第二存储节点中,将字段2存储至编号为2的第二存储节点中;
步骤270:禁止将待存储的数据存储只第一存储节点。
为了更好地理解本发明实施例,以下给出具体应用场景,针对删除数据的过程,作出进一步详细描述,如图3所示:
步骤300:接收删除数据请求,删除数据请求中携带待删除数据的数据类型、字段1、字段2、字段3和字段4;
步骤310:根据数据类型确定与该数据类型对应的唯一性约束参数;
步骤320:确定字段1和字段2为针对唯一性约束参数的取值,将字段1作为唯一性约束条件1,字段2作为唯一性约束条件2;
步骤330:从第一存储节点中删除待删除的数据;
步骤340:计算字段1的哈希值为哈希值1,字段2的哈希值为哈希值2;
步骤350:将字段1从编号为1的第二存储节点中删除,将字段2从编号为2的第二存储节点中删除。
基于上述技术方案,参阅图4所示,提出一种存储数据的装置,该装置包括接收单元40、确定单元41及存储单元42,其中:
接收单元40,用于接收存储数据请求;
确定单元41,用于根据存储数据请求确定待存储数据的至少两个唯一性约束条件,并确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件;
存储单元42,用于在确定单元41确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将待存储的数据存储至第一存储节点,唯一性约束条件数据库包括与待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件。
本发明实施例中,可选的,确定单元41确定待存储数据的至少两个唯一性约束条件时,具体为:
确定待存储数据所属的数据类型,及数据类型所对应的唯一性约束参数;
将待存储数据针对唯一性约束参数的取值,作为待存储数据的至少两个唯一性约束条件。
本发明实施例中,进一步的,还包括转换单元43,转换单元43用于:
将唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将至少两个唯一性约束条件中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到至少两个第二转换值,至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
确定单元41确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,具体为:
确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
进一步的,存储单元42还用于,将至少两个唯一性约束条件存储至唯一性约束条件数据库。
可选的,唯一性约束条件数据库为分布式存储数据库;
存储单元42将至少两个唯一性约束条件存储至唯一性约束条件数据库时,具体为:
针对至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算任意一唯一性约束条件的哈希值;
将任意一唯一性约束条件存储至编号为哈希值的第二存储节点。
可选的,,第二存储节点与第一存储节点为不同的存储节点。
进一步的,接收单元40还用于,接收删除数据请求;
确定单元41还用于,根据删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
还包括删除单元44,用于从第一存储节点中将待删除的数据删除,及将与待删除的数据所对应的全部唯一性约束条件从唯一性约束条件数据库中删除。
进一步的,确定单元41还用于,确定唯一性约束条件数据库中存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,禁止将待存储的数据存储至第一存储节点。
可选的,至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
如图5所示,为本发明实施例提供的存储数据的装置的实体装置图,存储数据的装置包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
其中,通信总线502用于实现上述组件之间的连接并通信,通信接口504用于与外部设备连接并通信。
其中,存储器503用于存储需要执行的程序代码,处理器501可以通过通信总线502调用存储器503中存储的程序代码,当处理器501调用存储器503中存储的程序代码时,将执行如下操作:
接收存储数据请求,根据存储数据请求确定待存储数据的至少两个唯一性约束条件;
确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将待存储的数据存储至第一存储节点,唯一性约束条件数据库包括与待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件。
可选的,处理器501确定待存储数据的至少两个唯一性约束条件时,具体为:
确定待存储数据所属的数据类型,及数据类型所对应的唯一性约束参数;
将待存储数据针对唯一性约束参数的取值,作为待存储数据的至少两个唯一性约束条件。
进一步的,处理器501确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之前,还包括如下操作:
将唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将至少两个唯一性约束条件中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到至少两个第二转换值,至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
处理器501确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,可选的,可以采用如下操作:
确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
进一步的,处理器501确定唯一性约束条件数据库中不存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之后,还包括如下操作:
将至少两个唯一性约束条件存储至唯一性约束条件数据库。
可选的,唯一性约束条件数据库为分布式存储数据库;
可选的,处理器501将至少两个唯一性约束条件存储至唯一性约束条件数据库时,具体为:
针对至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算任意一唯一性约束条件的哈希值;
将任意一唯一性约束条件存储至编号为哈希值的第二存储节点。
可选的,第二存储节点与第一存储节点为不同的存储节点。
进一步的,处理器501将待存储的数据存储至第一存储节点之后,还包括如下操作:
接收删除数据请求;
根据删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
从第一存储节点中将待删除的数据删除,及将与待删除的数据所对应的全部唯一性约束条件从唯一性约束条件数据库中删除。
进一步的,处理器501还执行如下操作:
确定唯一性约束条件数据库中存在与至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,禁止将待存储的数据存储至第一存储节点。
可选的,至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种存储数据的方法,其特征在于,包括:
接收存储数据请求,根据所述存储数据请求确定待存储数据的至少两个唯一性约束条件;
确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将所述待存储的数据存储至第一存储节点,所述唯一性约束条件数据库包括与所述待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件;
其中,确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之前,还包括:
将所述唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将所述至少两个唯一性约束条件中的每一个唯一性约束条件均采用所述安全摘要转换方式进行转换,得到至少两个第二转换值,所述至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件,包括:
确定所述唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
2.如权利要求1所述的方法,其特征在于,确定待存储数据的至少两个唯一性约束条件,包括:
确定所述待存储数据所属的数据类型,及所述数据类型所对应的唯一性约束参数;
将所述待存储数据针对所述唯一性约束参数的取值,作为所述待存储数据的至少两个唯一性约束条件。
3.如权利要求1所述的方法,其特征在于,确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件之后,还包括:
将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库。
4.如权利要求3所述的方法,其特征在于,所述唯一性约束条件数据库为分布式存储数据库;
将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库,包括:
针对所述至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算所述任意一唯一性约束条件的哈希值;
将所述任意一唯一性约束条件存储至编号为所述哈希值的第二存储节点。
5.如权利要求4所述的方法,其特征在于,所述第二存储节点与所述第一存储节点为不同的存储节点。
6.如权利要求1所述的方法,其特征在于,将所述待存储的数据存储至第一存储节点之后,还包括:
接收删除数据请求;
根据所述删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
从所述第一存储节点中将所述待删除的数据删除,及将与所述待删除的数据所对应的全部唯一性约束条件从所述唯一性约束条件数据库中删除。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定唯一性约束条件数据库中存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,禁止将所述待存储的数据存储至所述第一存储节点。
8.如权利要求1-7任一项所述的方法,其特征在于,所述至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
9.一种存储数据的装置,其特征在于,包括:
接收单元,用于接收存储数据请求;
确定单元,用于根据所述存储数据请求确定待存储数据的至少两个唯一性约束条件,并确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件;
存储单元,用于在所述确定单元确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,将所述待存储的数据存储至第一存储节点,所述唯一性约束条件数据库包括与所述待存储的数据属于同一数据类型的已存储的所有数据中提取出的所有唯一性约束条件;
还包括转换单元,所述转换单元用于:
将所述唯一性约束条件数据库中的每一个唯一性约束条件均采用安全摘要转换方式进行转换,得到多个第一转换值,每一个唯一性约束条件分别对应一个第一转换值,任意两个不同的唯一性约束条件所对应的第一转换值不同;
将所述至少两个唯一性约束条件中的每一个唯一性约束条件均采用所述安全摘要转换方式进行转换,得到至少两个第二转换值,所述至少两个唯一性约束条件分别对应一个第二转换值,任意两个不同的唯一性约束条件所对应的第二转换值不同;
所述确定单元确定唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,具体为:
确定所述唯一性约束条件数据库中不存在与所述至少两个唯一性约束条件分别对应的第二转换值相同的第一转换值。
10.如权利要求9所述的装置,其特征在于,所述确定单元确定待存储数据的至少两个唯一性约束条件时,具体为:
确定所述待存储数据所属的数据类型,及所述数据类型所对应的唯一性约束参数;
将所述待存储数据针对所述唯一性约束参数的取值,作为所述待存储数据的至少两个唯一性约束条件。
11.如权利要求9所述的装置,其特征在于,所述存储单元还用于,将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库。
12.如权利要求11所述的装置,其特征在于,所述唯一性约束条件数据库为分布式存储数据库;
所述存储单元将所述至少两个唯一性约束条件存储至所述唯一性约束条件数据库时,具体为:
针对所述至少两个唯一性约束条件中的任意一唯一性约束条件,分别执行:
计算所述任意一唯一性约束条件的哈希值;
将所述任意一唯一性约束条件存储至编号为所述哈希值的第二存储节点。
13.如权利要求12所述的装置,其特征在于,所述第二存储节点与所述第一存储节点为不同的存储节点。
14.如权利要求9所述的装置,其特征在于,所述接收单元还用于,接收删除数据请求;
所述确定单元还用于,根据所述删除数据请求确定待删除的数据所对应的全部唯一性约束条件;
还包括删除单元,用于从所述第一存储节点中将所述待删除的数据删除,及将与所述待删除的数据所对应的全部唯一性约束条件从所述唯一性约束条件数据库中删除。
15.如权利要求9所述的装置,其特征在于,所述确定单元还用于,确定唯一性约束条件数据库中存在与所述至少两个唯一性约束条件中的任意一唯一性约束条件相同的唯一性约束条件时,禁止将所述待存储的数据存储至所述第一存储节点。
16.如权利要求9-15任一项所述的装置,其特征在于,所述至少两个唯一性约束条件中的任意一唯一性约束条件包括一个字段或者至少两个字段的组合。
CN201510374953.9A 2015-06-30 2015-06-30 一种存储数据的方法及装置 Active CN106326285B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510374953.9A CN106326285B (zh) 2015-06-30 2015-06-30 一种存储数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510374953.9A CN106326285B (zh) 2015-06-30 2015-06-30 一种存储数据的方法及装置

Publications (2)

Publication Number Publication Date
CN106326285A CN106326285A (zh) 2017-01-11
CN106326285B true CN106326285B (zh) 2019-11-12

Family

ID=57722165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510374953.9A Active CN106326285B (zh) 2015-06-30 2015-06-30 一种存储数据的方法及装置

Country Status (1)

Country Link
CN (1) CN106326285B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382949A (zh) * 2008-10-28 2009-03-11 阿里巴巴集团控股有限公司 一种数据库表的管理方法及装置
US8423556B2 (en) * 2009-07-14 2013-04-16 Fujitsu Limited Archive device
CN103647804A (zh) * 2013-11-22 2014-03-19 华为技术有限公司 一种存储单元的数据处理方法、设备及系统
CN104246722A (zh) * 2013-03-29 2014-12-24 株式会社东芝 用于基于哈希表排除数据重复的存储系统,存储控制器及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382949A (zh) * 2008-10-28 2009-03-11 阿里巴巴集团控股有限公司 一种数据库表的管理方法及装置
US8423556B2 (en) * 2009-07-14 2013-04-16 Fujitsu Limited Archive device
CN104246722A (zh) * 2013-03-29 2014-12-24 株式会社东芝 用于基于哈希表排除数据重复的存储系统,存储控制器及方法
CN103647804A (zh) * 2013-11-22 2014-03-19 华为技术有限公司 一种存储单元的数据处理方法、设备及系统

Also Published As

Publication number Publication date
CN106326285A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN110383274B (zh) 识别设备的方法、装置、系统、存储介质、处理器和终端
CN106844372B (zh) 一种物流信息查询方法和装置
CN103533002A (zh) 一种数据处理方法和系统
CN105900121A (zh) 用于生成活动流的方法
US20140081881A1 (en) Social network based mapping
CN106296095B (zh) 一种基于智慧仓储的物资调配方法和设备
CN110471923A (zh) 一种区块链交易记录的处理方法及装置
CN107665187A (zh) 一种判断移动设备应用界面是否发生变化的方法和装置
Lopes et al. Heuristics and matheuristics for a real‐life machine reassignment problem
Effendi et al. Discovering process model from event logs by considering overlapping rules
CN110020333A (zh) 数据分析方法及装置、电子设备、存储介质
CN109542612A (zh) 一种热点关键字获取方法、装置及服务器
CN108399175A (zh) 一种数据存储、查询方法及其装置
CN104182546B (zh) 数据库的数据查询方法及装置
Pena et al. Verification of the observer property in discrete event systems
CN109345252A (zh) 一种线上交易控制方法、装置、及计算机设备
CN106326285B (zh) 一种存储数据的方法及装置
CN106469166B (zh) 一种信息处理方法及装置
US9542457B1 (en) Methods for displaying object history information
CN109165305A (zh) 一种特征值存储、检索方法及装置
CN108600347A (zh) 一种分布式计算数据同步方法和装置
CN113553379A (zh) 一种数据采集方法及装置
US11016828B2 (en) Task support system and method
CN113987107A (zh) 基于行为树的对话方法、装置及电子设备、存储介质
Aguirre et al. A hybrid scheduling approach for automated flowshops with material handling and time constraints

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant