CN111143373A - 数据处理方法、装置、电子设备及存储介质 - Google Patents

数据处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111143373A
CN111143373A CN201911403255.1A CN201911403255A CN111143373A CN 111143373 A CN111143373 A CN 111143373A CN 201911403255 A CN201911403255 A CN 201911403255A CN 111143373 A CN111143373 A CN 111143373A
Authority
CN
China
Prior art keywords
field
fragment
data
key
determining
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.)
Pending
Application number
CN201911403255.1A
Other languages
English (en)
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.)
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Original Assignee
Zhuo Erzhi Lian Wuhan Research Institute 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 Zhuo Erzhi Lian Wuhan Research Institute Co Ltd filed Critical Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority to CN201911403255.1A priority Critical patent/CN111143373A/zh
Publication of CN111143373A publication Critical patent/CN111143373A/zh
Pending legal-status Critical Current

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

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

Abstract

本发明公开了一种数据处理方法、装置、电子设备及存储介质。其中,方法包括:针对待存储数据的所有字段中的每个字段,分别确定出每个字段对应的基数;所述基数表征对应的字段中出现字段值相同的数据的概率;所述基数随着所述概率的增大而减小;在所有字段中的每个字段对应的基数中,确定第一基数;所述第一基数大于第一设定值;基于所述第一基数确定片键;所述片键中包括至少一个所述第一基数对应的字段;根据确定出的片键,将所述待存储数据存储至对应的数据块。

Description

