Shell脚本给Datax的job文件传参

 

当前有一个需求,读取HDFS中的分区数据,然后将数据写入到MongoDB。

由于要求每次导入Mongo的是增量的数据,但HDFS中没有相应的字段对数据进行标识哪些是新增的。需要依据相应的策略去判断相应的增量数据。

通过Hive的SQL将每天的全量数据与历史的增量数据进行关联(LEFT OUTER JOIN)where条件是右表的关联字段IS NULL,而关联条件是基于判重的字段组合生成MD5,以md5进行数据是否是新增数据的判断依据。

SELECT
    *
FROM olap.community_six t1
LEFT JOIN olap.community_six_inc t2 ON t1.md5 = t2.md5

得到新增数据后,写入以日期为分区字段的新增数据表相应的分区中。通过DataX抽取增量数据写入Mongo,但是要求每天读取当天的分区,避免导入重复的数据。

以下为shell脚本:

#!/bin/bash

TODAY=`date +"%Y-%m-%d"`

python /export/servers/datax/bin/datax.py -p "-DTODAY=${TODAY}" \
/export/servers/datax/job/deal.json

 以下为DataX的job文件中需要传入动态参数的地方:

"reader": {
       "name": "hdfsreader",
       "parameter": {
       "path":"/user/hive/warehouse/olap.db/community_six/update_date=${TODAY}/*",
       "defaultFS": "hdfs://10.66.202.88:9000"

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值