【发布时间】:2021-03-06 21:49:20
【问题描述】:
Kafka 和 Clickhouse 在 Docker 中运行。我正在尝试通过 JDBC Connect 将一些数据从 Kafka 流插入 ClickHouse 表。从流中查询数据显示数据在流中。然后我创建 Clickhouse 表,其字段与 Kafka 流中的字段相同
CREATE TABLE IF NOT EXISTS default.table
(
id Int32,
ms_segment_group_id Int32,
transact_survey_tmpl_id Int32,
customer_id Int32,
customer_account_id Int32,
agent String,
comm_channel_id Int32,
comm_channel_address String,
answer_date String,
communication_type_id Int32,
object_id Int32,
create_date String,
application_id String,
external_id Int32,
transact_survey_state_id Int32,
code String
) ENGINE = MergeTree()
PARTITION BY id
ORDER BY tuple();
然后我在 ksql 中创建 JDBC CONNECT
CREATE SOURCE CONNECTOR `clickhouse-jdbc-connector` WITH (
'connector.class'='io.confluent.connect.jdbc.JdbcSinkConnector',
'topics'='STREAM_TEST',
'tasks.max'='1',
'connection.url'='jdbc:clickhouse://clickhouse:8123/default',
'table.name.format'='table'
);
ksql 的输出表明连接器已创建并且一切正常。然后我尝试从 ClickHouse 表中选择并得到空结果:
据我了解 ClickHouse 表中没有数据且 JDBC 连接无法正常工作?
【问题讨论】:
-
你确定 from Kafka 通过 jdbc 流是可能的吗? Doc says:“JDBC 源连接器允许您将任何具有 JDBC 驱动程序的关系数据库中的数据导入 Kafka 主题。”。
-
从Kafka获取数据应该使用Kafka engine。
-
您能否将 docker-compose.yml 文件的正文添加到您的问题中?
标签: jdbc apache-kafka clickhouse