数据处理方法、装置、电子设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
相关技术中,使用非关系型数据库存储技术进行数据存储时,容易出现数据分布不均衡的情况,降低了数据库的存储效率,造成数据库中单个节点数据存储量过大的现象。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法、装置、电子设备及存储介质,以至少解决相关技术中数据分布不均衡的问题。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据处理方法,所述方法包括:
针对待存储数据的所有字段中的每个字段,分别确定出每个字段对应的基数;所述基数表征对应的字段中出现字段值相同的数据的概率;所述基数随着所述概率的增大而减小;
在所有字段中的每个字段对应的基数中,确定第一基数;所述第一基数大于第一设定值;
基于所述第一基数确定片键;所述片键中包括至少一个所述第一基数对应的字段;
根据确定出的片键,将所述待存储数据存储至对应的数据块。其中,上述方案中,所述基于所述第一基数确定片键,包括:
在所有字段中的每个字段对应的基数中,确定第二基数;所述第二基数小于第二设定值;所述第一设定值大于所述第二设定值;
选取至少一个第一字段;所述第一字段为所述第一基数对应的字段;
选取至少一个第二字段;所述第二字段为所述第二基数对应的字段;
根据所述至少一个第一字段和所述至少一个第二字段,生成所述片键。
上述方案中,所述第二基数对应的字段中,字段值单调变化,所述方法还包括:
确定第一片键;所述第一片键为当前存入数据的数据块对应的片键;
确定第二片键;所述第二片键为当前存有数据的数据块对应的片键;
在所述第二片键中确定出第三片键;所述第三片键中的第二字段与所述第一片键中的第二字段不同;
删除所述第三片键对应的数据块中的数据。
上述方案中,所述方法还包括:
分别确定每个分片的相关参数;所述相关参数包括分片的数据块数量;
根据确定出的每个分片的相关参数,在所有分片中确定出源分片;
将所述源分片中的数据迁移至目标分片;所述目标分片从所有分片中除所述源分片之外的分片中确定出。
上述方案中,所述在所有分片中确定出源分片,包括:
确定第一分片;所述第一分片为数据块数量最多的分片;
确定第二分片;所述第二分片为数据块数量最少的分片;
在所述第一分片与所二分片的数据块数量差大于第三设定值的情况下,将所述第一分片确定为所述源分片。
上述方案中,所述在所有分片中确定出源分片,还包括:
在所述第一分片与所二分片的数据块数量差小于或等于所述第三设定值的情况下,检测是否存在第三分片;所述第三分片为剩余存储空间小于第四设定值的分片;
在存在所述第三分片的情况下,选取至少一个所述第三分片作为所述源分片。
上述方案中,所述在所有分片中确定出源分片,还包括:
在不存在所述第三分片的情况下,检测是否存在第四分片;所述第四分片的负载与所有分片的平均负载之间的差值大于第五设定值;
在存在所述第四分片的情况下,选取至少一个所述第四分片作为所述源分片。
本发明实施例还提供了一种数据处理装置,包括:
获取单元,用于获取待存储数据的至少一个字段;
第一确定单元,用于确定所述至少一个字段中每个字段对应的散列值;
第二确定单元,用于确定所述至少一个字段中每个字段对应的基数;其中,所述基数用于表征具有相同散列值的数据的存在概率;所述基数随着所述存在概率的增大而减小;
选择单元,用于选取基数最高的字段为片键;
存储单元,用于将所述待存储数据存放在相应的数据分片中,并根据所述片键对所述待存储数据进行拆分,形成不同的数据块。
本发明实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
本发明实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
在本发明实施例中,通过待存储数据的每个字段所对应的基数中选取基数较大的字段,并根据基数较大的字段生成片键,使得待存储数据存储至对应的数据块中,能够根据基数选取合适的片键,提高片键选取的科学性,并且能够根据选择的片键对待存储的数据进行拆分,使得待存储数据能够均匀分布地存储。
附图说明
图1为本发明一实施例提供的数据处理方法的实现流程示意图;
图2为本发明一实施例提供的数据处理方法的实现流程示意图;
图3为本发明一实施例提供的数据处理方法的实现流程示意图;
图4为本发明一实施例提供的数据处理方法的实现流程示意图;
图5为本发明一实施例提供的数据处理方法的实现流程示意图;
图6为本发明一实施例提供的数据处理方法的实现流程示意图;
图7为本发明一实施例提供的数据处理方法的实现流程示意图;
图8为本发明提供的确定源分片的流程示意图;
图9为本发明实施例提供的数据处理装置的结构示意图;
图10为本发明实施例电子设备的硬件组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
另外,在本发明实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
下面结合附图及具体实施例对本申请作进一步详细的说明。
本申请实施例提供了一种数据处理方法,图1为本申请实施例的数据处理方法的一种流程示意图。如图1所示,所述方法包括:
S101:针对待存储数据的所有字段中的每个字段,分别确定出每个字段对应的基数;所述基数表征对应的字段中出现字段值相同的数据的概率;所述基数随着所述概率的增大而减小。
这里,待存储数据中对应有至少一个字段,每个字段能够描述待存储数据的一个特征。例如,待存储数据对应有两个字段,字段名分别是“user”以及“month”,其中,user这个字段用于描述上传待存储数据的用户,month这个字段用于描述待存储数据产生的时间,因此,这两个字段可以用于表征待存储数据的不同属性。获取待存储数据的所有字段之后,分别确定每个字段对应的基数。其中,基数是表征在相同的字段中出现字段值相同的数据的概率,用于判断数据的独特性。字段值代表着字段的取值,当在相同的字段中出现字段值相同的数据的概率高的时候,这个字段对应的基数小,而当在相同的字段中出现字段值相同的数据的概率低的时候,这个字段对应的基数大。也就是说,在相同的字段下,一个字段下字段值的取值种类越少,那么这个字段对应的基数就越大,当一个字段下字段值的取值种类越多,那么这个字段对应的基数就越小。在实际应用中,例如需要存储某一小区的住户的个人信息,包括住户的个人姓名、性别以及身份证号码。从住户的个人信息中,可以获取三个字段,分别是个人姓名、性别以及身份证号码。对于性别这个字段而言,在确定性别这个字段的基数时,可以发现当字段值为“女性”的时候,会出现多条性别的字段值为女性的数据。因此,对于性别这个字段而言,基数小。而对于“身份证号码”这个字段而言,由于每个人的身份证号码都是不相同,该字段出现相同字段值的数据的概率为0,因此“身份证号码”这个字段对应的基数大。
S102:在所有字段中的每个字段对应的基数中,确定第一基数;所述第一基数大于第一设定值。
这里,在确定待存储的数据的所有字段对应的基数之后,从所有字段对应的基数中确定出第一基数,其中第一基数是大于第一设定值的。在实际应用中,将第一设定值设定为一个较大的数值,由于确定的第一基数是大于第一设定值的,就说明第一基数较大,在第一基数所对应的字段下出现字段值相同的数据的概率低。
S103:基于所述第一基数确定片键;所述片键中包括至少一个所述第一基数对应的字段。
这里,片键是一个属性字段或者一个复合索引字段,建立了之后不能发生改变。片键能够将数据进行拆分,形成不同的数据块。根据第一基数确定片键,片键中至少存在一个第一基数所对应的字段。在实际应用中,可能存在多个字段所对应的基数是大于第一设定值的,那么在基于第一基数确定片键的时候,可以选择基数最高的一个或多个字段来构成片键。
S104:根据确定出的片键,将所述待存储数据存储至对应的数据块。
这里,可以根据确定出的片键,对待存储数据进行划分,将划分后的数据存储至对应的数据块中。由于第一基数的选取是判断字段的基数是否大于第一设定值,那么确定的第一基数是所有字段所对应的基数中属于较高的,那么根据第一基数所对应的字段组成的片键进行划分的数据块数量也会更多,使得待存储数据存储至对应的数据块的时候,能够使每个数据块之间存储数据量比较均衡。
在上述实施例中,通过获取待存储数据每个字段对应的基数,并根据每个字段对应的基数与第一设定值的关系,确定第一基数,并根据第一基数确定片键,将待存储数据存储至对应的数据块中,能够选择合适的字段做为片键。
在一实施例中,如图2所示,所述基于所述第一基数确定片键,包括:
S201:在所有字段中的每个字段对应的基数中,确定第二基数;所述第二基数小于第二设定值;所述第一设定值大于所述第二设定值。
这里,根据所有字段中的每个字段对应的基数,确定第二基数,其中,第二基数小于第二设定值,并且第一设定值大于第二设定值。也就是说第二基数是小于第一基数的,那么确定第二基数是为了寻找所有字段中基数较小的字段。由于第二基数较小,那么在第二基数所对应的字段下出现字段值相同的数据的概率就会变高,也就说存在多条在同一个字段下字段值相同的数据。在实际应用中,可以将第二设定值设置为较小的数值。
S202:选取至少一个第一字段;所述第一字段为所述第一基数对应的字段。
这里,在确定第一基数之后,从第一基数中所对应的字段中,选取至少一个字段。在实际应用中,可以选取第一基数中基数最高的字段。
S203:选取至少一个第二字段;所述第二字段为所述第二基数对应的字段。
这里,在确定第二基数之后,从第二基数中所对应的字段中,选取至少一个字段。在实际应用中,可以选择第二基数中基数较低所对应的字段。在实际应用中,还可以根据公式选择组成片键的两个字段。该公式是根据升序键和搜索键组成复合索引,该公式为{coarseLocality:1,search:1}。其中,coarseLocality字段所对应的是基数较低的字段,根据该字段生成的片键能够将待存储数据划分为几十到几百个数据块,有利于控制数据局部化。而search字段所对应的是基数较高的字段,可以是数据上常用的一个检索字段。根据该片键选择公式,能够从第一基数中选择合适的第一字段,也就是片键公式中search所对应的字段,从第二基数中选择合适的第二字段,也就是片键公式中coarseLocality所对应的字段,并根据选择的第一字段和第二字段生成片键。S204:根据所述至少一个第一字段和所述至少一个第二字段,生成所述片键。
这里,根据选择的第一字段和第二字段,将选择的字段组成复合索引,根据选择的复合索引生成片键。在实际应用中,第一基数对应的是基数较高的字段,并且该基数对应的字段可以是数据上常用到的一个检索字段。在用户查询数据时,对于基数高而且是常用的检索字段,根据该检索字段进行数据查询的时候,得到的查询结果较少,使得用户能够在查询结果中快速地寻找到想要的数据。第二基数对应的是基数较低的字段,由该字段组成的片键的每个片键值能够对应较高的数据量,用于控制数据的局部化。例如,第一基数确定的字段为user,在实际应用中,使用者会经常查询某个特定用户的数据,因此user适合作为一个检索字段,并且user对应的基数高,符合第一基数所对应的字段的要求。第二基数确定的字段为month,由于month是指数据写入时的月份,那么将数据以月份为依据分割为数据块,分割出的数据块数较少,符合第二基数所对应的字段的要求,将month和user组合成复合索引,根据组成的复合索引生成片键。在存储的初始阶段,第一个数据块的区间为((-∞,-∞),(∞,∞))。当第一个数据块被填满的时候,能够根据复合索引组成的片键将数据块分成两块,假设写入数据的时候为4月份,并且写入数据的用户名为“rex”,那么数据将会分成区间为((-∞,-∞),(“2017-04”,“rex”))的数据块和区间为((“2017-04”,“rex”),(∞,∞))的数据块。在4月份写入的数据都会被均匀地分到这两个数据块上,所有用户名小于“rex”的用户的数据将会放到第一个数据块上,而所有用户名大于“rex”的用户的数据将会放到第二个数据块上,其中,用户名的比较可以基于用户名的字符值进行判断,具体地,将用户名所对应的字符串转换成二进制,得到每个用户名所对应的字符值,通过比较不同用户名所对应的字符值的大小,就能够判断用户名是否大于“rex”。
在上述实施例中,根据待存储数据的字段所对应的基数,确定第一基数和第二基数,并从第一基数中选择第一字段,从第二基数中选择第二字段,根据第一字段和第二字段生成片键,能够对数据进行合理的拆分,将数据均匀分布到各个数据块上进行存储,提高了数据的存储效率,并且能够保证在对数据进行增加、读取、更新和删除的时候利用数据的局部性,提高了对数据的处理效率。
在一实施例中,当第二基数对应的字段的字段值发生变化,并且是呈单调变化时,如图3所示,所述第二基数对应的字段中,字段值单调变化,所述方法还包括:
S301:确定第一片键;所述第一片键为当前存入数据的数据块对应的片键。
这里,当组成片键的第二基数所对应的字段的字段值发生单调变化的时候,能够根据不同的字段值指向片键所划分的数据块。第二基数所对应的字段的字段值发生单调变化主要是指发生递增变化,发生递增变化的字段组成的片键称为递增片键,包括日期时间字段、自增字段等组成的片键。例如,由字段month生成的片键出现单调变化,主要是指字段month所对应的字段值发生递增,可以是month这个字段的字段值从5变成6。由于不同的数据块是根据片键进行划分的,通过片键的第二基数所对应的字段的字段值可以确定第一片键。第一片键为当前存入数据的数据块对应的片键,此时,数据块存入的数据的至少一个字段与生成片键的字段是相同的,并且这个相同的字段在第一片键中的字段值与该字段在待存储数据的字段值也是相同的。例如,生成片键的第二基数所对应的字段为month,待存储的数据为6月份生成的数据,待存储数据以及生成片键的第二基数所对应的字段都为month。由于第一片键是可以存储6月份生成的数据,从而确定第一片键的第二基数所对应的字段的字段值为6。
S302:确定第二片键;所述第二片键为当前存有数据的数据块对应的片键。
这里,第二片键是指存有数据的数据块所对应的片键,也就是说第二片键所对应的数据块已经存有数据了。根据第一片键的第二基数所对应的字段的字段值,能够确定第二片键的第二基数所对应的字段的字段值。例如,生成片键的第二基数所对应的字段为month,第一片键所对应的数据块中存储的是6月份生成的数据,那么第一片键中month所对应的字段值为6。由于第一片键为当前存入数据的数据块多岁应的片键,当前存有数据的数据块所对应的片键的month的字段值为1、2、3、4、5、6,也就是说第二片键的第二基数所对应的字段的字段值分别为1、2、3、4、5、6。
S303:在所述第二片键中确定出第三片键;所述第三片键中的第二字段与所述第一片键中的第二字段不同。
这里,根据生成第二片键的第二字段的字段值,可以确定出第三片键。其中,第三片键中的第二字段与第一片键中的第二字段不同。具体地,第二片键的第二字段对应多个不同的字段值,从这些不同的字段值中确定出第三片键的第二字段所对应的字段值,其中第三片键的第二字段所对应的字段值与第一片键的第二字段所对应的字段值不同。例如,生成片键的第二字段为month,第一片键的第二字段的字段值为6,第一片键对应的数据块是存储6月份生成的数据。第二片键代表的是存有数据的数据块所对应的片键,那么第二片键的第二字段的字段值为1、2、3、4、5、6,也就是说在数据库中存有1至6月份的数据。由于第三片键的第二字段的字段值与第一片键的第二字段的字段值不同,并且第三片键的第二字段的字段值是根据第二片键的第二字段的字段值确定的,从而可以得到第三片键的第二字段的字段值为1、2、3、4、5中的任意一个数值。
S304:删除所述第三片键对应的数据块中的数据。
这里,根据第二片键确定出第三片键之后,将第三片键所对应的数据块中的数据进行删除。在实际应用中,能发生单调变化的字段通常为描述时间的字段,由于第三片键的第二字段所对应的字段值与第一片键的第二字段所对应的字段值是不相同,并且,第一片键所对应的数据块是最新存储的数据,相对而言第一片键存储的数据而言,第三片键所对应的数据块是时间较久远的数据。对于时间较久远的数据,用户访问频率较低,将这些用户访问频率较低的数据进行删除之后,能够释放更多的存储空间。例如,生成片键中的第二字段为month,第一片键的第二字段所对应的字段值为6,代表着第一片键所对应的数据块是存储6月份生成的数据。第二片键的第二字段所对应的字段值为1、2、3、4、5、6,代表着第二片键所对应的数据块是目前已经存有的数据。第三片键的第二字段所对应的字段值可以为1、2、3、4、5中的任意一个数值。由于最新存储的数据为6月份生成的数据,根据用户的习惯,对于6月份之前生成的数据的访问频率会降低,因此可以将6月份之前的数据进行删除,也就是将第三片键所对应的数据块上的数据进行删除。
在上述实施例中,在第二基数对应的字段中,字段值发生单调变化的时候,确定第一片键和第二片键,并且根据第二片键确定第三片键,将第三片键的数据进行删除,能够确定出访问频率低的数据所对应的片键,并将访问频率低的数据进行删除,能够将占用存储空间的而又不重要的数据进行删除,提高了存储空间的利用效率。
在上述实施例中,选择待存储数据的字段生成片键,并根据确定后的片键将待存储数据存储到相应的数据块,在一实施例中,在存储数据之后,判断数据库的负载均衡的情况,如图4所示,所述方法还包括:
S401:分别确定每个分片的相关参数;所述相关参数包括分片的数据块数量。
这里,可以获取遍历数据库中的所有分片,获取每个分片对应的相关参数。其中,能够获取分片的数据块数量,也就是说能够得知每个分片中存有多少个数据块。
S402:根据确定出的每个分片的相关参数,在所有分片中确定出源分片。
这里,根据每个分片的数据块数量,通过对每个分片的数据块数量进行比较,确定出所有分片中的源分片,其中,源分片是指需要进行数据迁移的分片。根据确定出的每个分片的相关参数设置源分片的选取规则,选出源分片。
在一实施例中,如图5所示,所述在所有分片中确定出源分片,包括:
S501:确定第一分片;所述第一分片为数据块数量最多的分片。
这里,通过查询每个分片的相关参数,获取每个分片的数据块数量的多少之后,对每个分片的数据块数量进行比较,确定出数据块数量最多的分片,并将该分片确定为第一分片。具体的算法表达式为:
IFs.size>max.size
THEN nmax←s
这里,s代表着数据中不同的分片,将每一个分片的数据块数量进行比较,第一个进行比较的数据块数量可以确定为数据块数量最多的分片,也就是max.size。从第二个分片开始,将第二个分片与max.size进行比较,如果第二个分片中的数据块数量大于max.size,那么可以将第二个分片确定为数据块数量最多的分片,并且将max.size确定为第二分片的数据块数量。如果第二分片的数据块数量小于max.size,那么将第三分片与max.size进行比较,以此类推,直到数据库中所有的分片都比较完毕之后,确定数据块数量最多的分片。
S502:确定第二分片;所述第二分片为数据块数量最少的分片。
这里,在将每个分片的数据块数量进行比较的时候,确定出数据块数量最少的分片,并将该分片确定为第二分片。在实际应用中,可以在得到每个分片的数据块数量之后,根据每个分片所对应的数据块数量进行排序,得到数据块数量从小到大的排序表,根据排序之后得到的排序表,可以得到数据块数量最少的分片。具体地,可以提取位于排序表排名靠前的分片以及位于排序表排名靠前的分片所对应的数据块数量,从这些位于排序表排名靠前的分片中进行数据块数量的比较,从而选择出数据块数量最少的分片。其中,提取位于排序表排名靠前的分片的数量可以根据所有分片的数据量以及设定的比例值进行决定。例如,一共有300个分片的数量,设定的比例值为10%,那么经过排序之后,提取排序表排名靠前的30个分片进行比较,确定数据块数量最少的分片。具体的算法表达式为:
min SortedList←Sort(min List)
FOR each shard s∈min SortedList
ANDs.rank<n×β DO
IF s.nodeload>min.nodeload
THEN min←s
这里,min List是指数据块数量较少的分片,在实际应用,可以在获取数据块数量最多的分片之后,确定数据块数量较少的分片,并将这些分片命名为min List。对min List进行排序,其中是将属于min List中的分片根据数据块数量从小到大进行排序,生成minSortedList。对属于min SortedList,并且排序位于前n×β的分片进行相互比较,根据比较结果得到数据块数量最少的分片s。
S503:在所述第一分片与所二分片的数据块数量差大于第三设定值的情况下,将所述第一分片确定为所述源分片。
这里,在确定了第一分片和第二分片之后,判断第一分片与第二分片的数据块数量的差值是否大于第三设定值。如果存在第一分片与第二分片的数据块数量的差值大于第三设设定值之后,可以将第一分片确定为源分片。也就是说当数据块数量最多的分片与数据块数量最少的分片之间的数据块数的差值大于第一阈值的时候,那么将数据块数量最多的分片确定为源分片,需要将数据块数量最多的分片进行数据迁移。其中,第三设定值可以根据数据库能承载的最多数据块数量进行决定,一般将数据库能承载的最多数据块数量的40%-50%所对应的数值设定为第三设定值。例如,数据库能承载的最多分块数为1000块,那么可选择第三设定值为400。如果获取的数据块数量最多的分片含有600块,数据块数量最少的分片含有100块,那么两者之间的差值为500,超过设定的第三设定值,那么可以确定数据块数量最少的分片与数据块数量最多的分片的差值大于第三设定值。并且将数据块数量最多的分片确定为源分片。具体的算法表达式为:IF max.size-min.size>n×α,其中,max.size代表着第一分片,min.size代表着第二分片,判断两个分片之间的差值是否大于第三设定值可以使用算法中的IF语句进行判断,判断的条件就是max.size-min.size>n×α。n代表着数据库能承载的最多数据块数量,α代表一个比例值,根据n×α得到第三设定值。
在上述实施例中,通过确定数据块数量最多的分片和数据块数量最少的分片,并根据两者之间的差值大于第三设定值时,将数据块数量最多的分片作为目标分片,进行数据迁移,能够根据分片内的数据块数量的差异考虑每个分片的数据量是否分配均匀,从而使数据能够均匀分配存储到每个分片内,避免出现分片之间存储数量差异较大的现象。
在一实施例中,如图6所示,所述在所有分片中确定出源分片,还包括:
S601:在所述第一分片与所二分片的数据块数量差小于或等于所述第三设定值的情况下,检测是否存在第三分片;所述第三分片为剩余存储空间小于第四设定值的分片。
这里,当第一分片与第二分片的数据块数量的差值小于或等于第三设定值的情况下,也就是说数据块数量最多的分片与数据块数量最少的分片之间的数据块数量差别不是很大,并不存在两者之间的分片数量差异较大的情况。这时候,就要判断是否存在第三分片,其中第三分片为剩余存储空间小于第四设定值的分片。其中第四设定值可以根据每个分片的最大存储空间进行决定。例如每个分片的最大存储空间为100条数据,那么可以设定第四设定值为10,当检测到分片的剩余存储空间小于10的时候,就可以确定该分片的存储空间即将用完。在实际应用第三分片的确定还可以根据数据块数量最多的分片以及其他分片之间的数据块数量的差值进行确定。当存在数据块数量最多的分片和一个分片之间的数据块数量的差值较小的时候,就可以判断该分片属于第三分片。具体的算法表达式为:
IF isDraining(shardLimits)
THEN drainingShards.add(s)
这里,通过寻找所有分片,找出分片的剩余存储空间小于第四阈值的分片,将这些分片确定为第三分片。其中,判断分片的剩余存储空间是否小于第四阈值的时候,可以通过IF语句进行判断,将判断的条件写进IF语句中,判断的条件是IF isDraining(shardLimits),其中,shardLimits是指分片的剩余空间小于第四设定值时所对应的剩余空间。drainingShards是指符合条件的第三分片,将符合判断条件的分片记为drainingShards。
S602:在存在所述第三分片的情况下,选取至少一个所述第三分片作为所述源分片。
这里,如果存在第三分片的情况下,可以选择至少一个第三分片作为源分片,进行数据迁移的操作。在实际应用中,可以将第三分片中数据块数量最多的分片作为源分片,将数据块数量最多的第三分片进行数据迁移。具体的算法表达式为:
ELSE IF!drainingShards.IsEmpty()
THEN from←drainingShards.get()
其中,ELSEIF!drainingShards.IsEmpty()是用于确定存在第三分片,drainingShards代表着第三分片。在确定了第三分片的情况下,从第三分片中选择一个源分片,也就是THEN From←drainingShards.get()。
在上述实施例中,通过在第一分片与所二分片的数据块数量差小于或等于所述第三设定值的情况下,确定是否存在存储空间少于第四设定值的第三分片,并在第三分片中选择合适的分片作为源分片,进行数据迁移,进一步细化了进行数据迁移的条件,能够在不同的情况下实现数据存储量均衡。
在一实施例中,如图7所示,所述在所有分片中确定出源分片,还包括:
S701:在不存在所述第三分片的情况下,检测是否存在第四分片;所述第四分片的负载与所有分片的平均负载之间的差值大于第五设定值。
这里,当不存在第三分片的情况下,也就是说不存在剩余存储空间即将耗尽的分片时,就要检测是否存在第四分片,其中判断是否存在第四分片的依据是根据每个分片的负载与所有分片的平均负载之间进行比较。如果存在分片的负载与所有分片的平均负载之间的差值大于第五设定值,那么就可以确定这个分片属于第四分片。在实际应用中,第五设定值是根据数据库能承受的最大负载进行决定的,通常可以将数据库能承受的最大负载的40%-50%所对应的数值作为第五设定值。例如,数据库能承受的最大负载为1000,那么选择数据库能承受的最大负载的40%作为第五设定值,也就是说400为第五设定值。现有一个分片的负载为700,计算得到所有分片的平均负载为250,那么分片的负载与所有分片的平均负载的差值为450,大于设定的第一阈值400。那么就能够将这个分片确定为第四分片。其中,所有分片的平均负载可以在遍历整个数据库中所有分片的信息的时候获取,根据获取每个分片的负载,得到所有分片的总负载,那么就可以得到所有分片的平均负载。具体的算法表达式为:
For each shard s∈ns DO
shardLimits←shardToLimits.find(s)
load←getLoad(shardLimits)
sumLoad←sumLoad+load
avgLoad←sumLoad/n
ELSE IF(max Load-avgLoad)/avgLoad>γ
这里,For each shard s∈ns DO是指寻找属于数据库中的所有分片,shardLimits←shardToLimits.find(s)代表着获取每个分片的相关信息,其中shardToLimits是指分片约束信息映射表,根据分片约束信息映射表获取分片的相关信息。load←getLoad(shardLimits)代表着从分片的相关信息中获取分片的负载信息。sumLoad←sumLoad+load代表着将每个分片的负载进行相加,得到所有分片的总负载,其中sumLoad代表着分片的总负载。avgLoad←sumLoad/n代表着根据得到所有分片的总负载,得到平均负载,其中,avgLoad是指平均负载,n代表着数据库中所有分片的数量,将总负载除以所有分片的数量,就能够得到平均负载。ELSE IF(max Load-avgLoad)/avgLoad>γ代表着判断是否存在第四分片的存在,其中max Load代表着负载最大的分片,γ代表着第五设定值。S702:在存在所述第四分片的情况下,选取至少一个所述第四分片作为所述源分片。
这里,当存在第四分片的时候,也就是说当存在分片的负载与所有分片的平均负载的差值是大于第五设定值的时候,那么可以从这些符合条件的第四分片中,选择至少一个分片,作为源分片,进行数据迁移。在实际应用中,通常选择第四分片中负载最高的分片作为源分片,将源分片的数据迁移到负载最小的分片中。具体算法表达式为:
THEN from←max Load
AND to←min
ELSE refurn NULL
这里,当存在第四分片的时候,THEN from←max Load代表着从第四分片中选取一个源分片,AND to←min代表着将源分片的数据迁移到负载最小的分片上。ELSE returnNULL代表着如果不存在第四分片,那么就不需要进行数据迁移。
在上述实施例中,在不存在第三分片的情况下,通过判断第四分片的负载与所有分片的平均负载之间的差值大于第五设定值,将至少一个第四分片作为源分片,进行数据迁移,能够从每个分片之间的数据块数量的差异以及每个分片的负载的大小差异这两个方面,决定进行数据迁移的分片,从而可以在超高并发的数据访问状态下做到数据分配的实时均衡,使每个分片存储的数据都是呈均匀分配的,达到数据库的负载均衡。
S403:将所述源分片中的数据迁移至目标分片;所述目标分片从所有分片中除所述源分片之外的分片中确定出。
这里,当确定出源分片之后,还需要确定出目标分片,目标分片是从源分片之外的分片中进行确定,其中,目标分片是用于接收源分片进行迁移的数据。在确定出目标分片之后,将源分片的数据迁移到目标分片中。在实际应用中,目标分片可以是数据库中数据块数量最少的分片。
在上述实施例中,通过获取每一个分片的相关参数,并根据相关参数确定源分片和目标分片,将源分片的数据迁移至目标分片中,能够避免单个分片出现数据量较大的情况,使每个分片上的数据量保持均衡。
本发明提供了一个具体实施例,图8示出了本发明应用实施例提供的确定源分片的流程示意图,参照图8,具体实施流程如下:
S801:收集数据库中所有分片的相关信息;
S802:确定数据块数量最多的分片;
S803:确定数据块数量最少的分片;
S804:判断数据块数量最多的分片与数据块数量最少的分片是否超过第三设定值,如果超过第一设定值则转到S805,如果没有超过第一设定值则转到S806;
S805:将数据块数量最多的分片确定为源分片,并转到S811;
S806:判断是否存在分片的剩余存储空间小于第四设定值,如果存在这样的分片则转到S807,如果不存在这样的分片则转到S808;
S807:将剩余存储空间小于第四设定的值分片确定为源分片,并转到S811;
S808:判断是否存在分片的负载与所有分片的平均负载大于第五设定值,如果存在这样的分片,则转到S809,如果不存在这样的分片,则转到S810;
S809:将负载最高的分片确定为源分片,并转到S811;
S810:不存在需要进行数据迁移的源分片;
S811:将源分片的数据进行迁移。
为实现本发明实施例的数据处理方法,本发明实施例还提供了一种数据处理装置,如图9所示,该数据处理装置包括:
第一确定单元901,用于针对待存储数据的所有字段中的每个字段,分别确定出每个字段对应的基数;所述基数表征对应的字段中出现字段值相同的数据的概率;所述基数随着所述概率的增大而减小;
第二确定单元902,用于在所有字段中的每个字段对应的基数中,确定第一基数;所述第一基数大于第一设定值;
第三确定单元903,用于基于所述第一基数确定片键;所述片键中包括至少一个所述第一基数对应的字段;
存储单元904,用于根据确定出的片键,将所述待存储数据存储至对应的数据块。
在一实施例中,所述第三确定单元903基于所述第一基数确定片键,包括:
在所有字段中的每个字段对应的基数中,确定第二基数;所述第二基数小于第二设定值;所述第一设定值大于所述第二设定值;
选取至少一个第一字段;所述第一字段为所述第一基数对应的字段;
选取至少一个第二字段;所述第二字段为所述第二基数对应的字段;
根据所述至少一个第一字段和所述至少一个第二字段,生成所述片键。
在一实施例中,所述第三确定单元903第二基数对应的字段中,字段值单调变化,还包括:
确定第一片键;所述第一片键为当前存入数据的数据块对应的片键;
确定第二片键;所述第二片键为当前存有数据的数据块对应的片键;
在所述第二片键中确定出第三片键;所述第三片键中的第二字段与所述第一片键中的第二字段不同;
删除所述第三片键对应的数据块中的数据。
在一实施例中,所述数据处理装置还包括:
分别确定每个分片的相关参数;所述相关参数包括分片的数据块数量;
根据确定出的每个分片的相关参数,在所有分片中确定出源分片;
将所述源分片中的数据迁移至目标分片;所述目标分片从所有分片中除所述源分片之外的分片中确定出。
在一实施例中,所述数据处理装置在所有分片中确定出源分片,包括:
确定第二分片;所述第二分片为数据块数量最少的分片;
在所述第一分片与所二分片的数据块数量差大于第三设定值的情况下,将所述第一分片确定为所述源分片。
在一实施例中,所述数据处理装置在所有分片中确定出源分片,还包括:
在所述第一分片与所二分片的数据块数量差小于或等于所述第三设定值的情况下,检测是否存在第三分片;所述第三分片为剩余存储空间小于第四设定值的分片;
在存在所述第三分片的情况下,选取至少一个所述第三分片作为所述源分片。
在一实施例中,所述数据处理装置在所有分片中确定出源分片,还包括:
在不存在所述第三分片的情况下,检测是否存在第四分片;所述第四分片的负载与所有分片的平均负载之间的差值大于第五设定值;
在存在所述第四分片的情况下,选取至少一个所述第四分片作为所述源分片。
实际应用时,第一确定单元901、第二确定单元902、第三确定单元903、存储单元904可由数据处理装置中的处理器来实现。当然,处理器需要运行存储器中存储的程序来实现上述各程序模块的功能。
需要说明的是,上述图9实施例提供的数据处理装置在进行数据处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供了一种电子设备,图10为本发明实施例电子设备的硬件组成结构示意图,如图10所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据处理方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统4。
本发明实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本发明实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、终端和方法,可以通过其它的方式实现。以上所描述的设备实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
针对待存储数据的所有字段中的每个字段,分别确定出每个字段对应的基数;所述基数表征对应的字段中出现字段值相同的数据的概率;所述基数随着所述概率的增大而减小;
在所有字段中的每个字段对应的基数中,确定第一基数;所述第一基数大于第一设定值;
基于所述第一基数确定片键;所述片键中包括至少一个所述第一基数对应的字段;
根据确定出的片键,将所述待存储数据存储至对应的数据块。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一基数确定片键,包括:
在所有字段中的每个字段对应的基数中,确定第二基数;所述第二基数小于第二设定值;所述第一设定值大于所述第二设定值;
选取至少一个第一字段;所述第一字段为所述第一基数对应的字段;
选取至少一个第二字段;所述第二字段为所述第二基数对应的字段;
根据所述至少一个第一字段和所述至少一个第二字段,生成所述片键。
3.根据权利要求2所述的方法,其特征在于,所述第二基数对应的字段中,字段值单调变化,所述方法还包括:
确定第一片键;所述第一片键为当前存入数据的数据块对应的片键;
确定第二片键;所述第二片键为当前存有数据的数据块对应的片键;
在所述第二片键中确定出第三片键;所述第三片键中的第二字段与所述第一片键中的第二字段不同;
删除所述第三片键对应的数据块中的数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别确定每个分片的相关参数;所述相关参数包括分片的数据块数量;
根据确定出的每个分片的相关参数,在所有分片中确定出源分片;
将所述源分片中的数据迁移至目标分片;所述目标分片从所有分片中除所述源分片之外的分片中确定出。
5.根据权利要求4所述的方法,其特征在于,所述在所有分片中确定出源分片,包括:
确定第一分片;所述第一分片为数据块数量最多的分片;
确定第二分片;所述第二分片为数据块数量最少的分片;
在所述第一分片与所二分片的数据块数量差大于第三设定值的情况下,将所述第一分片确定为所述源分片。
6.根据权利要求5所述的方法,其特征在于,所述在所有分片中确定出源分片,还包括:
在所述第一分片与所二分片的数据块数量差小于或等于所述第三设定值的情况下,检测是否存在第三分片;所述第三分片为剩余存储空间小于第四设定值的分片;
在存在所述第三分片的情况下,选取至少一个所述第三分片作为所述源分片。
7.根据权利要求6所述的方法,其特征在于,所述在所有分片中确定出源分片,还包括:
在不存在所述第三分片的情况下,检测是否存在第四分片;所述第四分片的负载与所有分片的平均负载之间的差值大于第五设定值;
在存在所述第四分片的情况下,选取至少一个所述第四分片作为所述源分片。
8.一种数据处理装置,其特征在于,所述装置包括:
第一确定单元,用于针对待存储数据的所有字段中的每个字段,分别确定出每个字段对应的基数;所述基数表征对应的字段中出现字段值相同的数据的概率;所述基数随着所述概率的增大而减小;
第二确定单元,用于在所有字段中的每个字段对应的基数中,确定第一基数;所述第一基数大于第一设定值;
第三确定单元,用于基于所述第一基数确定片键;所述片键中包括至少一个所述第一基数对应的字段;
存储单元,用于根据确定出的片键,将所述待存储数据存储至对应的数据块。
9.一种电子设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN201911403255.1A 2019-12-30 2019-12-30 数据处理方法、装置、电子设备及存储介质 Pending CN111143373A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911403255.1A CN111143373A (zh) 2019-12-30 2019-12-30 数据处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911403255.1A CN111143373A (zh) 2019-12-30 2019-12-30 数据处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111143373A true CN111143373A (zh) 2020-05-12

