You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by "JeffHu88 (via GitHub)" <gi...@apache.org> on 2024/12/18 09:52:58 UTC

[D] Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime? [pulsar]

GitHub user JeffHu88 created a discussion: Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime?


Hi team,

I'm using the JDBC Sink Connector to insert data into ClickHouse. However, when I try to pass a UUID like this:
e1314238-8896-4c76-97bb-000000000360, I encounter the following error:

`
ERROR org.apache.pulsar.io.jdbc.JdbcAbstractSink - Got exception Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0 after 2 ms, failing 183 messages
java.time.format.DateTimeParseException: Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0
	at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source) ~[?:?]
	at java.time.format.DateTimeFormatter.parse(Unknown Source) ~[?:?]
	at java.time.LocalDateTime.parse(Unknown Source) ~[?:?]
	at com.clickhouse.data.value.ClickHouseStringValue.asDateTime(ClickHouseStringValue.java:208) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.format.BinaryDataProcessor$DateTime64SerDe.serialize(BinaryDataProcessor.java:291) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.ClickHouseDataProcessor.write(ClickHouseDataProcessor.java:593) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.addBatch(InputBasedPreparedStatement.java:345) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at org.apache.pulsar.io.jdbc.JdbcAbstractSink.flush(JdbcAbstractSink.java:286) ~[pulsar-io-jdbc-core-4.0.0.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
`

It seems like the connector is attempting to parse the UUID as a DateTime, leading to the error.

Could you advise on how to resolve this issue?

Thanks!

GitHub link: https://github.com/apache/pulsar/discussions/23754

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


Re: [D] Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime? [pulsar]

Posted by "JeffHu88 (via GitHub)" <gi...@apache.org>.
GitHub user JeffHu88 edited a discussion: Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime?


Hi team,

I'm using the JDBC Sink Connector to insert data into ClickHouse. However, when I try to pass a UUID like this:
e1314238-8896-4c76-97bb-000000000360, I encounter the following error:

`
ERROR org.apache.pulsar.io.jdbc.JdbcAbstractSink - Got exception Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0 after 2 ms, failing 183 messages
java.time.format.DateTimeParseException: Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0
	at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source) ~[?:?]
	at java.time.format.DateTimeFormatter.parse(Unknown Source) ~[?:?]
	at java.time.LocalDateTime.parse(Unknown Source) ~[?:?]
	at com.clickhouse.data.value.ClickHouseStringValue.asDateTime(ClickHouseStringValue.java:208) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.format.BinaryDataProcessor$DateTime64SerDe.serialize(BinaryDataProcessor.java:291) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.ClickHouseDataProcessor.write(ClickHouseDataProcessor.java:593) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.addBatch(InputBasedPreparedStatement.java:345) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at org.apache.pulsar.io.jdbc.JdbcAbstractSink.flush(JdbcAbstractSink.java:286) ~[pulsar-io-jdbc-core-4.0.0.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
`
Schema:

`
create table BET_LOG_OVERVIEW
(
    SEQ_NO                   String ,
    BET_ID                      String ,
    SITE                          String,
    UID_SITE                  String,
    BET_TIMESTAMP     DateTime64(6),
    PROVIDER                String,
    VERSION                  UInt64                   default toUnixTimestamp64Micro(now64(6))
)
    engine = ReplacingMergeTree(VERSION)
        PARTITION BY toYYYYMM(BET_TIMESTAMP)
        ORDER BY (SEQ_NO, PROVIDER, BET_ID)
        SETTINGS index_granularity = 8192;
`


It seems like the connector is attempting to parse the UUID as a DateTime, leading to the error.

Could you advise on how to resolve this issue?

Thanks!

GitHub link: https://github.com/apache/pulsar/discussions/23754

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


Re: [D] Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime? [pulsar]

Posted by "JeffHu88 (via GitHub)" <gi...@apache.org>.
GitHub user JeffHu88 edited a discussion: Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime?


Hi team,

I'm using the JDBC Sink Connector to insert data into ClickHouse. However, when I try to pass a UUID like this:
e1314238-8896-4c76-97bb-000000000360, I encounter the following error:

