跳转到主要内容

描述

包含通过流式引擎接收且解析出错的消息信息。目前已针对 Kafka 和 RabbitMQ 实现。 可通过将引擎特定的 handle_error_mode 设置指定为 dead_letter_queue 来启用日志记录。 数据的刷新周期在服务器设置部分 dead_letter_queueflush_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。

示例

Query
SELECT * FROM system.dead_letter_queue LIMIT 1 \G;
Response
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_consumerskafka_consumers 系统表的说明,包含 Kafka 消费者的统计信息、错误等内容。
最后修改于 2026年6月10日