Family

ID=70522355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911403255.1A Pending CN111143373A (zh) 2019-12-30 2019-12-30 数据处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111143373A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765171A (zh) * 2021-01-12 2021-05-07 湖北宸威玺链信息技术有限公司 一种用于区块链数据上链的多字段组合索引取数的优化算法
CN114327261A (zh) * 2021-12-06 2022-04-12 神州融安数字科技(北京)有限公司 数据文件的存储方法及数据安全代理

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547755A (zh) * 2015-09-17 2017-03-29 北京国双科技有限公司 一种基于片键的数据处理方法及装置
CN109783555A (zh) * 2018-12-13 2019-05-21 东软集团股份有限公司 表单模板存储方法、装置、存储介质及电子设备
CN110334152A (zh) * 2019-06-28 2019-10-15 浙江吉利控股集团有限公司 一种数据同步方法、装置及服务器
CN110493251A (zh) * 2019-08-30 2019-11-22 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547755A (zh) * 2015-09-17 2017-03-29 北京国双科技有限公司 一种基于片键的数据处理方法及装置
CN109783555A (zh) * 2018-12-13 2019-05-21 东软集团股份有限公司 表单模板存储方法、装置、存储介质及电子设备
CN110334152A (zh) * 2019-06-28 2019-10-15 浙江吉利控股集团有限公司 一种数据同步方法、装置及服务器
CN110493251A (zh) * 2019-08-30 2019-11-22 北京字节跳动网络技术有限公司 一种数据处理方法、装置、电子设备和存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
YONG-SHIN KANG ET.AL.: ""MongoDB-Based Repository Design for IoT-Generated RFID/Sensor Big Data"", 《IEEE SENSORS JOURNAL》 *
付艳萍: ""基于马尔可夫模型的SCADA历史数据的存储研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
冯超政: ""基于冷热数据的MongoDB负载均衡机制研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765171A (zh) * 2021-01-12 2021-05-07 湖北宸威玺链信息技术有限公司 一种用于区块链数据上链的多字段组合索引取数的优化算法
CN114327261A (zh) * 2021-12-06 2022-04-12 神州融安数字科技(北京)有限公司 数据文件的存储方法及数据安全代理

