说明
首先说明我使用的ClickHouse的jdbc版本是0.9.4, 也就是说文章内容只对该版本及以上生效,其他是否生效就有各位大佬自己验证了
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.9.4</version>
</dependency>
经过
近期因为业务需要公司使用了ClickHouse数据库,但在一次查询过程中因为数据量过大导致查询报错了,以下是报错信息:
Code: 62. DB::Exception: Max query size exceeded (can be increased with the `max_query_size` setting): Syntax error: failed at position 262135 ( ) (line 6765, col 19):
通过AI查询是查询字符串过大了,同时AI给出了解决方案:在JDBC URL 中添加max_query_size 参数,但是经过测试还是不行。后面就debug发现控制台上存在警告信息
WARN c.c.c.api.ClientConfigProperties(parseConfigMap:344) - Unknown and unmapped config properties
并找到相关警告的源码位置:
发现在ClickHouse读取URL上的配置参数时会匹配前缀(上图圈出),前缀如下图
最后我在max_query_size前面拼接上clickhouse_setting_变成了clickhouse_setting_max_query_size。嘿嘿,它生效了,查询没报错了。
结论
在ClickHouse的jdbc版本0.9.4添加url参数需要添加项相应前缀