支持HIVE自动分区的加载系统及其实现方法技术方案

技术编号:21398992 阅读:18 留言:0更新日期:2019-06-19 07:00
本发明专利技术公开了一种支持HIVE自动分区的加载系统及其实现方法,所述方法包括:数据源模块,用于接收数据,对数据进行预备分类,按照数据的来源和数据头上所携带的配置信息进行预处理,得到数据所需要写入的对应的HIVE表,将映射关系放入到数据头中,并将数据放入到数据通道;数据通道,用于作为所述数据源模块和所述输出接口模块之间的数据通道;输出接口模块,用于从数据通道中获取数据,对数据反序列化,进行进一步的校验,依据加载系统在HIVE中所获取的分区设置计算出分区,将与数据所对应的数据库名和表名一起作为数据写入hdfs中的key值,依据该key值,从文件写入管理模块中获取对应的文件句柄,将数据写入至hdfs或者其他存储介质中。

【技术实现步骤摘要】
支持HIVE自动分区的加载系统及其实现方法
本专利技术涉及大数据处理
,尤其涉及一种支持HIVE自动分区的加载系统及其实现方法。
技术介绍
随着计算机技术的不断发展和信息化程度的不断提高,互联网快速发展,网络信息呈指数级增长,面向海量数据存储及应用也随之蓬勃发展。在大数据处理领域中,ApacheHive作为建立在Hadoop上的开源数据仓库框架有着较为广泛的使用。hive提供类SQL语言HQL,可以方便的读取、写入和管理Hadoop中的海量数据集,越来越多的数据存储系统以hive作为数据元数据管理仓库和数据处理分析工具。随着使用的深入,单纯依靠hive的一些原生功能,逐渐不再能满足对于大量数据快速便捷的需求。
技术实现思路
本专利技术实施例提供一种支持HIVE自动分区的加载系统及其实现方法,用以解决现有技术中的上述问题。本专利技术实施例提供一种支持HIVE自动分区的加载系统,包括:数据源模块,用于接收数据,对数据进行预备分类,按照数据的来源和数据头上所携带的配置信息进行预处理,得到数据所需要写入的对应的HIVE表,将映射关系放入到数据头中,并将数据放入到数据通道;数据通道,用于作为所述数据源模块和所述输出接口模块之间的数据通道;输出接口模块,用于从数据通道中获取数据,对数据反序列化,进行进一步的校验,依据加载系统在HIVE中所获取的分区设置计算出分区,将与数据所对应的数据库名和表名一起作为数据写入hdfs中的key值,依据该key值,从文件写入管理模块中获取对应的文件句柄,将数据写入至hdfs或者其他存储介质中。优选地,分区计算的类型具体包括:等值分区、hash分区、时间间隔分区、以及转换时间分区。优选地,所述数据源模块具体用于:通过从kafka中拉取数据或者httpserver服务接受数据的方式进行数据的接收。优选地,所述系统进一步包括:创建模块,用于创建HIVE表,在建表语句中指定hive表所需要的分区类型,需要计算的原字段,并将上述信息设置在HIVE表的tblpropertie中,将schema注册在shcemaregistry服务中,其中,shcema是数据加载过程中数据的描述标准,需要数据的结构和类型信息描述为schema,在加载系统从kafka或者其他方式中获取到数据后,获取到对应的schema,依此对数据进行反序列化处理,得到所需要的数据;优选地,所述创建模块具体用于:在创建HIVE表的时,通过partitionedby设定表的分区字段,在tblproperties中通过’_partition.a’=’function(b,paramer)’属性指定计算出该分区字段所需要的原始数据列,分区的类型、方法,其中,所述表属性中还配置有多个分区方法以支持HIVE的多级分区。优选地,所述数据源模块具体用于:加载系统在启动后,在初始化过程中与HIVEmetastore交互获取到对应HIVE表的相应元数据,然后提取加载系统写入数据所需要的各种参数配置和表属性,其中包括HIVE表的分区相关信息;在系统的元数据管理模块中将HIVE表与分区的映射关系进行缓存。优选地,所述输出接口模块具体用于:在数据流由数据源模块经过数据通道进入输出接口模块后,判断HIVE表是否需要计算的分区,如果需要则按照对应的方法对HIVE表所有的分区依次进行计算,直至得到最终的分区结果;并通过与HIVEmetastore的交互判断此分区是否已经在HIVE表中存在,如果不存在则需要在HIVE表中添加此分区,并以此分区作为分类依据,将数据放入到不同的缓存区中;最终依次将缓存中的数据写入的HIVE分区对应的不同的hdfs路径中,完成数据的写入。本专利技术实施例还提供一种支持HIVE自动分区的加载系统实现方法,包括:步骤1,通过数据源模块接收数据,对数据进行预备分类,按照数据的来源和数据头上所携带的配置信息进行预处理,得到数据所需要写入的对应的HIVE表,将映射关系放入到数据头中,并将数据放入到数据通道;步骤2,通过输出接口模块从数据通道中获取数据,对数据反序列化,进行进一步的校验,依据加载系统在HIVE中所获取的分区设置计算出分区,将与数据所对应的数据库名和表名一起作为数据写入hdfs中的key值,依据该key值,从文件写入管理模块中获取对应的文件句柄,将数据写入至hdfs或者其他存储介质中。优选地,所述方法进一步包括:创建HIVE表,在建表语句中指定hive表所需要的分区类型,需要计算的原字段,并将上述信息设置在HIVE表的tblpropertie中,将schema注册在shcemaregistry服务中,其中,shcema是数据加载过程中数据的描述标准,需要数据的结构和类型信息描述为schema,在加载系统从kafka或者其他方式中获取到数据后,获取到对应的schema,依此对数据进行反序列化处理,得到所需要的数据;在创建HIVE表的时,通过partitionedby设定表的分区字段,在tblproperties中通过’_partition.a’=’function(b,paramer)’属性指定计算出该分区字段所需要的原始数据列,分区的类型、方法,其中,所述表属性中还配置有多个分区方法以支持HIVE的多级分区。优选地,步骤1具体包括:加载系统在启动后,在初始化过程中与HIVEmetastore交互获取到对应HIVE表的相应元数据,然后提取加载系统写入数据所需要的各种参数配置和表属性,其中包括HIVE表的分区相关信息;在系统的元数据管理模块中将HIVE表与分区的映射关系进行缓存;步骤2具体包括:在数据流由数据源模块经过数据通道进入输出接口模块后,判断HIVE表是否需要计算的分区,如果需要则按照对应的方法对HIVE表所有的分区依次进行计算,直至得到最终的分区结果;并通过与HIVEmetastore的交互判断此分区是否已经在HIVE表中存在,如果不存在则需要在HIVE表中添加此分区,并以此分区作为分类依据,将数据放入到不同的缓存区中;最终依次将缓存中的数据写入的HIVE分区对应的不同的hdfs路径中,完成数据的写入。采用本专利技术实施例,通过基于Hive的对实时加载的数据进行自动分区存储的实现方法,对实时加载的数据进行自动的分区计算。为数据加载到hive中时的分区计算需求提供有效的解决方案,免去了后期数据处理时人工手动计算的繁琐步骤,也很好的提升了数据检索引擎的检索效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是本专利技术实施例的系统的整体架构示意图;图2是本专利技术实施例的数据处理流程图;图3是本专利技术实施例的加载系统框架图。具体实施方式本专利技术实施例提供了一种基于Hive的对实时加载的数据进行自动分区存储的实现方法。本专利技术实施例实现了对实时加载的数据进行分区计算,支持基于列级别的数本文档来自技高网...

