System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种分布式数据库中创建全局二级索引的方法及装置制造方法及图纸_技高网

一种分布式数据库中创建全局二级索引的方法及装置制造方法及图纸

技术编号:40424259 阅读:9 留言:0更新日期:2024-02-20 22:44
本申请提供一种分布式数据库中创建全局二级索引的方法及装置,应用于第一节点,该方法包括:接收第一指示,所述第一指示用于指示创建基表中至少一个属性的全局二级索引;根据所述第一指示,向用于存储所述基表的第二节点发送第一请求;其中,所述第一请求用于请求获取第一目标信息,所述第一目标信息包括所述基表中的所述至少一个属性;接收来自所述第二节点的所述第一目标信息,并根据所述第一目标信息创建所述全局二级索引。本申请提供的方案,能够在保证性能和成本的同时,创建可用性高的全局二级索引。

【技术实现步骤摘要】

本申请涉及数据处理,尤其涉及一种分布式数据库中创建全局二级索引的方法及装置


技术介绍

1、基表是分布式数据库中用来存储数据的对象,基表可以是分布式存储在至少一个数据节点中的多行乘多列数据的集合。其中,同一列的数据属于同一个属性,同一行的数据为一个元组,可以存储在同一个数据节点中。当前,基表可以具有一个或多个全局二级索引,基表的每个全局二级索引可以包含基表中的部分列数据,因此基表的全局二级索引可以用于进行数据查询。与基表数据的存储方式类似,基表的全局二级索引的数据也可以分布式存储在至少一个数据节点中。

2、当分布式数据库中存在基表时,无论基表中有没有数据,用户都可以根据需求对基表中的一列或多列(即一个属性或多个属性)创建全局二级索引。当前通常是针对数据库本身结构,与基表的创建过程同步或异步的进行全局二级索引的创建。

3、其中,与基表的创建过程同步的进行全局二级索引的创建的方案能够保证全局二级索引与基表的数据的一致性(即全局二级索引中的各列数据与其在基表中对应列的数据是一致的),但是创建过程中需要创建和维护基表快照等多份中间数据,会导致数据库的输入/输出(input/output)在短时间内增大,影响数据库的性能。为了保证数据库的性能,当前通常会对数据库的架构进行一定程度的优化,又会造成数据库维护成本的升高以及扩展性、实用性的降低。

4、与基表的创建过程异步的进行全局二级索引的创建的方案可以根据分布式数据库负载进行动态优化,从而保证分布式数据库的性能。但是,该方案会导致处理的时间成本升高,且会影响全局二级索引与基表的数据的一致性(即全局二级索引中的各列数据与其在基表中对应列的数据是一致的),导致全局二级索引的可用性变差。

5、综上,当前创建基表的全局二级索引的方案存在成本高、性能差或全局二级索引的可用性差等问题。


技术实现思路

1、本申请提供一种分布式数据库中创建全局二级索引的方法及装置,用以在保证性能和成本的同时,创建可用性高的全局二级索引。

2、第一方面,本申请提供一种分布式数据库中创建全局二级索引的方法,应用于第一节点,该方法包括:接收第一指示,所述第一指示用于指示创建基表中至少一个属性的全局二级索引;根据所述第一指示,向用于存储所述基表的第二节点发送第一请求;其中,所述第一请求用于请求获取第一目标信息,所述第一目标信息包括所述基表中的所述至少一个属性;接收来自所述第二节点的所述第一目标信息,并根据所述第一目标信息创建所述全局二级索引。

3、在该方法中,在分布式数据库中,第一节点在创建全局二级索引时,可以直接从存储基表的第二节点中获取用于创建全局二级索引所需的信息并根据获取的信息进行全局二级索引的创建。该方案能够基于分布式数据库原有架构实现,无需对数据库架构进行其它额外优化处理,因此处理成本较低,对数据库性能的影响也较低。此外,第一节点在接收到指示后即可快速完成全局二级索引的创建,对启动条件和应用场景的要求较低,可根据需要随时进行全局二级索引的创建,以保证全局二级索引与基表数据的强一致性,提高全局二级索引数据的准确度,进而提高全局二级索引的可用性。

4、在一种可能的设计中,所述第一目标信息还包括位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。

5、在该方法中,第一目标信息可以用于创建全局二级索引,第一目标信息中包含的位置信息可以确定基表中数据对应的存储位置,因此,基于第一位置信息创建的全局二级索引中不需要必须包含基表的主键、分布键或分区键等,能够适当减少基表的全局二级索引的数据量,减少索引膨胀问题,尤其在基表的主键、分布键涉及的属性列较多时,能够明显减少创建全局二级索引后需要维护的数据量,提高使用全局二级索引的效率。

