【技术实现步骤摘要】
一种流处理方式支持动态读取hive表数据的方法及装置
[0001]本专利技术涉及计算机
,尤其涉及一种流处理方式支持动态读取hive表数据的方法及装置。
技术介绍
[0002]随着科技的发展,很多场景应用的数据是无限的,批处理已经不能满足这些场景的需求,随着市场的需求增加,流处理引擎日渐火爆。流处理引擎,用于实时计算,来一条数据就处理一条,不用像批处理一样,得等待一批数据到达后再进行处理,流处理引擎进行实时计算的优势使得流处理引擎在网络监控和电子商务等应用广泛。
[0003]hive是基于hadoop的数据仓分析处理工具,并且可以用sql语句进行查询;因为hive的底层是封装流hadoop,hive的数据都存储在hadoop文件中,所以有很好的批处理的能力,但是hive对于流处理并不支持,对于不同的分区的数据,每个分区为一个文件夹,文件夹下的文件即为存储的数据;而在hive中,对于老分区中新加入的数据,会在hdfs中自动新建文件,不能在已经存在的文件下添加数据,因此流处理引擎对于hive表的老分区中新添加的文件 ...
【技术保护点】
【技术特征摘要】
1.一种流处理方式支持动态读取hive表数据的方法,其特征在于,包括:在流处理引擎开始读取hive表之前,设置patitionMap,用于装载整个读取流程中已经读取过的分区名和相应分区中已经读取过的最大的文件修改时间;设置partitionValueList,用于装载当前轮待读取的分区名、相应分区中待读取文件的文件修改时间和相应待读取文件的路径;设置第一轮读取中的时间戳为预设初始值;在流处理引擎读取hive表的过程中,若patitionMap中能够找到partitionValueList中待读取的分区名,则判定相应待读取的分区为老分区;若老分区中待读取文件的文件修改时间大于patitionMap中相应分区中已经读取过的最大的文件修改时间,且老分区中待读取文件的文件修改时间大于当前轮时间戳,则判定老分区中待读取文件为老分区新文件,按partitionValueList中相应待读取文件的路径进行老分区新文件的读取;待当前轮的待读取文件读取完毕后,清空partitionValueList,更新patitionMap中的相应分区中已经读取过的最大的文件修改时间,将时间戳更新为与当前轮所有已经读取过的文件中文件修改时间最大的文件相对应的文件修改时间。2.根据权利要求1所述的流处理方式支持动态读取hive表数据的方法,其特征在于,在流处理引擎读取hive表的过程中,若patitionMap中找不到partitionValueList中待读取的分区名,则判定相应待读取的分区为新分区,相应分区中待读取文件为新分区文件,相应待读取文件的路径设置为空字符串,依据新分区名在hadoop中进行新分区文件的读取。3.根据权利要求1所述的流处理方式支持动态读取hive表数据的方法,其特征在于,在流处理引擎读取hive表的过程中,由hadoop从hive表中拿取全部的分区名,与patitionMap中的分区名进行对比,找到遗漏分区名,将遗漏分区名和相应分区中的最大的文件修改时间写入lackPartition;若lackPartition不为空,则流处理引擎优先根据lackPartition进行遗漏分区的文件的读取,完成相应分区的...
【专利技术属性】
技术研发人员:赵方杨,高东升,梅纲,
申请(专利权)人:武汉达梦数据库股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。