ClickHouse异常解决-code: 1002

项目场景:

错误 [1002]:
org.springframework.jdbc.UncategorizedSQLException: \n### Error querying database. Cause: ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: 端口号, port: 8123; 端口号:8123 failed to respond\n### The error may exist in class path resource [mapper/monitor/IotDeviceDataMapper.xml]\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters

问题描述

查询ClickHouse数据时部分报异常,部分不报异常,

 
        <dependency>
            <groupId>ru.yandex.clickhousegroupId>
            <artifactId>clickhouse-jdbcartifactId>
            <version>0.1.53version>
        dependency>

原因分析:

错误的sql复制下来粘贴导客户端也执行不了,报和项目同样的错

ClickHouse异常解决-code: 1002_第1张图片

通过对sql分析结果

1,发现sql中多了许多ClickHouse识别不了的占位符空格等字段
ClickHouse异常解决-code: 1002_第2张图片

解决方案:

把占位符之类的数据想办法去掉,
其中有两个连续的foreach 和 if 标签
利用代码逻辑去掉连续的标签,

经过修改打印的sql正确,项目运行发现还是会报错,
复制打印报错的sql放到客户端中能够执行成功
经过分心是jdbc版本出现问题
修改版本

        
        <dependency>
            <groupId>ru.yandex.clickhousegroupId>
            <artifactId>clickhouse-jdbcartifactId>
            <version>0.2.6version>
        dependency>

也许直接改变版本也能把占位符自动给去掉,但是没有经过验证。后期在遇到类似的问题可以验证一下。

你可能感兴趣的:(clickhouse,java,数据库)