一种数据处理方法、装置、设备及存储介质制造方法及图纸

技术编号:38491566 阅读:16 留言:0更新日期:2023-08-15 17:04
本申请提供一种数据处理方法、装置、设备及存储介质,方法包括:获取针对数据库中数据表预设的打散参数、所述数据表的目标索引以及所述目标索引对应的索引类型,其中,所述打散参数包括:单个分片包含的分片数据行数和单个桶包含的桶数据行数;基于所述桶数据行数和所述数据表的数据,生成与所述目标索引对应的列直方图,其中,所述列直方图包括多个目标桶;基于所述索引类型、所述分片数据行数和所述列直方图,对所述数据表的数据进行存储分片,并将所述数据表的数据按照所述存储分片进行打散。所述数据表的数据按照所述存储分片进行打散。所述数据表的数据按照所述存储分片进行打散。

【技术实现步骤摘要】
一种数据处理方法、装置、设备及存储介质


[0001]本申请实施例涉及金融科技(Fintech)的数据处理
,涉及但不限于一种数据处理方法、装置、设备及存储介质。

技术介绍

[0002]随着计算机计算的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,然而,由于金融行业的安全性、实时性要求,金融科技也对技术提出了更高的要求。金融科技领域下,随着业务的扩张以及多方向发展,由此产生的业务数据量越来越大。应此而生的分布式数据库、大数据处理技术,都需要将海量的关系模型数据、结构化数据和非结构化数据以某种的方式(维度)将数据进行拆分,以满足数据落地到单个物理机器上(有限的数据存储、计算处理能力)。
[0003]一般情况下,一张表初始只有一个分片,需要对分布式数据库中的数据表进行切分以及对数据打散。其中,对数据表进行分片的方案是采集分片使用情况信息,根据一定策略自动对分片进行拆分。比如当分片达到一定大小后,对数据进行自动切分,产生更多分片后,通过调度将分片均匀到各个分布式节点上,利用分布式多节点处理提高并发能力,避免产生短板效应。
[0004]相关技术中一定的策略一般为基于索引对数据进行切分的方案,要么是按照主键(primary key)索引对数据表中的数据进行打散,要么是按照二级索引的范围或指定点切分对数据表中的数据进行切分。然而,该方式至少存在通用性较差的问题。

技术实现思路

