datax数据同步oracle到kudu

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。