出现问题的原因和注意事项
使用clickhousereader读取数据时报错信息为:com.alibaba.datax.plugin.reader.clickhousereader.LocalStrings, locale zh_CN。
出现原因是dataX不支持clickhousereader,但可以使用rdbmsreader替代clickhousereader实现从clickhouse同步数据到mysql,
但要注意一点:一定要确定需要同步的数据里没有struct结构体数据,否则,读取结构体数据不仅会导致同步后的结构体数据乱码,更会导致同步表的条数减少,造成数据丢失。
万万要确定使用此方法不能同步struct结构体数据
以下是解决方法:
datax缺少clickhouse reader插件
1、把clickhousewriter/libs下的所有jar包复制到rdbmsreader/libs下,同名jar包直接替换,另外,删掉rm -f guava-r05.jar这个包,否则会报错
2、修改plugin.json文件:在"driver" 增加 "ru.yandex.clickhouse.ClickHouseDriver"
放一个示例
{
"job": {
"content": [
{
"reader": {
"name": "rdbmsreader",
"parameter": {
"column": ["column1", "column2"],
"connection": [
{
"jdbcUrl": ["jdbc:clickhouse://172.xx.xxx.x:8123/databasename"],
"table": ["table1"]
}
],
"password": "123456",
"username": "default",
"where": ""
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": ["column1", "column2"],
"connection": [
{
"jdbcUrl": "jdbc:mysql://172.xx.xxx.x:3306/databasename",
"table": ["table1"]
}
],
"password": "123456",
"preSql": [],
"session": [],
"username": "root",
"writeMode": "insert"
}
}
}
],
"setting": {
"speed": {
"channel": "1"
}
}
}
}