✅ Mutil Catalog 方式访问Clickhouse数据, 无符号整型字段, 无法查询. 报错对应关系不对.

【Doris 使用环境】测试

【Doris 版本】1.2.3 release, Clickhouse版本: 21.3.6.55

【问题描述】

  • 报错信息:[HY000][1105] errCode = 2, detailMessage = (10.11.32.59)[INTERNAL_ERROR]Fail to convert jdbc type of com.clickhouse.data.value.UnsignedInteger to doris type BIGINT on column: lv3_count. You need to check this column type between external table and doris table.

  • 具体表现:在使用mutil catalog 链接clickhouse的表的时候, 只要查询到无符号整型字段(如UInt8、UInt32), 就会报错说: 类型对应不上. 报错信息如上.

【操作系统】centos7

【机器配置】128内存500G磁盘

【复现路径】

  1. 创建clickhouse catalog

CREATE CATALOG jdbc_clickhouse PROPERTIES (
“type”=“jdbc”,
“user”=“doris_ro”,
“password”=“xxxx”,
“jdbc_url” = “jdbc:clickhouse://clickhouse-default:8123/default”,
“driver_url” = “clickhouse-jdbc-0.4.2.jar”,
“driver_class” = “com.clickhouse.jdbc.ClickHouseDriver”
);

  1. 查询数据, 报错
    select lv3_count from jdbc_clickhouse.test_db.test_table limit 10;

这是因为ClickHouse在4.x的JDBC里把UInt类型改为了com.clickhouse.data.value.x,我们已经在即将发版的1.2.4做了适配,在1.2.3版本的Doris可以先使用0.3.x的clickhouse-jdbc

嗯嗯, 我修改成这样的catalog 配置, 可以读出来无符号整型字段.发现替换了jdbc jar包, be也得重启一下才生效~

CREATE CATALOG jdbc_clickhouse PROPERTIES (
“type”=“jdbc”,
“user”=“doris_ro”,
“password”=“jRhWkF60qt8h”,
“jdbc_url” = “jdbc:clickhouse://clickhouse-default:8123/default”,
“driver_url” = “clickhouse-jdbc-0.3.0.jar”,
“driver_class” = “ru.yandex.clickhouse.ClickHouseDriver”
);