如题,我不是说全公司只需要一个数据库。业务数据(OLTP)尽管选 MySQL 或 PostgreSQL。但量稍微上去一点,你就不应该在 MySQL 或 PG 上做大量查询分析和出报表。之前大家 Haddoop, Hive用的比较多,现在上 Iceberg,上 Doris 上 ClickHouse,上 Pinot,也有人上Snowflake, 上 Databricks。我的观点是你不需要那么多 OLAP 在你的公司。有一个数据库可以搞定一切,好吧,至少是大部分场景:比如用户点击分析,系统用量和日志指标分析。或者更技术层面,批流一体。我的推荐就是 Proton (github.com/timeplus-io…, Apache v2 license)
无需避嫌,我是钟钱杰,网名 Jove,是 Timeplus 的联合创始人。
Proton 是我们在今年九月底刚刚开源的流式数据库。如果你听说或用过 ClickHouse,亦或听说或用过 Flink,恭喜,那你基本已经会使用 Proton。很简单,Proton 是一个用 C++开发的数据库
- OLAP 历史查询部分我们基于 ClickHouse 代码
- 流式处理我们对齐 Apache Flink(同样支持水位线,流式 SQL,hop/session window 等。但我们没有 Java 代码,所以并不依赖 Flink)
- 另外,Proton 内部还有个一个模块,类似 Apache Kafka,但没那么通用。作为流数据存储,放 WAL
做过相关项目的同学或许已经明白了,Proton 其实是把传统的 Kafka->Flink->ClickHouse (这个缩写是不是该叫 KFC?)这个数据栈集成在一个 single binary 里了。如果你要高可用,要可扩展,也只需要多启几个 Proton,连成集群就好了。
进一步讲技术细节之前,回应一下开头说的,你只需要一个 OLAP 就可以了。你或许不熟悉 Kafka,不熟悉 Flink 或 Spark,没关系。一个产品或开源项目,是为了解决问题而生,而不是用来秀肌肉的。
我们公司 20 人不到,创业 2 年。用了一堆 SaaS 服务,也有 AWS, GCP。但我们至今没有使用任何 OLAP,都是放在我们自己的 Timeplus Proton 里,比如
- 用户注册分析:我们用的是 Auth0,支持各种 SSO。在用户注册或登录之后,Auth0 把事件作为 webhook 发送到 Timeplus 对应的 endpoint。这类数据就实时入库了。我们就可以在Timeplus Proton 里配置实时通知,某某新用户从某城市第一次登录,或第一次创建了某数据表
- 用户点击行为分析:我试过 Heap Segment 等不同的工具,最后转向 Jitsu 和 Hotjar。同样在 JitSu 里配置一个 webhook 到 Timeplus。这样,用户在我们产品里的点击行为,或是文档浏览,博客官网浏览等,都可以实时入库。然后通过 ClickHouse 强大的 ip 和数组分析功能,很容易得知最近哪个页面或功能比较热门
- 我们的云服务在 AWS EKS,日志和 metrics 通过 Vector 发到 Timeplus Proton,或者在 Kafka 里缓存。我们就可以通过 Proton 的 SQL,对服务器负载,用户用量等做历史和实时分析
- SOC2 安全审计,在海外部署云服务,免不了SOC2 这样的认证,我们使用 Drata,并把他的实时监控计入导入 Timeplus Proton
- GitHub 的下载量,Star 数量 (麻烦给我们项目点个⭐)这些都可以通过 REST API 来获取数据,再 REST API push 到 Timeplus Proton
这个列表实在太长了 docs.timeplus.com/showcases 有详细信息,和对应文章和截图。
所以,我确实相信对于很多团队,用一个 Proton 这样的全能数据库就可以了。不需要非要上 Hive,非要用 Flink Spark,或用数据湖。
Proton 借助 ClickHouse,这一性能彪悍,功能强大的非 Java 数据库,可以非常可靠的处理历史查询。但是用过 ClickHouse 的同学都知道 ClckHouse 是不适合小文件持续来写的(会产生很多 parts)ClickHouse 的 materialized view 也是挺弱的。
ClckHouse 三四年前就想做流处理的,但这一年重心明显放在 ClickHouse Cloud 上,要和 Snowflake 一争高下。我们团队是全球少数可以吃透 ClickHouse 并做重大改造的团队。我们在 Proton 实现了批流一体的数据分析和存储。已经在给 ClickHouse 社区共享对应 PR。
放一个架构图
我这周在西雅图参加 Flink Forward,遇到阿里的不少大佬和各大公司的数据团队。批流融合已经是是业界共识。Flink 背后的两家大厂 Ververica 和 Confluent 都在做这方面的尝试。Apache Paimon 就是 Flink 社区的兄弟项目,奔着 Streaming WareHouse 去。Confluent 不光做 Kafka 做 Flink,也有心把数据留下来做分析。他们都看到前面的 Databricks 依托 Spark 和 DeltaLake 把用户牢牢绑死,赚的盆满钵满。
Proton 是我们这个团队基于我们在 Splunk,AWS, EMC 等一线大厂数年经验,打磨的新一代融合数据库。性能飞起( www.timeplus.com/post/scary-… 88 million eps), 简单易用(只需要 hoembrew ,用 SQL 完成 pipeline),部署容易 (一个 binary,无需 JVM 调优)
我们的投资方包括高瓴资本,华泰证券等。市面上没有几家可以像我们这样可以做到 4 毫秒端到端延迟。现在我们把他用最友好的 Apache V2 License 开源了, github.com/timeplus-io… 希望得到大家的加⭐关注,试用,和反馈。
欢迎加入 timeplus.com/slack 或在 GitHub 直接开 Issue。