ClickHouse原理解析与应用实践
上QQ阅读APP看书,第一时间看更新

前言

为什么要写这本书

生生不息,“折腾”不止。为什么新的技术层出不穷,一直会更替变换?因为人们总是乐于追求更加美好的事物,因此业务总会产生新的诉求。

在软件领域,技术与业务犹如一对不可拆分的双轨车道,承载着产品这辆火车稳步向前。一方面,业务的诉求必须得到满足,所以它倒逼技术提升;另一方面,技术的提升又为业务模式带来了新的可能。

在我所处的BI分析领域,分析软件的产品形态和底层技术就历经了几番更替。特别是在近些年,随着数字化转型浪潮的持续加温,以及“自服务”“人人都是分析师”等理念的进一步推广,分析型软件对底层OLAP技术的实时性提出了越来越苛刻的要求。传统数据库技术早已不堪重负,以Hadoop生态为代表的大数据技术也遇到了各种各样的难题。

在一次机缘巧合下我接触到了ClickHouse,我对它最初的印象极为深刻,ROLAP、在线实时查询、完整的DBMS、列式存储、不需要任何数据预处理、支持批量更新、具有非常完善的SQL支持和函数、支持高可用、不依赖Hadoop复杂生态、开箱即用……借助它仿佛就能解决所有的难题。在经过一番论证之后,我们用ClickHouse完全替换了公司现有产品的底层实现,使公司产品相关性能得到大幅提升。

ClickHouse就是这样一款拥有卓越性能的OLAP数据库,是目前业界公认的OLAP数据库黑马,有很大的发展潜力,并且已经在许多企业的内部得到应用。

然而在使用的过程中,我发现ClickHouse的学习资料匮乏,除了官方手册之外,基本没有其他成体系的资料。即便是官方手册,也缺乏一些原理性的解释。虽然它早在2016年就进行了开源,然而截至目前,市面上也没有一本相关的书籍。

作为一名ClickHouse的贡献者,我觉得有义务做些什么。所以我对自己在实践和学习ClickHouse的过程中得到的经验进行了梳理和总结,并编写成书,分享给各位读者。与此同时,也希望将这款优秀的开源软件介绍给更多的朋友。最后,希望本书能够在各位读者应用ClickHouse时提供一定的帮助。