基于Hive实现MongoDB的联表查询的方法及系统技术方案

技术编号:27605280 阅读:33 留言:0更新日期:2021-03-10 10:29
本发明专利技术提供了基于Hive实现MongoDB的联表查询的方法及系统,其中的方法包括以下步骤:S1、目标字段的导出,通过mongoexport命令将MongoDB多张表中的不同的目标字段以Json格式导出;S2、HDFS中数据的导入,通过Sqoop将Json格式的数据导入到HDFS;S3、Hive表中数据的插入,HDFS对数据进行格式校验及转换后,将数据插入到Hive表;S4、在Hive表上对数据进行联表查询。实现将不同表、不同库或不同服务器上的不同数据库的目标字段导出,汇总到同一个Hive库,进行联表查询,解决了空值隐患,实现了跨库联表查询,能提升查询的效率,减少关联查询的局限性。局限性。局限性。

【技术实现步骤摘要】
基于Hive实现MongoDB的联表查询的方法及系统


[0001]本专利技术涉及数据处理
,具体的,本专利技术涉及基于Hive实现MongoDB的联表查询的方法及系统。

技术介绍

[0002]在数据量巨大化的背景下,MongoDB凭借其低消耗、高性能、存储维护便捷的优点已经成为了数据存储的一种主流方式。面对数据的多样化,用户可以选择将所有的字段信息存放在同一张表中,但是这样会导致单表过大,查询效率降低。将不同的数据存放在不同的表中,便于数据的管理,但是这样也会面临一个问题,如果要查询多张表的数据,需要用到联表查询,现有技术中只支持$lookup查询,这种关联查询会把符合条件的inventory文档整体内嵌到聚合框架新生成的文档中,并且新key统一命名为inventory_docs,如果原表中存在key值为空值或者是不存在时,就会导致本次查询失败。特别是当需要对数据做跨库联表查询时,MongoDB无法满足此需求,也正是因此,在用户需要关联查询的时候,往往会查询出一个字段值,然后再拿结果当作查询条件去进行反查以得到目标字段的值。在需要查询数据本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于Hive实现MongoDB的联表查询的方法,其特征在于:包括以下的步骤:S1、目标字段的导出,通过mongoexport命令将MongoDB多张表中的不同的目标字段以Json格式导出;S2、HDFS中数据的导入,通过Sqoop将Json格式的数据导入到HDFS;S3、Hive表中数据的插入,HDFS对数据进行格式校验及转换后,将数据插入到Hive表;S4、在Hive表上对数据进行联表查询。2.如权利要求1所述的基于Hive实现MongoDB的联表查询的方法,其特征在于:所述S1中的目标字段为不同表、不同库或不同服务器上的不同数据库的目标字段。3.如权利要求1所述的基于Hive实现MongoDB的联表查询的方法,其特征在于:所述S2包括以下的步骤:S21、Sqoop将Json数据转换成Json文档;S22、将数据导入到HDFS。4.如权利要求1所述的基于Hive实现MongoDB的联表查询的方法,其特征在于:所述S3包括以下的步骤:S31、通过Hive自身的数据加载命令,将HDFS上的Json文档数据导入到Json格式的Hive表格中,每个字段存储的是Json数据;S32、利用Hive的类SQL和正则表达式,将Json格式的Hive表格中的数据读取转换成oracle格式Hive表所需要的数据;S33、将数据插入到oracle格式的Hive表。5.基于Hive实现MongoDB的联表查询的系统,其特征在于:包括数据导出单元、数据导入单元、数据插入单元和联表查询单元,其中,所述数据导出单元,用于通过mongoexport命令将MongoDB多张表中的不同的目标字段以Json格式导出;所述数据导入单元,与所述数据导出单元连接,用于接收数据导出单元导出的Jso...

【专利技术属性】
技术研发人员:谢小威
申请(专利权)人:银盛支付服务股份有限公司
类型:发明
国别省市:

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

1