【技术保护点】
1.一种支持HIVE自动分区的加载系统,其特征在于,包括:数据源模块,用于接收数据,对数据进行预备分类,按照数据的来源和数据头上所携带的配置信息进行预处理,得到数据所需要写入的对应的HIVE表,将映射关系放入到数据头中,并将数据放入到数据通道;数据通道,用于作为所述数据源模块和所述输出接口模块之间的数据通道;输出接口模块,用于从数据通道中获取数据,对数据反序列化,进行进一步的校验,依据加载系统在HIVE中所获取的分区设置计算出分区,将与数据所对应的数据库名和表名一起作为数据写入hdfs中的key值,依据该key值,从文件写入管理模块中获取对应的文件句柄,将数据写入至hdfs或者其他存储介质中。

【技术特征摘要】
1.一种支持HIVE自动分区的加载系统,其特征在于,包括:数据源模块,用于接收数据,对数据进行预备分类,按照数据的来源和数据头上所携带的配置信息进行预处理,得到数据所需要写入的对应的HIVE表,将映射关系放入到数据头中,并将数据放入到数据通道;数据通道,用于作为所述数据源模块和所述输出接口模块之间的数据通道;输出接口模块,用于从数据通道中获取数据,对数据反序列化,进行进一步的校验,依据加载系统在HIVE中所获取的分区设置计算出分区,将与数据所对应的数据库名和表名一起作为数据写入hdfs中的key值,依据该key值,从文件写入管理模块中获取对应的文件句柄,将数据写入至hdfs或者其他存储介质中。2.如权利要求1所述的系统,其特征在于,分区计算的类型具体包括:等值分区、hash分区、时间间隔分区、以及转换时间分区。3.如权利要求1所述的系统,其特征在于,所述数据源模块具体用于:通过从kafka中拉取数据或者httpserver服务接受数据的方式进行数据的接收。4.如权利要求1所述的系统,其特征在于,所述系统进一步包括:创建模块,用于创建HIVE表,在建表语句中指定hive表所需要的分区类型,需要计算的原字段,并将上述信息设置在HIVE表的tblpropertie中,将schema注册在shcemaregistry服务中,其中,shcema是数据加载过程中数据的描述标准,需要数据的结构和类型信息描述为schema,在加载系统从kafka或者其他方式中获取到数据后,获取到对应的schema,依此对数据进行反序列化处理,得到所需要的数据。5.如权利要求4所述的系统,其特征在于,所述创建模块具体用于:在创建HIVE表的时,通过partitionedby设定表的分区字段,在tblproperties中通过’_partition.a’=’function(b,paramer)’属性指定计算出该分区字段所需要的原始数据列,分区的类型、方法,其中,所述表属性中还配置有多个分区方法以支持HIVE的多级分区。6.如权利要求5所述的系统,其特征在于,所述数据源模块具体用于:加载系统在启动后,在初始化过程中与HIVEmetastore交互获取到对应HIVE表的相应元数据,然后提取加载系统写入数据所需要的各种参数配置和表属性,其中包括HIVE表的分区相关信息;在系统的元数据管理模块中将HIVE表与分区的映射关系进行缓存。7.如权利要求6所述的系统,其特征在于,所述输出接口模块具体用于:在数据流由数据源模块经过数据通道进入输出接口模块后,判断HIVE表是否需要计算的分区,如果需要则按照对应的方法对HIVE表所有的分区依次进行计算,直至得到最终的分区结果;并通过与HIVEmetastor...

【专利技术属性】
技术研发人员:刘欣然张鸿马秉楠吕雁飞惠榛孟宪文
申请(专利权)人:国家计算机网络与信息安全管理中心
类型:发明
国别省市:北京,11

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

1