ClickHouse 开源十周年:回顾从原型到开源的发展历程 ClickHouse 开源十周年资讯及相关资源可将 ClickHouse 标志复制为 SVG还能下载完整标志和标志图标。可打开搜索、区域选择器有英文、日文选项和菜单。菜单中产品包括 ClickHouse Cloud使用 ClickHouse 的最佳方式可在 AWS、GCP 和 Azure 上使用、Bring Your Own Cloud完全托管的 ClickHouse 服务部署在自己的 AWS、GCP 或 Azure 账户中等开源项目有 ClickHouse用于实时分析的快速开源 OLAP 数据库、ClickStack用于日志、指标、跟踪和会话回放的开源可观测性栈等。解决方案涵盖用例如实时分析、可观测性等和行业如网络安全、游戏与娱乐等。还有文档、资源公司资源包含用户案例、博客等对比包含基准测试中心、与 BigQuery 等对比、定价、联系我们等内容。此外有 GitHub 上的关注量、登录和开始使用的入口以及滚动到顶部、返回博客和工程页面等操作还能以 Markdown 格式查看、在 ChatGPT 等中打开页面。ClickHouse 开源十周年纪念2026 年 6 月 15 日发布的文章回顾ClickHouse 于 10 年前的 2016 年 6 月 15 日开源发布如今成为最受欢迎的开源分析数据库拥有超 2000 名贡献者。开放式开发开源有不同层次第 0 层是将代码公开供人阅读如 Doom 或 MS - DOS 的存档和博物馆式发布第 1 层是软件通过公共仓库中的提交更新但不一定接受贡献者像 SQLite 和 Ladybird第 2 层是接受贡献但无透明和开放的开发流程多数活跃开源项目处于此层第 3 层拥有开放的贡献指南、任务跟踪器、代码审查系统、开发路线图、测试和持续集成CI系统、发布周期、用户支持以及文档。ClickHouse 追求做到最好是构建优秀数据库的最佳范例其源代码和开发实践可供参考是学习 C 开发的好地方能学习到 C23 等兴奋内容和构建系统等基础内容是进行数据结构和性能优化实验的平台可发起实验性拉取请求进行测试也是让贡献者为自己工作感到自豪的地方在更新日志和 system.contributors 表中对贡献者致谢会帮助完成贡献者提交的不完整功能关心贡献者的用例和想法。开源之前原型与首次提交ClickHouse 的首次提交在 2009 年 5 月 29 日是一次性能优化。最初它是为网络分析系统进行数据处理的实验该系统类似 Google Analytics使用 MySQL 实现数据处理用 C在 MySQL 无法满足需求处用自定义 C 数据结构。当时数据量增长新数据实时出现需在 5 分钟内处理 5 分钟的日志块否则会产生延迟为此尝试了各种数据库、库等。为实现新功能探索了面向列的数据库测试了 MySQL 扩展和独立分析数据库但都无法处理每天 1000 亿条记录、500 列的数据。之后实现了简单的自定义数据结构原型 OLAPServer奏效后又创建端点分析全球互联网数据。接着决定替换 MySQL 中的聚合报告实现了用于增量聚合的自定义数据结构 Metrage。最终有了面向列和面向行的两个自定义数据结构后来思考将面向列方法用于聚合速度、合并树用于实时更新和数据局部性并推广以支持真正的查询语言和数据类型这就是 ClickHouse 的诞生过程。ClickHouse 是如何构建的ClickHouse 完全从头开始实现2009 年首次提交与同一单仓库中其他数据结构的优化有关。实现新数据库管理系统的首次提交实现了内存中的列当时 Apache Arrow 等面向列的格式还不存在。接着引入聚合函数然后引入表引擎最初表引擎被命名为“主键”第一个表引擎类似于 TinyLog。随后添加压缩功能最初用 QuickLZ后替换为 LZ4。接着是块流如今被处理器取代这为格式化结果和在表上实现查询开辟道路还添加了 StorageSystemNumbers 用于测试查询管道。ClickHouse 代码库中的第一个关系运算符是 LIMIT尝试添加 SQL 解析器第一次用 boost::spirit 失败后制作递归下降解析器。一些最初想法要么被拒绝要么后来重新引入如包含可变长度编码数字的列、Variant 列类型、固定和可变大小的数组数据类型等。可以看到 ClickHouse 中测试的第一个真实表结构尝试读写表时因 C iostreams 速度慢引入了 WriteBuffer、ReadBuffer。SQL 中的第一个函数是算术运算符实现了第一个 SELECT 查询解释器当时只能从测试程序中访问但允许快速实现新的聚合和常规函数等组件。ClickHouse 服务器于 2012 年 3 月 9 日引入clickhouse - client 于 3 月 25 日引入结合多种表引擎可将 ClickHouse 部署到生产环境首次生产应用是带有 SQL 查询功能的持久日志队列。然后添加了 MergeTree可在后台对数据进行增量排序替代早期两个原型。2012 年招聘了第二名员工 Michael Kolupaev。生产环境部署在多个区域数据中心为实现高可用和一致性使用 ZooKeeper 作为协调系统Michael 实现了 ReplicatedMergeTree使 ClickHouse 能在 2014 年部署到面向用户的查询生产环境中。ClickHouse 是如何开源的2014 年ClickHouse 投入生产每天存储数千亿条记录能实时响应客户查询还让公司数据科学家计算互联网趋势发布了使用文档。其他部门尝试并将一些用例从其他系统迁移过来。到 2014 年底ClickHouse 得到广泛应用但仅在一家公司使用欧洲核子研究组织CERN也在 LHCb 实验中合作部署了它。观看技术会议演讲和阅读博客后发现其他公司工程师常做类似 OLAPServer 或 Metrage 的事情2015 年发表关于 ClickHouse 的文章证明了人们对它的兴趣于是想让每个人都能使用它来填补空白。