6、在一种可能的设计中,所述第二节点包括至少一个数据节点,所述至少一个属性的数据包括第一数据;所述第一数据对应的位置信息包括第一位置信息和第二位置信息;或者,所述第一数据对应的位置信息包括所述第二位置信息和用于确定所述第一位置信息的目标分布键,所述目标分布键为所述第一数据所属的元组对应在所述基表的分布键;其中,所述第一位置信息用于指示所述第一数据所在的第一数据节点,所述第二位置信息用于指示所述第一数据节点中所述第一数据的存储位置。

7、在该方法中,基于数据对应的位置信息中的第一位置信息能够在存储基表的多个节点中快速确定数据所在的节点,基于数据对应的位置信息中的第二位置信息则能够在节点中进一步确定更为精确的数据存储位置。因此,基于位置信息中的第一位置信息和第二位置信息,能够快速高效的定位数据。

8、在一种可能的设计中,所述根据所述第一目标信息创建所述全局二级索引,包括:当所述第一数据对应的位置信息包括所述第二位置信息和所述目标分布键时,根据所述目标分布键确定所述第一位置信息;将所述第一数据、所述第一位置信息和所述第二位置信息作为所述全局二级索引中所述第一数据对应的元组;将所述第一数据对应的元组存储到第二数据节点。

9、在该方法中,当数据对应的位置信息中包含分布键数据时,第一节点可以根据分布键数据计算得到数据对应的第一位置信息,再将数据及其对应的第一位置信息、第二位置信息作为全局二级索引中的数据存储到数据节点,能够以数据量较小的第一位置信息替代数据量可能较大的分布键数据,适当减少全局二级索引中的数据量,提高全局二级索引的实用性。此外,第一节点承担分布键数据的计算处理,可以减少对用于存储数据的数据节点的资源占用,提高数据节点的存储性能。

10、在一种可能的设计中,所述根据所述第一目标信息创建所述全局二级索引,包括:将所述第一目标信息作为所述全局二级索引包含的信息;将所述全局二级索引包含的信息分布式存储到至少一个数据节点中。

11、在该方法中,第一节点可以直接将接收到的用于创建全局二级索引的信息将全局二级索引数据存储到数据节点,因此,第一节点主要起信息转发的作用,在创建基表过程中第一节点的数据处理和计算量较低,能够避免占用第一节点的较多资源,降低对第一节点性能的影响。

12、在一种可能的设计中,所述至少一个属性中的至少一个第一属性用于作为所述全局二级索引的索引建,所述至少一个属性中除所述至少一个第一属性以外的属性以及所述第一目标信息中除所述至少一个属性以外的信息用于作为所述全局二级索引的附加键。

13、在该方法中,全局二级索引中的部分或全部属性可以作为全局二级索引的索引键,基于索引键能够实现对数据的筛选过滤,并能得到较好的过滤效果。

14、在一种可能的设计中,所述第一目标信息还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。

15、在该方法中,版本信息用于确定元组数据的有效性,因此基于元组数据的版本信息能够确定有效数据范围,从而避免对无效数据的处理,进而保证对数据进行处理时的正确性。本文档来自技高网...

【技术保护点】

1.一种分布式数据库中创建全局二级索引的方法,应用于第一节点,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述第一目标信息还包括位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。

3.如权利要求2所述的方法,其特征在于,所述第二节点包括至少一个数据节点,所述至少一个属性的数据包括第一数据;所述第一数据对应的位置信息包括第一位置信息和第二位置信息;或者,所述第一数据对应的位置信息包括所述第二位置信息和用于确定所述第一位置信息的目标分布键,所述目标分布键为所述第一数据所属的元组对应在所述基表的分布键;

4.如权利要求3所述的方法,其特征在于,所述根据所述第一目标信息创建所述全局二级索引,包括:

5.如权利要求1~3任一所述的方法,其特征在于,所述根据所述第一目标信息创建所述全局二级索引,包括:

6.如权利要求1~5任一所述的方法,其特征在于,所述至少一个属性中的至少一个第一属性用于作为所述全局二级索引的索引建,所述至少一个属性中除所述至少一个第一属性以外的属性以及所述第一目标信息中除所述至少一个属性以外的信息用于作为所述全局二级索引的附加键。

7.如权利要求1~6任一所述的方法,其特征在于,所述第一目标信息还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。

8.如权利要求1~7任一所述的方法,其特征在于,在根据所述第一目标信息创建所述全局二级索引之后,所述方法还包括:

9.如权利要求1~8任一所述的方法,其特征在于,所述根据所述第一指示,向用于存储所述基表的所述第二节点发送第一请求,包括:

10.一种分布式数据库中创建全局二级索引的方法,应用于第二节点,其特征在于,所述方法包括:

11.如权利要求10所述的方法,其特征在于,所述第一目标信息还包括位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。

12.如权利要求11所述的方法,其特征在于,所述第二节点包括至少一个数据节点,所述至少一个属性的数据包括第一数据;所述第一数据对应的位置信息包括第一位置信息和第二位置信息;或者,所述第一数据对应的位置信息包括所述第二位置信息和用于确定所述第一位置信息的目标分布键,所述目标分布键为所述第一数据所属的元组对应在所述基表的分布键;

