System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据湖的分区方法及相关装置制造方法及图纸_技高网

一种数据湖的分区方法及相关装置制造方法及图纸

技术编号:41224765 阅读:6 留言:0更新日期:2024-05-09 23:43
本申请公开了一种数据湖的分区方法及相关装置,在该方法中,从数据表的多个字段中确定第一分区键字段;基于每条数据中第一分区键字段的值和第一分区的个数进行哈希处理,得到每条数据对应的分区编号;将分区编号字段添加至数据表,并将每条数据对应的分区编号作为分区编号字段的值添加至数据表,得到添加后的多条数据;基于添加后的多条数据分别对应的分区编号,将添加后的多条数据分别分布至具有相同分区编号的第一分区中;将每个第一分区中的数据划分为满足数据量阈值的多个文件组,并基于每个文件组生成对应的布隆过滤器。如此,文件组和布隆过滤器的数量均不受第一分区的个数的限制,能够避免影响数据湖的性能。

【技术实现步骤摘要】

本申请涉及计算机领域,特别是涉及一种数据湖的分区方法及相关装置


技术介绍

1、数据湖(data lake)是一种数据存储架构,它可以容纳大量不同类型和不同格式的数据,并支持用于数据分析和机器学习的高级查询和处理。举例来说,hudi数据湖是一个流式数据湖平台,支持通过计算引擎进行写入和查询。hudi数据湖可以包括多个文件组file group,一个文件组中包含多条数据,每条数据包括数据表中多个字段下的值,且每个文件组具有对应的文件组标识file id。当需要对hudi数据湖存储的数据进行查询、修改或增加等操作时,需要先定位到对应的文件组,再执行后续操作。

2、相关技术中,可以采用以下两种方案定位到对应的文件组:

3、一种方案为:在外部数据库,例如hbase数据库中存储每条数据的主键与文件组标识的对应关系,当需要对数据执行操作时,从hbase数据库中可以获取所需执行操作的数据的主键对应的文件组标识,进而定位到文件组。但方案依赖外部数据库,容易存在数据库和数据湖数据不一致的问题,运维困难。

4、另一种方案为:将多个文件组标识与多个哈希桶一一对应,也就是说,为每个文件组绑定一个哈希桶,当需要对数据执行操作时,确定所需执行操作的数据对应的哈希桶,也即定位到对应的文件组。然而,该方案中哈希桶的个数确定好就无法更改,但数据湖所存入的数据量却无法预先估量,容易出现一个或一些文件组所存入的数据过多的问题;或者,预先确定的哈希桶个数过多,导致对应的文件组数量过多的问题。以上两种情况均会影响数据湖的性能。

5、因此,如何在实现文件组的定位的同时,避免影响数据湖的性能,成为目前亟待解决的问题。


技术实现思路

1、有鉴于此,本申请实施例提供了一种数据湖的分区方法及相关装置,目的是在实现数据组定位的同时,避免影响数据湖的性能。

2、第一方面,本申请实施例提供了一种数据湖的分区方法,数据湖包括多个第一分区,所述多个第一分区分别具有不同的分区编号,所述方法包括:

3、从数据表的多个字段中确定第一分区键字段;所述数据表包括多条数据,每条数据包括所述多个字段分别对应的值;

4、基于每条数据中所述第一分区键字段的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号;

5、将分区编号字段添加至所述数据表,并将每条数据对应的分区编号作为所述分区编号字段的值添加至所述数据表,得到添加后的多条数据;

6、基于所述添加后的多条数据分别对应的分区编号,将所述添加后的多条数据分别分布至具有相同分区编号的第一分区中;

7、将每个第一分区中的数据划分为满足数据量阈值的多个文件组,并基于每个文件组生成对应的布隆过滤器,所述布隆过滤器用于定位对应的文件组。

8、可选地,所述方法还包括:

9、获取包括所述第一分区键字段的数据查询条件;

10、基于所述数据查询条件中的第一分区键字段对应的值,以及所述第一分区的个数进行哈希处理,得到所述数据查询条件对应的第一查询分区编号;

11、将分区编号字段为所述第一查询分区编号作为条件添加到第一分区剪枝条件中;

12、基于添加后的第一分区剪枝条件对所述多个第一分区进行剪枝处理,确定满足所述添加后的第一分区剪枝条件的第一分区。

13、可选地,所述第一分区键字段包括所述多个字段中的至少两个字段;所述基于每条数据中所述第一分区键字段的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号,包括:

14、基于每条数据中所述至少两个字段分别对应的值进行拼接处理;

15、针对每条数据,基于拼接后的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号。

16、可选地,所述数据表包括的多条数据为待执行增加操作的数据,或者,所述数据表包括的多条数据为待执行修改操作的数据。