`
ERROR org.apache.pulsar.io.jdbc.JdbcAbstractSink - Got exception Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0 after 2 ms, failing 183 messages
java.time.format.DateTimeParseException: Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0
	at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source) ~[?:?]
	at java.time.format.DateTimeFormatter.parse(Unknown Source) ~[?:?]
	at java.time.LocalDateTime.parse(Unknown Source) ~[?:?]
	at com.clickhouse.data.value.ClickHouseStringValue.asDateTime(ClickHouseStringValue.java:208) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.format.BinaryDataProcessor$DateTime64SerDe.serialize(BinaryDataProcessor.java:291) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.ClickHouseDataProcessor.write(ClickHouseDataProcessor.java:593) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.addBatch(InputBasedPreparedStatement.java:345) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at org.apache.pulsar.io.jdbc.JdbcAbstractSink.flush(JdbcAbstractSink.java:286) ~[pulsar-io-jdbc-core-4.0.0.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
`
Schema:

```
create table LOG_OVERVIEW
(
    SEQ_NO                   String ,
    BET_ID                      String ,
    SITE                          String,
    UID_SITE                  String,
    BET_TIMESTAMP     DateTime64(6),
    PROVIDER                String,
    VERSION                  UInt64                   default toUnixTimestamp64Micro(now64(6))
)
    engine = ReplacingMergeTree(VERSION)
        PARTITION BY toYYYYMM(BET_TIMESTAMP)
        ORDER BY (SEQ_NO, PROVIDER, BET_ID)
        SETTINGS index_granularity = 8192;
```


It seems like the connector is attempting to parse the UUID as a DateTime, leading to the error.

Could you advise on how to resolve this issue?

Thanks!

GitHub link: https://github.com/apache/pulsar/discussions/23754

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


Re: [D] Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime? [pulsar]

Posted by "JeffHu88 (via GitHub)" <gi...@apache.org>.
GitHub user JeffHu88 edited a discussion: Why does the ClickHouse JDBC Sink Connector convert a String into a DateTime?


Hi team,

I'm using the JDBC Sink Connector to insert data into ClickHouse. However, when I try to pass a UUID like this:
e1314238-8896-4c76-97bb-000000000360, I encounter the following error:

`
ERROR org.apache.pulsar.io.jdbc.JdbcAbstractSink - Got exception Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0 after 2 ms, failing 183 messages
java.time.format.DateTimeParseException: Text 'e1314238-8896-4c76-97bb-000000000360' could not be parsed at index 0
	at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source) ~[?:?]
	at java.time.format.DateTimeFormatter.parse(Unknown Source) ~[?:?]
	at java.time.LocalDateTime.parse(Unknown Source) ~[?:?]
	at com.clickhouse.data.value.ClickHouseStringValue.asDateTime(ClickHouseStringValue.java:208) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.format.BinaryDataProcessor$DateTime64SerDe.serialize(BinaryDataProcessor.java:291) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.data.ClickHouseDataProcessor.write(ClickHouseDataProcessor.java:593) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at com.clickhouse.jdbc.internal.InputBasedPreparedStatement.addBatch(InputBasedPreparedStatement.java:345) ~[clickhouse-jdbc-0.4.6-all.jar:clickhouse-jdbc 0.4.6 (revision: dd91e17)]
	at org.apache.pulsar.io.jdbc.JdbcAbstractSink.flush(JdbcAbstractSink.java:286) ~[pulsar-io-jdbc-core-4.0.0.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
`
Schema:

```
create table BET_LOG_OVERVIEW
(
    SEQ_NO                   String ,
    BET_ID                      String ,
    SITE                          String,
    UID_SITE                  String,
    BET_TIMESTAMP     DateTime64(6),
    PROVIDER                String,
    VERSION                  UInt64                   default toUnixTimestamp64Micro(now64(6))
)
    engine = ReplacingMergeTree(VERSION)
        PARTITION BY toYYYYMM(BET_TIMESTAMP)
        ORDER BY (SEQ_NO, PROVIDER, BET_ID)
        SETTINGS index_granularity = 8192;
```


It seems like the connector is attempting to parse the UUID as a DateTime, leading to the error.

Could you advise on how to resolve this issue?

Thanks!

GitHub link: https://github.com/apache/pulsar/discussions/23754

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org