关于Java使用ClickHouse数据库URL参数问题

0 阅读1分钟

说明

首先说明我使用的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参数需要添加项相应前缀