[0005]本申请实施例提供一种数据处理方法、设备及存储介质,以解决相关技术中进行数据处理时,至少存在通用性较差的问题。
[0006]本申请实施例的技术方案是这样实现的:
[0007]本申请实施例提供一种方法,包括:
[0008]获取针对数据库中数据表预设的打散参数、所述数据表的目标索引以及所述目标索引对应的索引类型,其中,所述打散参数包括:单个分片包含的分片数据行数和单个桶包含的桶数据行数;
[0009]基于所述桶数据行数和所述数据表的数据,生成与所述目标索引对应的列直方图,其中,所述列直方图包括多个目标桶;
[0010]基于所述索引类型、所述分片数据行数和所述列直方图,对所述数据表的数据进行存储分片,并将所述数据表的数据按照所述存储分片进行打散。
[0011]本申请实施例提供一种数据处理装置,包括:
[0012]获取模块,用于获取针对数据库中数据表预设的打散参数、所述数据表的目标索引以及所述目标索引对应的索引类型,其中,所述打散参数包括:单个分片包含的分片数据行数和单个桶包含的桶数据行数;
[0013]生成模块,用于基于所述桶数据行数和所述数据表的数据,生成与所述目标索引对应的列直方图,其中,所述列直方图包括多个目标桶;
[0014]处理模块,用于基于所述索引类型、所述分片数据行数和所述列直方图,对所述数据表的数据进行存储分片,并将所述数据表的数据按照所述存储分片进行打散。
[0015]本申请实施例提供一种设备,包括:
[0016]存储器,用于存储可执行指令;
[0017]处理器,用于执行存储器中存储的可执行指令时,实现上述的方法。
[0018]本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
[0019]本申请实施例具有以下有益效果:
[0020]本申请在获取针对数据库中数据表预设的打散参数、数据表的目标索引以及目标索引对应的索引类型,其中,打散参数包括:单个分片包含的分片数据行数和单个桶包含的桶数据行数;基于桶数据行数和数据表的数据,生成与目标索引对应的列直方图,其中,列直方图包括多个目标桶;基于索引类型、分片数据行数和列直方图,对数据表的数据进行存储分片,并将数据表的数据按照存储分片进行打散。如此,可以按照一定分页大小(列直方图中每一目标桶对应的桶分界范围)处理一个大数据量结果集,无需逐行逻辑处理,就可知晓其数据分布情况;相较传统处理方式,处理效率高,对数据库代价低,无需多次反复查询数据库,查询一次即可。
附图说明
[0021]图1是本申请实施例提供的近年来数据增长率和数据量的示意图;
[0022]图2是相关技术中采用一致性Hash对数据进行分片设置的示意图;
[0023]图3是本申请实施例提供的终端的一个可选的架构示意图;
[0024]图4是本申请实施例提供的数据处理方法的一个可选的流程示意图;
[0025]图5是本申请实施例提供的打散参数表包括的字段的示意图;
[0026]图6是本申请实施例提供的列直方图信息表包括的字段,以及目标索引为唯一索引的列直方图的示意图;
[0027]图7是本申请实施例提供的数据处理方法的一个可选的流程示意图;
[0028]图8是本申请实施例提供的数据处理方法的一个可选的流程示意图;
[0029]图9是本申请实施例提供的数据处理方法的一个可选的流程示意图;
[0030]图10A是本申请实施例提供的目标索引为普通索引,且索引列acct_no的数据类型为字符串类型的列直方图的示意图;
[0031]图10B是本申请实施例提供的目标索引为普通索引,且索引列mnt_sys_time的数据类型为时间类型的列直方图的示意图;
[0032]图10C是本申请实施例提供的索引列acct_no和mnt_sys_time拼接得到的拼接索引列对应的组合列直方图的示意图;
[0033]图11A是本申请实施例提供的针对索引列acct_no,对具有相同第一桶边界范围所需的存储分片个数的示意图;
[0034]图11B是本申请实施例提供的针对索引列mnt_sys_time,对具有相同第一桶边界
范围所需的存储分片个数的示意图;
[0035]图12是本申请实施例提供的数据处理方法的一个可选的流程示意图;
[0036]图13是本申请实施例提供的数据处理方法的一个可选的流程示意图;
[0037]图14是本申请实施例提供的第二合并后的目标桶对应的桶边界范围以及包括的数据行数的示意图。
具体实施方式
[0038]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0039]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的
的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0040]为了更好地理解本申请实施例中提供的数据处理方法,首先对相关技术中的数据处理方法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取针对数据库中数据表预设的打散参数、所述数据表的目标索引以及所述目标索引对应的索引类型,其中,所述打散参数包括:单个分片包含的分片数据行数和单个桶包含的桶数据行数;基于所述桶数据行数和所述数据表的数据,生成与所述目标索引对应的列直方图,其中,所述列直方图包括多个目标桶;基于所述索引类型、所述分片数据行数和所述列直方图,对所述数据表的数据进行存储分片,并将所述数据表的数据按照所述存储分片进行打散。2.根据权利要求1所述的方法,其特征在于,所述基于所述桶数据行数和所述数据表的数据,生成与所述目标索引对应的列直方图,包括:对所述数据表的数据进行排序,确定所述目标索引对应的每一索引值所在数据行的逻辑行号;基于所述逻辑行号和所述桶数据行数,对所述逻辑行号对应的数据进行桶划分,得到所述逻辑行号对应的数据所在的目标桶;基于所述目标桶中的目标索引对应的索引列的第一最大索引值和第一最小索引值,确定所述目标桶的第一桶边界范围;基于所述目标桶的第一桶边界范围和所述目标桶包含的数据的实际数据行数,生成所述列直方图。3.根据权利要求1所述的方法,其特征在于,所述基于所述索引类型、所述分片数据行数和所述列直方图,对所述数据表的数据进行存储分片,包括:若所述索引类型为单列索引且所述目标索引为唯一索引,按照所述列直方图包括的所述目标桶的桶标识对所述多个目标桶进行排序;基于第一目标桶的第二最小索引值、第二目标桶的第二最大索引值,确定第一分片边界范围;确定所述分片数据行数与所述桶数据行数的比值,为所述单个分片与所述单个桶之间的倍数因子;针对排序后的多个目标桶,将相邻的所述倍数因子个目标桶的第一桶边界范围进行合并,并确定合并后的第一桶边界范围的第三最大索引值;以第一目标桶的第二最小索引值、多个第三最大索引值为切分点,对所述第一分片边界范围内的数据进行存储分片。4.根据权利要求1所述的方法,其特征在于,所述基于所述索引类型、所述分片数据行数和所述列直方图,对所述数据表的数据进行存储分片,包括:若所述索引类型为单列索引且所述目标索引为普通索引,以所述第一桶边界范围为维度,将所述列直方图中具有相同第一桶边界范围的目标桶进行合并,得到第一合并后的目标桶;获取所述第一合并后的目标桶的第二分片边界范围中的第四最大索引值与第四最小索引值是否相同的判断结果,其中,所述第二分片边界范围为所述具有相同第一桶边界范围;若判断结果表征所述第四最大索引值与第四最小索引值不相同,以所述第四最大索引
值或所述第四最小索引值为切分点,对所述第二分片边界范围内的数据进行存储分片。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若判断结果表征所述第四最大索引值与第四最小索引值相同,确定所述第一合并后的目标桶包含的数据的总数据行数与所述分片数据行数的比值,为所述第二分片边界范围所需的第一分片数量;若所述第一分片数量大于分片数量阈值,获取所述目标索引对应的索引列的数据类型,并在所述第四最大索引值中增加与所述数据类型对应的数据位数,得到扩大后的第二分片边界范围,其中,所述扩大后的第二分片边界范围中的第五最大索引值与第五最小索引值不相同;对所述第一分片数量与所述分片数量阈值的比值进行向上取整,得到所述第二分片边界范围的...

【专利技术属性】
技术研发人员:苗青利胡盼盼卢道和
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

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

1