You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickHouse 22.8.9.24:如何从AvroConfluent格式Kafka消息获取元数据与头部?

在ClickHouse 22.8.9.24中使用AvroConfluent格式获取Kafka元数据与头部
  • 可以直接获取元数据和头部,不需要在Kafka端把它们放进消息值里
  • ClickHouse针对Kafka表提供了一系列虚拟列,不管消息体用什么格式(包括AvroConfluent),都能直接读取这些元数据:
    • 基础元数据:_topic(消息所属Topic)、_offset(消息偏移量)、_timestamp(消息时间戳)、_partition(分区号)
    • 消息头部:_headers,类型为Array(Tuple(String, String)),存储Kafka消息的键值对头部信息
  • 示例建表语句:
CREATE TABLE kafka_avro_table (
    -- 这里定义Avro schema对应的业务字段
    id UInt64,
    name String
) ENGINE = Kafka
SETTINGS
    kafka_broker_list = 'your_broker:9092',
    kafka_topic_list = 'your_avro_topic',
    kafka_group_name = 'ch_consumer_group',
    format = 'AvroConfluent',
    format_avro_schema_registry_url = 'http://your_schema_registry:8081';
  • 查询时直接引用虚拟列即可:
SELECT _topic, _offset, _timestamp, _headers, id, name
FROM kafka_avro_table
LIMIT 10;
  • 注意:如果你的头部值是非字符串类型,_headers会自动将其转为Base64编码的字符串,需要自行解码处理

内容的提问来源于stack exchange,提问作者Zaoza14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:14:52