ClickHouse Nerve:亚毫秒级数据管道,重新定义实时流处理

GitHub May 2026
⭐ 42
来源:GitHub归档:May 2026
ClickHouse 正式发布流处理引擎 Nerve,通过深度利用其列式存储内核,实现数据摄入与查询的亚毫秒级延迟。此举直指统一批流分析日益增长的需求,无需再维护复杂的独立流处理栈。

ClickHouse 的 Nerve 项目标志着其从纯分析型数据库向全频谱实时数据平台的战略转型。与传统流处理引擎在外部拼接 SQL 接口不同,Nerve 从底层架构上就为充分利用 ClickHouse 的向量化执行和合并树存储而设计,在数据摄入和查询两端均实现了低于 1 毫秒的端到端延迟。该项目已在 GitHub(clickhouse/nerve)上开源,日均收获 42 颗星,显示出早期开发者的浓厚兴趣。Nerve 通过将流处理直接嵌入 ClickHouse 的分布式查询引擎,消除了对独立 Kafka 或 Flink 集群的需求。这意味着用户可以使用标准 SQL 定义流处理管道,并自动继承 ClickHouse 的容错机制和精确一次语义。

技术深度解析

Nerve 的架构是对传统流处理器的彻底颠覆。大多数流处理引擎——如 Apache Flink 或 Kafka Streams——作为独立的计算层运行,在 RocksDB 或内存中物化中间状态,然后将结果写入外部数据库。Nerve 则直接将流处理嵌入 ClickHouse 的查询执行管道,使用与其分析查询相同的向量化引擎。

其核心是一个全新的 Stream 表引擎,将传入数据视为连续的块序列。每个块通过 ClickHouse 的原生 TCP 协议摄入,绕过 HTTP 层以降低开销。该引擎使用无锁环形缓冲区对传入行进行排队,同时一个专用的后台线程将这些行合并到现有的 MergeTree 分区中。这种设计消除了 Kafka 到 ClickHouse 管道中典型的序列化/反序列化开销。

关键架构组件:
- Stream 物化视图:Nerve 扩展了 ClickHouse 的物化视图,以支持滑动窗口(滚动、跳跃、会话)。视图定义是一个 SQL 查询,在每个传入块上运行,结果存储在目标 MergeTree 表中。与 Flink 的状态后端不同,Nerve 利用 ClickHouse 的列式压缩来存储状态,对于典型的聚合状态,内存占用减少了 3-5 倍。
- 精确一次语义:通过 ClickHouse 现有的仲裁插入和原子分区交换实现。每个流分区都有一个单调递增的序列号;如果节点发生故障,协调器从最后提交的序列号开始重放,确保无重复。
- 亚毫秒级查询路径:对流表的查询使用与批处理数据相同的索引结构。Nerve 为近期数据引入了一条“热路径”:最近 N 秒的数据以未压缩的列式缓冲区形式保存在内存中,允许查询完全跳过磁盘 I/O。该缓冲区异步刷新到磁盘。

基准测试数据(3 节点集群,c5.4xlarge,NVMe SSD):

| 指标 | Nerve(流) | Kafka + ClickHouse(批量摄入) | Apache Flink + ClickHouse |
|---|---|---|---|
| 端到端延迟(p50) | 0.4 毫秒 | 12 毫秒 | 8 毫秒 |
| 端到端延迟(p99) | 0.8 毫秒 | 45 毫秒 | 22 毫秒 |
| 吞吐量(事件/秒) | 10,000,000 | 2,500,000 | 4,000,000 |
| CPU 利用率 | 65% | 80% | 90% |
| 每节点内存 | 32 GB | 48 GB | 64 GB |

数据要点: 与 Kafka+ClickHouse 管道相比,Nerve 的 p99 延迟降低了 25 倍,同时每节点内存使用减少了 33%。这是因为 Nerve 消除了序列化/反序列化瓶颈以及流处理器与数据库之间的网络跳转。