Similar Documents

Publication Publication Date Title
KR101972645B1 (ko) 클러스터링 저장 방법 및 장치
CN111247518B (zh) 用于数据库分片的方法和系统
KR100856245B1 (ko) 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법
US10552378B2 (en) Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset
US8793227B2 (en) Storage system for eliminating duplicated data
KR101365464B1 (ko) 데이터베이스 미들웨어를 이용한 데이터 관리 시스템 및 방법
CN111241108B (zh) 基于键值对kv系统的索引方法、装置、电子设备和介质
US9424202B2 (en) Database search facility
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
CN111143373A (zh) 数据处理方法、装置、电子设备及存储介质
US20110153677A1 (en) Apparatus and method for managing index information of high-dimensional data
CN111914020A (zh) 数据同步方法及装置、数据查询方法及装置
EP4302200A1 (en) Measuring and improving index quality in a distributed data system
US20150046399A1 (en) Computer system, data allocation management method, and program
US11507533B2 (en) Data query method and apparatus
EP3995972A1 (en) Metadata processing method and apparatus, and computer-readable storage medium
US20170075989A1 (en) Search method
CN111309704B (zh) 数据库操作方法和数据库操作系统
US9824105B2 (en) Adaptive probabilistic indexing with skip lists
CN112084141A (zh) 一种全文检索系统扩容方法、装置、设备及介质
US20230195761A1 (en) Spatial lsm tree apparatus and method for indexing blockchain based geospatial point data
JP2001147936A (ja) 文書検索システム、方法及び記録媒体
CN106777062B (zh) 一种管理元数据的方法及装置
Shen et al. A Distributed Caching Scheme for Improving Read-write Performance of HBase
CN117312239A (zh) 一种基于组合方式存储数据索引的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200512