17、可选地,所述数据湖包括多个第二分区,每个第二分区包括多个第一分区,一个第二分区中的多个第一分区分别具有不同的分区编号,所述方法还包括:

18、从所述多个字段中确定第二分区键字段;所述第二分区键字段与所述第一分区键字段不同;

19、从所述多条数据中,将在所述第二分区键字段下具有相同值的数据分布至同一个第二分区中;

20、所述基于每条数据中所述第一分区键字段的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号,包括:

21、基于每条数据中所述第一分区键字段对应的值,以及每条数据所属第二分区中第一分区的个数进行哈希处理,得到每条数据对应的分区编号;

22、所述基于所述添加后的多条数据分别对应的分区编号,将所述添加后的多条数据分别分布至具有相同分区编号的第一分区中,包括:

23、基于所述添加后的多条数据分别对应的分区编号,将所述添加后的多条数据分别分布至所属第二分区中具有相同分区编号的第一分区中。

24、可选地,所述方法还包括:

25、获取包括所述第一分区键字段的数据查询条件;

26、基于所述数据查询条件中所述第一分区键字段对应的值,以及一个第二分区中所述第一分区的个数进行哈希处理,得到所述数据查询条件对应的第二查询分区编号;所述多个第二分区均包括相同个数的第一分区;

27、将分区编号字段为所述第二查询分区编号作为条件添加到第二分区剪枝条件中;

28、基于所述第二分区剪枝条件对多个第二分区进行剪枝处理,确定满足所述第二分区剪枝条件的目标第二分区;

29、基于所述第二分区剪枝条件对所述目标第二分区中的多个第一分区进行剪枝处理,确定满足所述第二分区剪枝条件的第一分区。

30、可选地,所述从数据表的多个字段中确定第一分区键字段,包括:

31、将所述多个字段中的主键字段确定为所述第一分区键字段;所述主键字段的值在所述多条数据中各不相同。

32、第二方面,本申请实施例提供了一种数据湖的分区装置,数据湖包括多个第一分区,所述多个第一分区分别具有不同的分区编号,所述装置包括:

33、第一字段确定模块,用于从数据表的多个字段中确定第一分区键字段;所述数据表包括多条数据,每条数据包括所述多个字段分别对应的值;

34、第一哈希处理模块,用于基于每条数据中所述第一分区键字段的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号;

35、数据添加模块,用于将分区编号字段添加至所述数据表,并将每条数据对应的分区编号作为所述分区编号字段的值添加至所述数据表,得到添加后的多条数据;

36、第一数据分布模块,用于基于所述添加后的多条数据分别对应的分区编号,将所述添加后的多条数据分别分布至具有相同分区编号的第一分区中;

37、过滤器生成模块,用于将每个第一分区中的数据划分为满足数据量阈值的多个文件组本文档来自技高网...

【技术保护点】

1.一种数据湖的分区方法,其特征在于,数据湖包括多个第一分区,所述多个第一分区分别具有不同的分区编号,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述第一分区键字段包括所述多个字段中的至少两个字段;所述基于每条数据中所述第一分区键字段的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号,包括:

4.根据权利要求1所述的方法,其特征在于,所述数据表包括的多条数据为待执行增加操作的数据,或者,所述数据表包括的多条数据为待执行修改操作的数据。

5.根据权利要求1所述的方法,其特征在于,所述数据湖包括多个第二分区,每个第二分区包括多个第一分区,一个第二分区中的多个第一分区分别具有不同的分区编号,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1-6任一项所述的方法,其特征在于,所述从数据表的多个字段中确定第一分区键字段,包括:

8.一种数据湖的分区装置,其特征在于,数据湖包括多个第一分区,所述多个第一分区分别具有不同的分区编号,所述装置包括:

9.一种数据湖的分区设备,其特征在于,所述设备包括存储器以及处理器:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被运行时,运行所述计算机程序的设备实现如权利要求1-7任一项所述的数据湖的分区方法的步骤。

...

【技术特征摘要】

1.一种数据湖的分区方法,其特征在于,数据湖包括多个第一分区,所述多个第一分区分别具有不同的分区编号,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述第一分区键字段包括所述多个字段中的至少两个字段;所述基于每条数据中所述第一分区键字段的值和所述第一分区的个数进行哈希处理,得到每条数据对应的分区编号,包括:

4.根据权利要求1所述的方法,其特征在于,所述数据表包括的多条数据为待执行增加操作的数据,或者,所述数据表包括的多条数据为待执行修改操作的数据。

5.根据权利要求1所述的方法,其特征在于,所述数据湖包括多个第二分区,每个第二分区包括多个第一分区...

【专利技术属性】
技术研发人员:吕虎
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

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

1