您现在的位置是:课程教程文章
hive支持mongodb吗
2023-12-18 18:14课程教程文章 人已围观
-
4天数据仓库Hive从入门到企业实操教程
4天数据仓库Hive从入门到企业实操教程学习资料和技术交流请与老师QQ沟通1586281525 本套大数据架构师系列教程历经五... -
【云知梦】MongoDB数据库/NoSQL实战应用
【云知梦】MongoDB数据库/NoSQL实战应用MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提... -
从0学习mongodb4运维与开发
从0学习mongodb4运维与开发1 mongo在Linux下的安装 2 mongo如何进行增删改查 3 mongo使用管道和聚合 4 mongo复制集... -
【赵强老师】在MongoDB中使用游标
【赵强老师】在MongoDB中使用游标MongoDB有一个很重要的特性就是游标Cursor。db.collection.find()方法将返回一个游标。...
hive支持mongodb,具体的连接方法如下:
创建基于MongoDB的Hive表是通过MongoStorageHandler来处理的。它同样处理从Hive表里查询与插入数据(通过select与insert)。
CREATE [EXTERNAL] TABLE <tablename> (<schema>) STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler' [WITH SERDEPROPERTIES('mongo.columns.mapping'='<JSON mapping>')] TBLPROPERTIES('mongo.uri'='<MongoURI>');
有两种方式来指定所需连接的Mongo Collection。
1. 在上述示例里面,通过mongo.uri这个表属性来指定,属性的值填入的是MongoDB connection string,通过它来指向具体的collection。这种方式会将这个URI存入表的metadata里面,如果需要填写连接的一些认证信息(如username:password等),该方式不太适合。
2. 第二种方式是把connection string填入一个properties文件,如:
# HiveTable.properties mongo.input.uri=mongodb://...
然后提供这个文件的路径给mongo.properties.path这个表参数,如
CREATE TABLE ... TBLPROPERTIES('mongo.properties.path'='HiveTable.properties')
备注:在创建相应Hive表时所引用的MongoDB collection不一定要空的。
在创建Hive表的时候,也可以选择性的指定MongoDB collection里的字段与Hive的列字段或struct字段的映射。指定的方式是在SERDEPROPERTIES里通过mongo.columns.mapping属性来指定。在创建基于BSON文件的Hive表时也可以用到。
如果创建的表是EXTERNAL的,那么在Hive里删除这张表时,不会影响MongoDB里面的数据,只会删除这张表的metadata。如果没有指定EXTERNAL,那么删除表的时候会连带MongoDB里的数据一并删除,因此最好是指定创建的表为EXTERNAL。
课程教程:hive支持mongodb吗下一篇:没有了