Timeplus Proton:流式 SQL 引擎
单 C++ 二进制文件实现毫秒级延迟、每秒亿级事件处理的统一流式 SQL 引擎,替代 ksqlDB 和 Flink。
- Star 数
- ★ 2.3k
- 最近更新
- 6 天前
- License
- Apache-2.0
- 主语言
- C++
- FA 评分
- 37/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 实时分析管道构建者:需要从 Kafka 摄取实时数据,执行过滤、富化、脱敏等转换,并路由到 ClickHouse 或下游 Kafka 主题。
- 不适合
- 需要集群、Kubernetes 或高可用部署的团队,这些属于 Timeplus Enterprise
- 需要开箱即用的大量连接器(NATS、Webhook、Slack 等)的用户
- 不熟悉 C++/ClickHouse 或 SQL 流处理概念的新手团队
这个 Agent 能做什么,适合哪些场景?
Timeplus Proton 是一个基于 C++ 编写、由 ClickHouse 引擎驱动的开源流式 SQL 引擎,专注于实时数据处理。它提供强大的流处理功能,包括流式 ETL、窗口聚合、水印、增量物化视图以及 CDC 支持。与纯流处理器不同,Proton 将可查询的分析型/行式物化视图存储在自身内部,适用于仪表盘和应用程序。整个引擎打包为单个二进制文件(<500MB),无 JVM 或 ZooKeeper 依赖,可安装在 Mac/Linux 或通过 Docker 运行。它支持 Kafka、Redpanda、ClickHouse、MySQL、Postgres、MongoDB、S3/Iceberg、OpenSearch 等作为源/汇,并可通过 Python/JS 扩展 UDF。
Proton 通过 SQL 接口操作,提供流式摄取、多流 JOIN、增量物化视图、告警和任务等功能。用户可使用 proton client 启动 SQL shell,通过 CREATE EXTERNAL STREAM 定义 Kafka 主题,CREATE EXTERNAL TABLE 连接 ClickHouse,并创建长期运行的物化视图以将聚合数据写入目标系统。示例 SQL 包括从 AWS MSK 读取数据、写入 ClickHouse,以及使用随机数据生成流进行测试。引擎采用 SIMD 优化,在 M2 Max MacBook Pro 上实现 9000 万 EPS 和 4 毫秒端到端延迟。
- 实时分析管道构建者:需要从 Kafka 摄取实时数据,执行过滤、富化、脱敏等转换,并路由到 ClickHouse 或下游 Kafka 主题。
- 可观测性工程师:处理日志、指标和追踪,在转发到 Splunk、Elastic 或 S3 之前进行降噪和实时告警。
- AI/ML 特征工程师:使用低延迟流式 SQL 和物化视图计算实时特征,支持回填和高级窗口。
- Kafka/Redpanda 用户:直接使用外部流查询 Kafka 或 Redpanda 中的实时数据。
- 数据平台团队:需要在单节点 Docker 或小型 AWS 实例(如 t2.nano)上部署轻量级流处理引擎。
如何安装或部署这个 Agent?
在 Mac/Linux 上,运行 curl https://install.timeplus.com/oss | sh 安装 proton 二进制;Mac 用户也可使用 Homebrew:brew install timeplus-io/timeplus/proton。Docker 方式:docker run -d --pull always -p 8123:8123 -p 8463:8463 --name proton d.timeplus.com/timeplus-io/proton:latest。需暴露 8123 和 8463 端口以便工具连接。
如何使用这个 Agent?
启动服务器:运行 proton server,数据存储在当前目录的 proton-data 文件夹中。打开另一个终端,使用 proton client 启动 SQL shell。在 client 中执行 SQL 创建外部流或表,例如创建 Kafka 流、创建 ClickHouse 外部表,并创建物化视图将聚合数据实时写入目标。也可运行 CREATE RANDOM STREAM devices(...) 生成随机数据测试。
这个 Agent 有哪些优点和局限?
- 极高性能:SIMD 优化,单机 9000 万 EPS,4 毫秒端到端延迟。
- 轻量化部署:单二进制文件 <500MB,无 JVM/依赖,可在低配实例运行。
- 内置物化视图存储:兼有流处理和查询分析能力。
- 为 Kafka/ClickHouse 等设计,外部系统集成可能需额外配置。
- 企业功能(如集群、Kubernetes、更多连接器)需使用 Timeplus Enterprise。
- 平台依赖 C++ 和 ClickHouse,对非技术用户有门槛。
这个 Agent 与同类方案有什么区别?
相对于 Apache Flink 和 ksqlDB,Proton 是更轻量、更快的替代方案。与纯流处理器相比,它还能存储可查询的物化视图。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Timeplus Proton:流式 SQL 引擎 当前 | 37 · 缺口较多 | 命令行工具免费版 + 付费版 | ★ 2.3k | 6 天前 | C++ | — |
| Seal Report 报表与 BI 平台 | 50 · 缺口较多 | 桌面应用免费 | ★ 1.6k | 10 天前 | C# | OpenAI API · Claude API |
| ktx — 数据代理的上下文层 | 64 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 1.6k | 3 个月前 | TypeScript | Codex · Claude Code |
| Cube Core | 59 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 21k | 今天 | Rust | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示仓库未提供权限模型、用户确认机制、数据流透明度、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。所有信任相关标准均因缺乏证据而评为0。
自一致性:README和CI工作流在功能描述上基本一致,但存在一些不一致(如README声称零依赖,但CI脚本依赖ClickHouse子模块)。依赖可用性:依赖项(如ClickHouse)未明确列出版本或来源,但CI脚本显示会克隆ClickHouse仓库。失败消息:CI脚本包含错误处理,但用户可见的失败消息有限。
受众和场景:README明确了目标用户和用例。能力边界:README区分了Proton和Enterprise的功能。触发精度:未提供Agent触发机制。环境适配:提供了多种部署方式(二进制、Docker、Homebrew)。
信息架构:README结构清晰,有目录。安装说明:提供了多种安装方式。命名稳定性:未明确说明命名约定。示例和FAQ:提供了示例和FAQ链接。已知限制:未明确列出,但通过对比表暗示了限制。许可证:Apache-2.0,LICENSE文件完整。版本和变更日志:未提供变更日志。维护责任:通过贡献指南和社区支持明确。
输出可用性:提供了SQL查询示例和输出示例。边际价值:作为Flink/ksqlDB替代品,提供了独特价值。成本效益:轻量级,无JVM依赖,成本较低。
声明可追溯性:性能声明未提供可复现的基准测试细节。跨来源佐证:未提供独立验证。事实与推断分离:README中的性能声明可能基于内部测试,未明确区分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 仓库未提供安全模型或权限控制说明,作为Agent使用需谨慎。
- 性能声明缺乏可复现的基准测试细节,应独立验证。
- 依赖项未明确列出版本和来源,存在供应链风险。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Docker Images Available ```bash docker pull d.timeplus.com/timeplus-io/proton:latest ``` For detailed usage and more information, check out the Timeplus documentation: https://docs.timeplus.com/ What's Changed * chore(deps): bump kafka-python from 2.0.2 to 2.3.2 in /tests/stream/h… by @yl-lisen in https://github.com/timeplus-io/proton/pull/1219 * fix(s3): do not send the Keep-Alive header to S3 (S3 Tables rejects it) by @timotejkralik-oddin in https://github.com/timeplus-io/proton/pull/1222 …在 GitHub 查看 ↗ -
发布说明摘录
Docker Images Available ```bash docker pull d.timeplus.com/timeplus-io/proton:latest ``` For detailed usage and more information, check out the Timeplus documentation: https://docs.timeplus.com/ What's Changed * fix(metrics): freeze the disk_utils key set after the first collection by @yokofly in https://github.com/timeplus-io/proton/pull/1210 * ci: migrate CI to new AWS account (draft — merge only in cutover window) by @gangtao in https://github.com/timeplus-io/proton/pull/1212 …在 GitHub 查看 ↗ -
发布说明摘录
Docker Images Available ```bash docker pull d.timeplus.com/timeplus-io/proton:latest ``` For detailed usage and more information, check out the Timeplus documentation: https://docs.timeplus.com/ What's Changed * fix(ci): unblock the manual darwin x86_64 cross-compile build by @yokofly in https://github.com/timeplus-io/proton/pull/1208 * feat(metrics): per-disk IO stats in system.server by @yokofly in https://github.com/timeplus-io/proton/pull/1209 Full Changelog: https://github.com/timeplus-io/proton/compare/v3.0.28...v3.0.29在 GitHub 查看 ↗