构建一个只追加(append-only)的管道:agents → Kafka → 分层存储(热数据在 ClickHouse/ELK,冷数据在对象存储),配一个保留策略,为近期数据建 index,并廉价地归档其余部分。每天 1 亿事件平均约为每秒 1,200 条(峰值远高于此),每天数十到数百 GB——你为廉价写入和有界的查询成本做优化,而非 OLTP 语义。
App/agents ─▶ Kafka ─▶ Consumers ─┬─▶ ClickHouse / ELK (hot: last 7–30d, indexed, fast search)
(Fluent Bit) (buffer, │
replay) └─▶ S3/Parquet (cold: 90d–years, cheap, scan-on-demand)
│
Lifecycle/tiering ─▶ Glacier (archive) ─▶ delete at retention
追加管道
日志是一次写入、从不更新的——因此摄取路径是一次。像 这样的 agent 把日志行发往 ,由它缓冲突发并把生产者与存储解耦。如果 ClickHouse 因维护而宕机,事件在 Kafka 中排队并重放——你不会丢日志。批量写入(每次 insert 数千行),因为逐行 insert 会摧毁列式存储的 throughput。
