描述
包含通过流式引擎接收且解析出错的消息信息。目前已针对 Kafka 和 RabbitMQ 实现。
可通过将引擎特定的 handle_error_mode 设置指定为 dead_letter_queue 来启用日志记录。
数据的刷新周期在服务器设置部分 dead_letter_queue 的 flush_interval_milliseconds 参数中设置。要强制刷新,请使用 SYSTEM FLUSH LOGS 查询。
ClickHouse 不会自动从该表中删除数据。更多详情,请参阅 简介。
列
table_engine(Enum8('Kafka' = 1, 'RabbitMQ' = 2)) — 流类型。可能的值:'Kafka'、'RabbitMQ'。event_date(Date) — 消费消息的日期。event_time(DateTime) — 消费消息的日期和时间。event_time_microseconds(DateTime64(6)) — 查询开始时间,精度为微秒。database(LowCardinality(String)) — Kafka 表所属的 ClickHouse 数据库。table(LowCardinality(String)) — ClickHouse 表名。error(String) — 错误信息。raw_message(String) — 消息体。kafka_topic_name(String) — Kafka topic 名称。kafka_partition(UInt64) — topic 的 Kafka 分区。kafka_offset(UInt64) — 消息的 Kafka 偏移量。kafka_key(String) — 消息的 Kafka 键。rabbitmq_exchange_name(String) — RabbitMQ exchange 名称。rabbitmq_message_id(String) — RabbitMQ 消息 ID。rabbitmq_message_timestamp(DateTime) — RabbitMQ 消息时间戳。rabbitmq_message_redelivered(UInt8) — RabbitMQ 重新投递标志。rabbitmq_message_delivery_tag(UInt64) — RabbitMQ 投递标签。rabbitmq_channel_id(String) — RabbitMQ 通道 ID。
示例
SELECT * FROM system.dead_letter_queue LIMIT 1 \G;Row 1:
──────
table_engine: Kafka
event_date: 2025-05-01
event_time: 2025-05-01 10:34:53
event_time_microseconds: 2025-05-01 10:34:53.910773
database: default
table: kafka
error: Cannot parse input: expected '\t' before: 'qwertyuiop': (at row 1)
:
Row 1:
Column 0, name: key, type: UInt64, ERROR: text "qwertyuiop" is not like UInt64
raw_message: qwertyuiop
kafka_topic_name: TSV_dead_letter_queue_err_1746095689
kafka_partition: 0
kafka_offset: 0
kafka_key:
rabbitmq_exchange_name:
rabbitmq_message_id:
rabbitmq_message_timestamp: 1970-01-01 00:00:00
rabbitmq_message_redelivered: 0
rabbitmq_message_delivery_tag: 0
rabbitmq_channel_id:
Row 2:
──────
table_engine: Kafka
event_date: 2025-05-01
event_time: 2025-05-01 10:34:53
event_time_microseconds: 2025-05-01 10:34:53.910944
database: default
table: kafka
error: Cannot parse input: expected '\t' before: 'asdfghjkl': (at row 1)
:
Row 1:
Column 0, name: key, type: UInt64, ERROR: text "asdfghjkl" is not like UInt64
raw_message: asdfghjkl
kafka_topic_name: TSV_dead_letter_queue_err_1746095689
kafka_partition: 0
kafka_offset: 0
kafka_key:
rabbitmq_exchange_name:
rabbitmq_message_id:
rabbitmq_message_timestamp: 1970-01-01 00:00:00
rabbitmq_message_redelivered: 0
rabbitmq_message_delivery_tag: 0
rabbitmq_channel_id:
Row 3:
──────
table_engine: Kafka
event_date: 2025-05-01
event_time: 2025-05-01 10:34:53
event_time_microseconds: 2025-05-01 10:34:53.911092
database: default
table: kafka
error: Cannot parse input: expected '\t' before: 'zxcvbnm': (at row 1)
:
Row 1:
Column 0, name: key, type: UInt64, ERROR: text "zxcvbnm" is not like UInt64
raw_message: zxcvbnm
kafka_topic_name: TSV_dead_letter_queue_err_1746095689
kafka_partition: 0
kafka_offset: 0
kafka_key:
rabbitmq_exchange_name:
rabbitmq_message_id:
rabbitmq_message_timestamp: 1970-01-01 00:00:00
rabbitmq_message_redelivered: 0
rabbitmq_message_delivery_tag: 0
rabbitmq_channel_id:
(test.py:78, dead_letter_queue_test)另请参阅
- Kafka - Kafka 引擎
- system.kafka_consumers —
kafka_consumers系统表的说明,包含 Kafka 消费者的统计信息、错误等内容。