datax数据同步oracle到kudu

datax数据同步oracle到kudu,第1张

datax数据同步oracle到kudu

datax新增了kuduwriter

但是很 *** 蛋的是没有示例。但是代码都写好了。

我们直接根据源码取写json就行。

{
  "job": {
    "setting": {
      "speed": {
        "channel": 10
      }
    },
    "content": [
      {
        "reader": {
          "name": "oraclereader",
          "parameter": {
            "username": "${username}",
            "password": "${password}",
            "column":["*" ],
            "where": " 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。。。自行研究把。。

如果帮到你点个赞 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5697635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存