datax 同步mongodb数据库到hive(hdfs)和elasticserch(es)

一、同步环境

1.mongodb版本:3.6.3。(有点老了,后来发现flinkcdc都只能监控一张表,多张表无法监控)
2.datax版本:自己编译的DataX-datax_v202210
3.hdfs版本:3.1.3
4.hive版本:3.1.2

二、同步思路

1.增量数据:需要每隔1小时将mongodb中17个集合的数据同步至hive,因为有数据生成时间,才用datax查询方式,将上一个小时的数据依次循环调用datax同步至hdfs,利用shell脚本和调度器定时装载至hive中形成ods层,并和其他表关联处理形成dwd层,提供给需求方。
2.全量数据:历史数据才用datax编写脚本循环读取+调度+hive动态分区方式同步至hive。因为hive动态分区默认只支持100个分区,我是按小时进行分区的,因此我每次只拉取4天数据,拉取太多报错,编写脚本,需要多少天,拉取多少天。(比较笨的方法,有更好的方式欢迎评论区讨论)

三、datax配置

{
   
   
    "job": {
   
   
        "content": [
          {
   
   
              "reader": {
   
   
                  "name": "mongodbreader",
                  "parameter": {
   
   
                      "address": ["xxxxxxxx:27017"],
                      "authDb": "admin",
                      "userName": "xxxxx",
                      "userPassword": "xxxx",
                      "dbName": "xxxx",
                      "collectionName": "xxxx",
                      "column": [
                          {
   
   
                              "name": "_id",
                              "type": "string"
                          },
                          {
   
   
                              "name": "data",
                              "type": "string"
                          },
                          {
   
   
                              "name": "gid",
                              "type": "string"
                          },
                          {
   
   
                              "name": "text",
                              "type": "string"
                          },
                          {
   
   
                              "name": "time",
                              "type": "bigint"
                          },
                          {
   
   
                              "name": "uid",
                              "type": "string"
                          }
                      ],

                      "query":"{
   
   \"time\":{ \"$gte\": ${start_time}, \"$lt\": ${end_time}}}"

                    }
                },
                "writer": {
   
   
                    "name": "hdfswriter",
                    "parameter": {
   
   
                        "column": [
      
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值