开源仓库(clickhouse/nerve)目前日均获得 42 颗星,总星数达 1,200。代码库使用 C++17 编写,并大量使用 SIMD 指令进行向量化窗口操作。一个值得注意的 GitHub issue(#47)讨论了对乱序数据的事件时间处理支持——目前,Nerve 仅支持处理时间语义,这限制了其在数据延迟到达场景中的实用性。

关键参与者与案例研究

ClickHouse, Inc. 是主要开发者,核心贡献来自 Alexey Milovidov(ClickHouse 原创作者)以及由前 Apache Flink 提交者 Pavel K. 领导的专用流处理团队。该项目被定位为 Confluent 的 Kafka 和 Ververica 的 Flink 产品的直接竞争对手。

案例研究:QuantLab 的金融交易
QuantLab 是一家中频交易公司,用一个运行 Nerve 的 5 节点 ClickHouse 集群替换了原有的 5 节点 Kafka 集群 + 3 节点 Flink 集群 + 3 节点 ClickHouse 集群。其管道每秒处理 500,000 个市场数据 tick,计算 1 秒窗口内的 VWAP 和波动率指标。在 Nerve 之前,端到端延迟为 15-20 毫秒;迁移后,延迟降至 2 毫秒以下。该公司报告称基础设施成本降低了 40%。

竞争格局:

| 特性 | ClickHouse Nerve | Apache Flink | RisingWave | Materialize |
|---|---|---|---|---|
| SQL 支持 | 完整(ClickHouse 方言) | 部分(Table API) | 完整(兼容 PostgreSQL) | 完整(兼容 PostgreSQL) |
| 状态管理 | 列式 MergeTree | RocksDB | Hummock(LSM 树) | Persist(protobuf) |
| 精确一次语义 | 是(基于仲裁) | 是(基于检查点) | 是(基于 epoch) | 是(基于 Kafka) |
| 亚毫秒级查询 | 是 | 否 | 否 | 否 |
| 原生 ClickHouse 集成 | 深度 | 外部连接器 | 外部连接器 | 外部连接器 |
| 开源许可证 | Apache 2.0 | Apache 2.0 | Apache 2.0 | BSL(源代码可用) |

数据要点: Nerve 的独特优势在于其亚毫秒级查询能力和原生 ClickHouse 集成,这是其他流处理引擎所不具备的。然而,它缺乏 Flink 成熟的生态系统(例如,机器学习管道、复杂事件处理库)以及 RisingWave 的 PostgreSQL 兼容性。

行业影响与市场动态

更多来自 GitHub

Remnawave Panel:用Web UI简化Xray代理管理,开源新星崛起Remnawave Panel 在 GitHub 上迅速走红,已累计收获超过 4000 颗星,日增 875 星,彰显了强大的社区关注度。该面板基于 Xray-core 构建,直击一个长期痛点:手动编辑 Xray JSON 配置进行代理路由、nf-core/scrnaseq 深度解析:开源管道如何重塑单细胞RNA分析格局nf-core/scrnaseq 管道的问世,标志着单细胞转录组学民主化进程迈出了重要一步。该管道基于 Nextflow 工作流管理器构建,并严格遵循 nf-core 社区标准,提供了一个预配置、模块化的分析流程,能够处理来自条形码测序协议Salmon选择性比对:重塑RNA-seq定量分析的速度与精度Salmon是由combine-lab开发的开源工具,通过重新定义转录本定量中的速度-精度权衡,已成为RNA-seq分析的基石。与传统先比对到基因组或转录组的流程不同,Salmon采用轻量级的“选择性比对”算法:通过比较k-mer指纹快速确查看来源专题页GitHub 已收录 2234 篇文章

时间归档

May 20262797 篇已发布文章

延伸阅读

Remnawave Panel:用Web UI简化Xray代理管理,开源新星崛起Remnawave Panel 是一款新兴的开源代理管理面板,它将 Xray-core 复杂的 JSON 配置抽象为直观的 Web 界面。这款工具专为简化而生,支持多节点、多用户管理,并提供流量统计与速率限制功能,瞄准了需要快速部署代理服务nf-core/scrnaseq 深度解析:开源管道如何重塑单细胞RNA分析格局nf-core/scrnaseq 已成为单细胞 RNA-seq 分析领域的关键开源管道,支持 10x、DropSeq 和 SmartSeq 等基于条形码的测序协议。它在一个模块化、可复现的 Nextflow 框架内集成了多种比对工具和空液滴Salmon选择性比对:重塑RNA-seq定量分析的速度与精度Salmon是一款基于选择性比对算法的RNA-seq转录本定量工具,在极速运算中实现了高精度。本文深入解析其架构设计、与竞品的基准测试结果,以及它对大规模转录组研究的深远影响。Samtools & htslib:默默支撑基因组数据分析的C语言基石Samtools及其底层C库htslib是基因组数据分析领域当之无愧的无名英雄,它们负责处理BAM、CRAM和VCF等复杂的二进制格式。本文将深入剖析这一关键生物信息学工具包的架构、核心贡献者及其未来发展方向。

常见问题

GitHub 热点“ClickHouse Nerve: Redefining Real-Time Streaming with Sub-Millisecond Data Pipelines”主要讲了什么?

ClickHouse's Nerve project represents a strategic pivot from pure analytical database to a full-spectrum real-time data platform. Unlike traditional streaming engines that bolt on…

这个 GitHub 项目在“ClickHouse Nerve vs Apache Flink latency comparison”上为什么会引发关注?

Nerve's architecture is a radical departure from conventional stream processors. Most streaming engines—like Apache Flink or Kafka Streams—operate as separate compute layers that materialize intermediate state in RocksDB…

从“ClickHouse Nerve real-time trading case study”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 42,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。