datax新增了kuduwriter
但是很操蛋的是没有示例。但是代码都写好了。
我们直接根据源码取写json就行。
{
"job": {
"setting": {
"speed": {
"channel": 10
}
},
"content": [
{
"reader": {
"name": "oraclereader",
"parameter": {
"username": "${username}",
"password": "${password}",
"column":["*" ],
"where": " LAST_UPDATE_DATE <SYSDATE AND LAST_UPDATE_DATE>SYSDATE-7",
"connection": [
{
"table": ["GL.gl_balances"],
"jdbcUrl": [
"${jdbcUrl}"
]
}
]
}
},
"writer": {
"name": "kudu11xwriter",
"parameter": {
"kuduConfig": "{\"kudu.master_addresses\":\"${kudu_master_addresses}\",\"haveKerberos\":\"true\",\"kerberosKeytabFilePath\":\"${kerberosKeytabFilePath}\",\"kerberosPrincipal\":\"${kerberosPrincipal}\"}",
"table": "odserpdata_kd.gl_balances",
"writeMode": "upsert",
"column": [
{"name": "ledger_id", "type": "string", "primarykey": true},
{"name": "code_combination_id", "type": "string", "primarykey": true},
{"name": "currency_code", "type": "string", "primarykey": true},
{"name": "period_name", "type": "string", "primarykey": true},
{"name": "actual_flag", "type": "string", "primarykey": true},
{"name": "last_update_date", "type": "string"},
{"name": "last_updated_by", "type": "string"},
{"name": "budget_version_id", "type": "string"},
{"name": "encumbrance_type_id", "type": "string"},
{"name": "translated_flag", "type": "string", "primarykey": true},
{"name": "revaluation_status", "type": "string"},
]
}
}
}
]
}
}
注意
1.kuduconfig这里的值是string 不是config。。。 后面源码会把这个字符串解析成hashmap….
感觉这里写的很蠢。 还有那个havakeberos 值是string 不是bool
2.注意writer这里column.name的值要小写。
3.注意源码Kudu11xHelper.java 56,57行要改,否则会报类型转化错误
4.KuduWriterTask 122行左右需要加上decimal类型。同时我这里设置了精度最多18 因为kudu也是这样。按自己需求。因为oracle有的是number类型,小数点很长。
5.如果写的速度过慢可以设置batch fetchsize。。。自行研究把。。
如果帮到你点个赞
版权声明:本文为cclovezbf原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。