场景如题
遇到的问题
mongodb中createTime字段是int类型 自定义模板中运用mongo的时间处理函数总是出错
非init 类型,可以直接用时间处理函数一个节点去尝试
解决方案
同步任务节点 添加前置任务节点shell脚本中做时间处理,获取时间
前置节点 SHELL节点
stime=$(($(date -u -d "${start} 00:00:00" +%s)*1000))
etime=$(($(date -u -d "${end} 00:00:00" +%s)*1000))
suffix=$(date -u -d "${start} 00:00:00" +"%Y_%m")
echo $stime
echo $etime
echo $suffix
echo "#{setValue(startTime=${stime})}"
echo "#{setValue(endTime=${etime})}"
echo "#{setValue(tableSuffix=${suffix})}"
同步任务节点
自定义同步模板
{
"job": {
"setting": {
***
},
"content": [
{
"reader": {
"name": "mongodbreader",
"parameter": {
"address": [
"***"
],
"userName": "***",
"userPassword": "****",
"dbName": "****",
"collectionName": "table_${tableSuffix}",
"column": [
{
"name": "startTime",
"type": "int"
},
{
"name": "createTime",
"type": "int"
}
],
"query":"{
'createTime':{
'$gte': ${startTime},
'$lt':${endTime}
}
}"
}
},
"writer": {
"name": "clickhousewriter",
"parameter": {
"username": "***",
"password": "***",
"column": [
"startTime",
"createTime"
],
"connection": [
{
"jdbcUrl": "***"
"table": ["***"]
}
]
}
}
}
]
}
}
总结
不一定是正常方案,大家看个乐就行