itinycheng / flink-connector-clickhouse

Flink SQL connector for ClickHouse. Support ClickHouseCatalog and read/write primary data, maps, arrays to clickhouse.
Apache License 2.0
347 stars 149 forks source link

clickhouse表中有bool类型,FlinkSQL读取报错? 请问这个该如何解决呢? #91

Closed ShangBaiShuYao closed 2 weeks ago

ShangBaiShuYao commented 11 months ago

clickhouse表中有bool类型,读取报错? 请问这个该如何解决呢?
报错内容: java.io.IOException: Couldn't read data from resultSet. at org.apache.flink.connector.clickhouse.internal.ClickHouseBatchInputFormat.nextRecord(ClickHouseBatchInputFormat.java:123) at org.apache.flink.connector.clickhouse.internal.ClickHouseBatchInputFormat.nextRecord(ClickHouseBatchInputFormat.java:20) at org.apache.flink.streaming.api.functions.source.InputFormatSourceFunction.run(InputFormatSourceFunction.java:90) at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110) at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:67) at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:333) Caused by: org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, message: Parse exception: ByteFragment{[168312971827620230504ALARM-L5-POWER1683129728366EBQZPOWXBZT1X01_Z01\N\Ntrue\N\Nd8fda61f-5bb2-475d-acbc-5c8ff6d6f297], start=80, len=4}; ClickHouse exception, message: Error parsing 'true' as java.lang.Integer; For input string: "true" at org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.response.ClickHouseResultSet.getObject(ClickHouseResultSet.java:648) at org.apache.flink.connector.clickhouse.internal.converter.ClickHouseRowConverter.toInternal(ClickHouseRowConverter.java:62) at org.apache.flink.connector.clickhouse.internal.ClickHouseBatchInputFormat.nextRecord(ClickHouseBatchInputFormat.java:118) ... 5 more Caused by: org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, message: Error parsing 'true' as java.lang.Integer; For input string: "true" at org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.response.parser.ClickHouseValueParser$ClickHouseValueParserFunctionWrapper.parse(ClickHouseValueParser.java:243) at org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.response.ClickHouseResultSet.getObject(ClickHouseResultSet.java:749) at org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.response.ClickHouseResultSet.getObject(ClickHouseResultSet.java:603) ... 7 more Caused by: java.lang.NumberFormatException: For input string: "true" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:740) at java.lang.Integer.decode(Integer.java:1197) at org.apache.flink.shaded.clickhouse.ru.yandex.clickhouse.response.parser.ClickHouseValueParser$ClickHouseValueParserFunctionWrapper.parse(ClickHouseValueParser.java:240) ... 9 more

itinycheng commented 11 months ago

@ShangBaiShuYao 这是bool类型解析的一个bug,得升级connector依赖的clickhouse-jdbc版本并修改代码才能解决;