基于Hive分区表实现物化视图性能优化的方法及系统技术方案

技术编号:26478629 阅读:47 留言:0更新日期:2020-11-25 19:22
本发明专利技术公开了基于Hive分区表实现物化视图性能优化的方法及系统,其方法包括如下步骤:1、用户需要将原表设为分区表,系统中称为高性能表,指定分区字段,分区粒度等信息,底层根据用户的配置将原表转化成分区表;2、在原表有数据变化,数据追加、修改或删除时将变化的信息记录下来,包括变化的分区,数据量等;3、在执行物化视图更行时根据有数据变化的分区的数据进行计算,将计算结果替换原物化视图对应分区的数据,得到最终的数据。其系统包括:1、原表存储数据类型转化装置;2、物化视图映射逻辑配置装置。本专利极大的减少了原数据量非常大时物化视图的刷新时间,极大的提高了物化视图刷新的性能;降低了用户的使用门槛,对不懂数据库,不懂编程的用户非常友好。

【技术实现步骤摘要】
基于Hive分区表实现物化视图性能优化的方法及系统
本专利技术涉及信息技术数据集成领域,具体涉及一种基于Hive分区表技术实现物化视图性能优化的方法及系统。
技术介绍
现阶段,以ApacheHive分区表作为数据库创建的物化视图,在原表数据更新,触发物化视图更新时需要重新计算全量数据,无法精准的基于变化的分区数据做计算从而更新物化视图。但是实际使用场景往往是原表不断的数据追加,大部分分区的数据没有变化,如果每次更新都全量进行重新计算,无疑会进行很多重复且没有意义的计算,浪费计算资源,同时也会造成物化视图刷新执行时间长,用户等待时间长,降低用户的使用体验。如果能在原表更新时,仅根据有数据变化的分区计算变化的数据,然后将计算结果更行物化视图的数据,那么就可以避免重复计算,减少计算资源的浪费,提升用户的使用体验。
技术实现思路
为实现上述目的,本专利技术提供如下技术方案:基于Hive分区表实现物化视图性能优化的方法及系统,其方法包括如下步骤:1、用户需要将原表设为分区表,系统中称为高性能表,指定分区字段,分区粒度等信息,底层根据用户的配置将原表转化成分区表;2、在原表有数据变化,数据追加、修改或删除时将变化的信息记录下来,包括变化的分区,数据量等;3、在执行物化视图更行时根据有数据变化的分区的数据进行计算,将计算结果替换原物化视图对应分区的数据,得到最终的数据。其系统包括:1、原表存储数据类型转化装置,用户可以按照自己的需求配置分区信息,系统按照用户的配置将原表转化为分区表;2、物化视图映射逻辑配置装置,用户可以通过界面拖拽的方式配置物化视图的执行逻辑,操作简单,方便。本专利所述的基于Hive分区表实现物化视图性能优化的方法及系统,解决了现有基于Hive数据库创建物化视图,无法只根据有数据变化的分区更新视图,存在大量重复计算,造成计算资源浪费,性能低下的问题,极大的减少了原数据量非常大时物化视图的刷新时间,极大的提高了物化视图刷新的性能;另一方面,本专利技术提供的物化视图配置装置,允许用户以可视化界面交互的方式设置,将原表改成高性能表,且支持用户以可视化界面交互的方式配置物化视图的映射逻辑,取代传统代码配置,手写逻辑的方式,降低了用户的使用门槛,对不懂数据库,不懂编程的用户非常友好。附图说明图1为本专利技术的方法流程图图2为本专利技术的处理机制流程图图3为本专利技术的第一个原表配置示意图图4为本专利技术的第二个原表配置示意图图5为本专利技术的映射逻辑配置示意图具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的一种基于Hive数据库创建物化视图的方法流程图,如图1所示,该方法包括:S1、通过界面化操作,经原表转化为高性能表(分区表),此后,原表如果有数据更新,会记录数据变化的分区及其他相关信息;S2、在物化视图更新时会根据判断原表的数据是否有变化,如果没有变化则直接跳过执行;S3、如果有变化会根据变动的分区的数据进行计算,更新物化视图对应分区的数据,得到最终的结果。具体实现为,在步骤S1中,根据用户配置的分区信息,在原表数据下次更新时,将原表的数据删除,创建一个带有分区字段的新的分区表。之后原表数据每次更新都会记录本次更新信息,包括变动数据分区信息,数据量大小等等信息。在物化视图更新时,如步骤S2所示,会根据S1中记录的信息,判断是否要根据分区信息来更新物化视图。如果没有分区记录信息,则按普通物化视图更新;如果分区数据量没有变化,跳过执行。如果是分区表且数据有变化,如步骤S3所示,会根据S1中记录的有数据变化的分区,创建零时表1,基于零时表1做数据的处理计算,得到的结果保存为零时表2,删除物化视图对应的分区的数据,将零时表2中的数据路径改成物化视图对应分区的路径,更新物化视图的元数据信息。图2为本专利技术一个实施例的基于Hive数据库创建物化视图的处理机制流程图。在物化视图的具体实现上,将原表有变化的分区的数据抽出来,具化为一张零时表1,零时表中的数据经过计算后的结果保存为零时分区表2,将零时表2的数据的存储文件替换物化视图对应的文件,刷新物化视图的元数据信息。至此,物化视图更新完成。图3为本专利技术一个实施例的基于Hive数据库创建物化视图的第一个原表配置示意图,图4为本专利技术一个实施例的基于Hive数据库创建物化视图的第二个原表配置示意图,用户可以在可视化界面,通过点击能操作轻松的配置原表的相关信息。该系统包括以下关键功能:1、列举当前表的字段信息,用户根据列出的字段信息选取要作为分区字段的字段信息。2、列举分区字段的数据处理方式:日期字段支持自定义分区粒度,可以是年、月、日等;其他类型字段可以选取该字段数据的hash值或数据值本身。图5为本专利技术一个实施例的基于Hive数据库创建物化视图的映射逻辑配置示意图,用户可以在可视化界面,通过拖拽,点击等方式轻松的配置物化视图的相关信息。该系统包括以下关键功能:1、在界面左侧列举物化视图的逻辑处理算子,用户可以通过拖拽的方式将算子连接在原表之后,通过对算子的配置,完成物化视图的逻辑处理及保存。例如:可以对原表数据进行筛选、聚合、过滤以及增删字段等一系列操作。2、支持多个算子的连续处理。用户可以通过算子的不同搭配组合,完成预期的处理逻辑,无需写代码,或者写sql,对普通用户也非常友好。3、画布上的各个接点都支持预览,用户可以在界面上点击预览,查看当前算子处理完后数据的概况,每一步操作的过程中用户都可以及时的查看结果是否符合预期。4、当模型保存后,用户可以点击编辑模型的按钮来自定义物化视图的更新策略,支持定时更新,自动更新,暂停更新。用户可根据自己的需求选择对应的更新策略。5、当鼠标悬浮在界面带有问号的图标上时,会显示功能的介绍及使用说明,降低用户对整个系统的使用门槛。尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本专利技术的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本专利技术的范围由所附权利要求及其等同物限定。本文档来自技高网...

【技术保护点】
1.基于Hive分区表实现物化视图性能优化的方法,其特征在于,其方法包括如下步骤:/n(1)、用户需要将原表设为分区表,系统中称为高性能表,指定分区字段,分区粒度信息,底层根据用户的配置将原表转化成分区表;/n(2)、在原表有数据变化,数据追加、修改或删除时将变化的信息记录下来,包括变化的分区,数据量;/n(3)、在执行物化视图更行时根据有数据变化的分区的数据进行计算,将计算结果替换原物化视图对应分区的数据,得到最终的数据。/n

【技术特征摘要】
1.基于Hive分区表实现物化视图性能优化的方法,其特征在于,其方法包括如下步骤:
(1)、用户需要将原表设为分区表,系统中称为高性能表,指定分区字段,分区粒度信息,底层根据用户的配置将原表转化成分区表;
(2)、在原表有数据变化,数据追加、修改或删除时将变化的信息记录下来,包括变化的分区,数据量;
(3)、在执行物化视图更行时根据有数据变化的分区的数...

【专利技术属性】
技术研发人员:赵恒杰
申请(专利权)人:北京海致网聚信息技术有限公司
类型:发明
国别省市:北京;11

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

1