datax新增了kuduwriter
但是很 *** 蛋的是没有示例。但是代码都写好了。
我们直接根据源码取写json就行。
{ "job": { "setting": { "speed": { "channel": 10 } }, "content": [ { "reader": { "name": "oraclereader", "parameter": { "username": "${username}", "password": "${password}", "column":["*" ], "where": " LAST_UPDATE_DATESYSDATE-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。。。自行研究把。。
如果帮到你点个赞
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)