一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

减少iceberg的upsert功能生成equality-deletes的方法与流程

2022-11-30 15:50:32 来源:中国专利 TAG:


1.本发明涉及计算机软件技术领域,特别涉及一种减少iceberg的upsert功能生成equality-deletes的方法。


背景技术:

2.目前,在iceberg(面向海量数据分析场景的开放表格式)中,为表配置'write.upsert.enabled' = 'true'属性时,系统会对每条insert数据生成一条相同key的equality-delete(等值删除),用以删除之前相同key的记录,以此来实现upsert(更新插入)功能。但是,开启write.upsert.enabled功能之后,每一条insert语句都会直接生成一条equality-delete,会导致50%的磁盘空间被浪费。另外,因为有大量的equality-delete存在,查询时查询引擎会在内存中将equality-delete与data合并,导致占用用大量的内存,严重影响查询性能,甚至导致内存耗尽产生oom(内存溢出)。
3.因此,亟需一种解决办法。


技术实现要素:

4.本发明目的之一在于提供了一种减少iceberg的upsert功能生成equality-deletes的方法,可以大幅减少产生的equality-deletes从而节约内存和加快查询速度,还可以解决数据占用磁盘空间过多的问题。
5.本发明实施例提供的一种减少iceberg的upsert功能生成equality-deletes的方法,包括:当iceberg的upsert功能开启时,构建bloomfilter;基于所述bloomfilter,检测数据源中的每条insert数据是否为预设集合中的一员;若是,将对应所述insert数据的equality-delete插入目的表。
6.优选的,构建bloomfilter,包括:获取分区键和表属性;基于所述分区键和所述表属性,构建bloomfilter。
7.优选的,减少iceberg的upsert功能生成equality-deletes的方法,还包括:当iceberg中flink集群重启和/或taskmanager节点重启和/或flink-job故障重启时,恢复所述bloomfilter。
8.优选的,减少iceberg的upsert功能生成equality-deletes的方法,还包括:获取所述bloomfilter的第一工作记录;基于所述第一工作记录,对所述bloomfilter进行老化预测;当预测到所述bloomfilter即将老化时,对所述bloomfilter进行老化检测;当检测到所述bloomfilter老化时,重新构建新的bloomfilter。
9.优选的,基于所述第一工作记录,对所述bloomfilter进行老化预测,包括:
对所述第一工作记录进行特征提取,获得多个第一工作记录特征;基于所述多个第一工作记录特征,对所述bloomfilter进行老化预测;其中,基于所述多个第一工作记录特征,对所述bloomfilter进行老化预测,包括:将所述多个第一工作记录特征输入至预设的老化预测模型,获得老化预测结果;和/或,基于所述多个第一工作记录特征,构建第一工作记录特征因子;获取多个bloomfilter老化记录,所述bloomfilter老化记录包括:多组一一对应的其他bloomfilter所处的第一iceberg环境和老化前的第二工作记录;获取所述iceberg的第二iceberg环境;依次遍历所述第一iceberg环境;每次遍历时,获取遍历到的所述第一iceberg环境与所述第二iceberg环境之间的环境匹配权重;若所述环境匹配权重和大于等于预设的环境匹配权重和阈值,对遍历到的所述第一iceberg环境对应的所述第二工作记录进行特征提取,获得多个第二工作记录特征;基于所述多个第二工作记录特征,构建第二工作记录特征因子;计算所述第一工作记录特征因子与所述第二工作记录特征因子之间的第一匹配度;赋予所述第一匹配度所述环境匹配权重,获得目标值;遍历所述第一iceberg环境结束后,累加计算每一所述目标值,获得目标值和;若所述目标值和大于等于预设的目标值和阈值,预测所述bloomfilter即将老化。
10.优选的,获取遍历到的所述第一iceberg环境与所述第二iceberg环境之间的环境匹配权重,包括:对遍历到的所述第一iceberg环境进行特征分析,获得多个第一环境特征;基于所述多个第一环境特征,构建第一环境特征因子;对所述第二iceberg环境进行特征分析,获得多个第二环境特征;基于所述多个第二环境特征,构建第二环境特征因子;计算所述第一环境特征因子与所述第二环境特征因子之间的第二匹配度;查询预设的匹配度-环境匹配权重对照表,确定所述第二匹配度对应的环境匹配权重。
11.本发明实施例提供的一种减少iceberg的upsert功能生成equality-deletes的系统,包括:构建模块,用于当iceberg的upsert功能开启时,构建bloomfilter;检测模块,用于基于所述bloomfilter,检测数据源中的每条insert数据是否为预设集合中的一员;插入模块,用于若是,将对应所述insert数据的equality-delete插入目的表。
12.优选的,所述构建模块构建bloomfilter,包括:获取分区键和表属性;基于所述分区键和所述表属性,构建bloomfilter。
13.优选的,减少iceberg的upsert功能生成equality-deletes的系统,还包括:
恢复模块,用于当iceberg中flink集群重启和/或taskmanager节点重启和/或flink-job故障重启时,恢复所述bloomfilter。
14.优选的,减少iceberg的upsert功能生成equality-deletes的系统,还包括:重建模块;其中,所述重建模块执行如下操作:获取所述bloomfilter的第一工作记录;基于所述第一工作记录,对所述bloomfilter进行老化预测;当预测到所述bloomfilter即将老化时,对所述bloomfilter进行老化检测;当检测到所述bloomfilter老化时,重新构建新的bloomfilter。
15.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
16.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
17.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为本发明实施例中一种减少iceberg的upsert功能生成equality-deletes的方法的示意图;图2-5为本发明实施例中具体实施示例的示意图;图6为本发明实施例中一种基于虚拟现实的产品试用系统的示意图。
具体实施方式
18.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
19.本发明实施例提供了一种减少iceberg的upsert功能生成equality-deletes的方法,如图1所示,包括:步骤1:当iceberg的upsert功能开启时,构建bloomfilter;步骤2:基于所述bloomfilter,检测数据源中的每条insert数据是否为预设集合中的一员;步骤3:若是,将对应所述insert数据的equality-delete插入目的表。
20.构建bloomfilter,包括:获取分区键和表属性;基于所述分区键和所述表属性,构建bloomfilter。
21.方法还包括:当iceberg中flink集群重启和/或taskmanager节点重启和/或flink-job故障重启时,恢复所述bloomfilter。
22.上述技术方案的工作原理及有益效果为:iceberg的upsert功能开启时,需要实现数据源到目的表的upsert。构建
bloomfilter(一种二进制向量数据结构),检测数据源中的每条insert数据是否为预设集合中的一员,若是,对应所述insert数据的equality-delete插入目的表。预设集合由工作人员设定。
23.本技术在实施时,如图2所示,分别设置bloomfilter生成模块,bloomfilter恢复模块和bloomfilter判断模块。bloomfilter生成模块主要作用是根据分区键及表属性生成相应的bloomfilter,bloomfilter恢复模块主要作用是用作当flink集群重启,taskmanager节点重启或者flink-job故障重启之后,恢复bloomfilter。3个模块的具体工作流程依次如图3-5所示。
24.本技术可以大幅减少产生的equality-deletes从而节约内存和加快查询速度,还可以解决数据占用磁盘空间过多的问题。
25.在一个实施例中,减少iceberg的upsert功能生成equality-deletes的方法,还包括:获取所述bloomfilter的第一工作记录;基于所述第一工作记录,对所述bloomfilter进行老化预测;当预测到所述bloomfilter即将老化时,对所述bloomfilter进行老化检测;当检测到所述bloomfilter老化时,重新构建新的bloomfilter。
26.上述技术方案的工作原理及有益效果为:bloomfilter因为是在insert(插入)流程中,所以速度是最重要的,因此bloomfilter必须常驻内存,这样导致内存使用会越来越多,则老化。bloomfilter的第一工作记录可以为:每日内各个时间段的插入量等。基于第一工作记录进行老化预测,当预测bloomfilter即将老化时,重新构建新的bloomfilter。避免老化导致系统工作效率下降。
27.在一个实施例中,基于所述第一工作记录,对所述bloomfilter进行老化预测,包括:对所述第一工作记录进行特征提取,获得多个第一工作记录特征;基于所述多个第一工作记录特征,对所述bloomfilter进行老化预测;其中,基于所述多个第一工作记录特征,对所述bloomfilter进行老化预测,包括:将所述多个第一工作记录特征输入至预设的老化预测模型,获得老化预测结果;和/或,基于所述多个第一工作记录特征,构建第一工作记录特征因子;获取多个bloomfilter老化记录,所述bloomfilter老化记录包括:多组一一对应的其他bloomfilter所处的第一iceberg环境和老化前的第二工作记录;获取所述iceberg的第二iceberg环境;依次遍历所述第一iceberg环境;每次遍历时,获取遍历到的所述第一iceberg环境与所述第二iceberg环境之间的环境匹配权重;若所述环境匹配权重和大于等于预设的环境匹配权重和阈值,对遍历到的所述第一iceberg环境对应的所述第二工作记录进行特征提取,获得多个第二工作记录特征;基于所述多个第二工作记录特征,构建第二工作记录特征因子;计算所述第一工作记录特征因子与所述第二工作记录特征因子之间的第一匹配
度;赋予所述第一匹配度所述环境匹配权重,获得目标值;遍历所述第一iceberg环境结束后,累加计算每一所述目标值,获得目标值和;若所述目标值和大于等于预设的目标值和阈值,预测所述bloomfilter即将老化。
28.上述技术方案的工作原理及有益效果为:提取出第一工作记录的第一工作记录特征,第一工作记录特征可以为:插入量每日增幅和插入量集中时间段等。基于第一工作记录特征进行老化预测的方式有两种:一、将第一工作记录特征输入至预设的老化预测模型,获得老化预测结果;老化预测模型为利用大量人工基于bloomfilter的工作记录的工作记录特征进行bloomfilter老化预测的逻辑过程(例如:插入量每日增幅较大)对神经网络模型进行训练至收敛后的人工智能模型,能够代替人工基于bloomfilter的工作记录的工作记录特征进行bloomfilter老化预测。
29.二、基于bloomfilter老化记录进行预测;bloomfilter老化记录中包含多组一一对应的其他bloomfilter所处的第一iceberg环境和老化前的第二工作记录;但是,由于不同bloomfilter的所处iceberg环境不同,bloomfilter老化记录不一定能够直接作为预测依据,因此,获取遍历到的第一iceberg环境与第二iceberg环境之间的环境匹配权重,若环境匹配权重大于等于预设的环境匹配权重和阈值,则当前的bloomfilter与该其他bloomfilter的所处iceberg环境类似,对应第二工作记录可作为预测依据,提取出多个第二工作记录特征;分别将第一工作记录特征和第二工作记录特征以向量形式构建第一工作记录特征因子和构建第二工作记录特征因子,计算第一匹配度,赋予第一匹配度环境匹配权重,获得目标值,赋予计算公式为:,为目标值,为环境匹配权重,为第一匹配度;累加计算目标值,获得目标值和,累加计算公式为:,目标值和,为第个目标值,为目标值的总数目;若所述目标值和大于等于预设的目标值和阈值,说明当前bloomfilter的工作状态接近其他bloomfilter老化前的工作状态,预测bloomfilter即将老化。
30.本技术引入两种方式基于第一工作记录特征进行老化预测,提升了系统的适用性。另外,在以其他;bloomfilter的老化记录作为预测依据时,引入环境匹配权重,避免没有作为预测依据价值的老化记录纳入预测,提升了老化预测精准性,更节省了预测资源。
31.在一个实施例中,获取遍历到的所述第一iceberg环境与所述第二iceberg环境之间的环境匹配权重,包括:对遍历到的所述第一iceberg环境进行特征分析,获得多个第一环境特征;基于所述多个第一环境特征,构建第一环境特征因子;对所述第二iceberg环境进行特征分析,获得多个第二环境特征;基于所述多个第二环境特征,构建第二环境特征因子;计算所述第一环境特征因子与所述第二环境特征因子之间的第二匹配度;查询预设的匹配度-环境匹配权重对照表,确定所述第二匹配度对应的环境匹配权重。
32.上述技术方案的工作原理及有益效果为:获取环境匹配权重时,分别分析提取出第一iceberg环境的多个第一环境特征以
及第二iceberg环境的多个第二环境特征;第一环境特征和第二环境特征可以为:iceberg环境配置文件和iceberg环境配置类型等。同样,以向量形式分别构建第一环境特征因子和第二环境特征因子,计算第二匹配度。引入预设的匹配度-环境匹配权重对照表,匹配度-环境匹配权重对照表中包含有不同第二匹配度对应的环境匹配权重。查表确定第二匹配度对应的环境匹配权重。提升了环境匹配权重确定的确定效率。
33.本发明实施例提供了一种减少iceberg的upsert功能生成equality-deletes的系统,如图6所示,包括:构建模块1,用于当iceberg的upsert功能开启时,构建bloomfilter;检测模块2,用于基于所述bloomfilter,检测数据源中的每条insert数据是否为预设集合中的一员;插入模块3,用于若是,将对应所述insert数据的equality-delete插入目的表。
34.在一个实施例中,所述构建模块1构建bloomfilter,包括:获取分区键和表属性;基于所述分区键和所述表属性,构建bloomfilter。
35.在一个实施例中,减少iceberg的upsert功能生成equality-deletes的系统,还包括:恢复模块,用于当iceberg中flink集群重启和/或taskmanager节点重启和/或flink-job故障重启时,恢复所述bloomfilter。
36.在一个实施例中,减少iceberg的upsert功能生成equality-deletes的系统,还包括:重建模块;其中,所述重建模块执行如下操作:获取所述bloomfilter的第一工作记录;基于所述第一工作记录,对所述bloomfilter进行老化预测;当预测到所述bloomfilter即将老化时,对所述bloomfilter进行老化检测;当检测到所述bloomfilter老化时,重新构建新的bloomfilter。
37.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献