Shell指令碼給Datax的job檔案傳參

2021-09-22 14:10:32 字數 755 閱讀 3157

當前有乙個需求,讀取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=$" \

/export/servers/datax/job/deal.json

以下為datax的job檔案中需要傳入動態引數的地方:

"reader": /*",

"defaultfs": "hdfs:"

如何給shell指令碼掛引數

最近在學習caffe的使用,有很多任務具,也有很多資料要分析處理,所以就想把所有程式化的工作都整理成指令碼或者工具,方便以後使用 今天要說的是如何在自己編寫的shell指令碼裡輸入引數,這樣就可以增強指令碼的使用範圍,不用反覆開啟更改 假設我們需要這樣乙個指令碼 執行指令碼,輸入某人的姓名,答應出 ...

如何給shell指令碼傳引數

用j a寫了乙個壓力測試的小程式 其實就是用j a的訊號量實現 可傳遞併發數之類的入參,放到linux環境上執行,編寫了乙個小小的shell指令碼,可以傳入併發數的入參,網上參考這文章,特記錄。一.執行 touch test.sh 建立乙個新的shell指令碼 指令碼test.sh的內容如下 bin...

快速給shell指令碼加上使用提示

我們只需通過在shell指令碼前面加上如下的 即可 bin bash my script does one thing well usage my script options input file to read.output file to write.use for stdout.h show...