13.如权利要求11或12所述的方法,其特征在于,所述至少一个属性中的至少一个第一属性用于作为所述全局二级索引的索引建,所述至少一个属性中除所述至少一个第一属性以外的属性以及所述第一目标信息中除所述至少一个属性以外的信息用于作为所述全局二级索引的附加键。

14.如权利要求10~13任一所述的方法,其特征在于,所述第一目标信息还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。

15.如权利要求10~14任一所述的方法,其特征在于,在根据所述第一请求,获取所述第一目标信息,并将所述第一目标信息发送至所述第一节点之后,所述方法还包括:

16.一种数据处理装置,应用于第一节点,其特征在于,所述装置包括:

17.如权利要求16所述的装置,其特征在于,所述第一目标信息还包括位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。

18.如权利要求17所述的装置,其特征在于,所述第二节点包括至少一个数据节点,所述至少一个属性的数据包括第一数据;所述第一数据对应的位置信息包括第一位置信息和第二位置信息;或者,所述第一数据对应的位置信息包括所述第二位置信息和用于确定所述第一位置信息的目标分布键,所述目标分布键为所述第一数据所属的元组对应在所述基表的分布键;

19.如权利要求18所述的装置,其特征在于,所述处理单元根据所述第一目标信息创建所述全局二级索引时,具体用于:

20.如权利要求16~18任一所述的装置,其特征在于,所述处理单元根据所述第一目标信息创建所述全局二级索引时,具体用于:

21.如权利要求16~20任一所述的装置,其特征在于,所述至少一个属性中的至少一个第一属性用于作为所述全局二级索引的索引建,所述至少一个属性中除所述至少一个第一属性以外的属性以及所述第一目标信息中除所述至少一个属性以外的信息用于作为所述全局二级索引的附加键。

22.如权利要求16~21任一所述的装置,其特征在于,所述第一目标信息还包括版本信...

【技术特征摘要】

1.一种分布式数据库中创建全局二级索引的方法,应用于第一节点,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述第一目标信息还包括位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。

3.如权利要求2所述的方法,其特征在于,所述第二节点包括至少一个数据节点,所述至少一个属性的数据包括第一数据;所述第一数据对应的位置信息包括第一位置信息和第二位置信息;或者,所述第一数据对应的位置信息包括所述第二位置信息和用于确定所述第一位置信息的目标分布键,所述目标分布键为所述第一数据所属的元组对应在所述基表的分布键;

4.如权利要求3所述的方法,其特征在于,所述根据所述第一目标信息创建所述全局二级索引,包括:

5.如权利要求1~3任一所述的方法,其特征在于,所述根据所述第一目标信息创建所述全局二级索引,包括:

6.如权利要求1~5任一所述的方法,其特征在于,所述至少一个属性中的至少一个第一属性用于作为所述全局二级索引的索引建,所述至少一个属性中除所述至少一个第一属性以外的属性以及所述第一目标信息中除所述至少一个属性以外的信息用于作为所述全局二级索引的附加键。

7.如权利要求1~6任一所述的方法,其特征在于,所述第一目标信息还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。

8.如权利要求1~7任一所述的方法,其特征在于,在根据所述第一目标信息创建所述全局二级索引之后,所述方法还包括:

9.如权利要求1~8任一所述的方法,其特征在于,所述根据所述第一指示,向用于存储所述基表的所述第二节点发送第一请求,包括:

10.一种分布式数据库中创建全局二级索引的方法,应用于第二节点,其特征在于,所述方法包括:

11.如权利要求10所述的方法,其特征在于,所述第一目标信息还包括位置信息;其中,所述位置信息用于指示所述至少一个属性的数据所属的元组在所述基表中的位置。

12.如权利要求11所述的方法,其特征在于,所述第二节点包括至少一个数据节点,所述至少一个属性的数据包括第一数据;所述第一数据对应的位置信息包括第一位置信息和第二位置信息;或者,所述第一数据对应的位置信息包括所述第二位置信息和用于确定所述第一位置信息的目标分布键,所述目标分布键为所述第一数据所属的元组对应在所述基表的分布键;

13.如权利要求11或12所述的方法,其特征在于,所述至少一个属性中的至少一个第一属性用于作为所述全局二级索引的索引建,所述至少一个属性中除所述至少一个第一属性以外的属性以及所述第一目标信息中除所述至少一个属性以外的信息用于作为所述全局二级索引的附加键。

14.如权利要求10~13任一所述的方法,其特征在于,所述第一目标信息还包括版本信息,所述版本信息用于指示所述至少一个属性的数据所属的元组的版本,每个元组的版本用于确定相应元组是否有效。

15.如权利要求10~14任一所述的方法,其特征在于,在根据所述第一请求,获取所述第一目标信息,并将所述第一目标信息发送至所述第一节点之...

【专利技术属性】
技术研发人员:周兆琦张树杰刘宗昊刘宝珠
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1