HIVE数仓ETL之MongoDB

前状:平台目前还没有完善的mongodb数据同步方式,在拉取公司埋点系统countly数据时,起初通过编写MapReduce读取mongodb数据转化成BSONObject写入到HDFS,在hive中创建映射表,使得BSON格式数据可以通过hive sql方式进行查询通过这种方式存在弊端:1.执行MapReduce耗时太长,这里一部分是网络原因,还有一部分是起了太多的map 任务,也就
摘要由CSDN通过智能技术生成
前状:
平台目前还没有完善的mongodb数据同步方式,在拉取公司埋点系统countly数据时,起初通过编写MapReduce读取mongodb数据转化成BSONObject写入到HDFS,在hive中创建映射表,使得BSON格式数据可以通过hive sql方式进行查询
通过这种方式存在弊端:
1.执行MapReduce耗时太长,这里一部分是网络原因,还有一部分是起了太多的map 任务,也就是将任务切分的过细,每个map只处理很少的任务,耗费太多资源
2.MongoDB与Hadoop部署在不同的服务器上,服务器的带宽改变了,经常在MapReduce执行的过程中中断,报SocketTimeout错误,增大连接超时参数timeout值得到一些缓解,但还是存在次此问题
改善方式:
在数据拉取过程使用mongodb自有dump方式
mongodump 是MongoDB备份的一种方式,可以dump下整个数据库,也可以指定dump某个collection,dump下来的每个collection 都是BSON文件
执行脚本如下:
mongodump -h $host -u $user -p $password -d $db -c $collection -o $output -q $queryS
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值