目录
ClickHouse开源库简介
搭建运行环境
DEB安装包
RPM安装包
针对于ClickHouse库提出问题
阅读开源代码的步骤
阅读代码工具的选择
开源库源码目录分解
程序入口
结论
ClickHouse是一个开源的列式数据库(DBMS),主要用于在线分析处理查询(OLAP),于2016年开源,采用C++开发。凭借优秀的性能,市场反应非常热烈。
从上面简介中提取关键字
ClickHouse库的特点如下
ClickHouse开源库痛点如下
通过简介我们知道了这个开源库是做什么的,主要特性是什么。那么对于这个开源库我们不了解具体实现的时候,我们需要试着使用它,看看它都有什么样的功能。
能搭建开源库的运行环境一定要搭建,因为通过可运行的开源库,我们可以很方便的知道,这个开源库是做什么的?有哪些功能?并且加强了对于整个项目的认知。
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集,因此,除非另有说明,支持它的CPU使用将成为额外的系统需求。下面是检查当前CPU是否支持SSE 4.2的命令:
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
要在不支持SSE 4.2或AArch64,PowerPC64LE架构的处理器上运行ClickHouse,您应该通过适当的配置调整从源代码构建ClickHouse。
建议使用Debian或Ubuntu的官方预编译deb软件包。运行以下命令来安装包:
$ sudo apt-get install apt-transport-https ca-certificates dirmngr
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4
$ echo "deb https://repo.clickhouse.tech/deb/stable/ main/" | sudo tee \ /etc/apt/sources.list.d/clickhouse.list
$ sudo apt-get update
$ sudo apt-get install -y clickhouse-server clickhouse-client
$ sudo service clickhouse-server start clickhouse-client
如果您想使用最新的版本,请用testing替代stable(我们只推荐您用于测试环境)。
推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。
首先,您需要添加官方存储库:
$ sudo yum install yum-utils
$ sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
$ sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
如果您想使用最新的版本,请用testing替代stable(我们只推荐您用于测试环境)。prestable有时也可用。
然后运行命令安装:
$ sudo yum install clickhouse-server clickhouse-client
通过上面两种方式就可以搭建ClickHouse的环境了,让我们一起来使用他吧。
通过使用和对于这个开源库的了解。提出我们想要知道的问题,方便后面我们带着问题去阅读开源项目。
首先看一下ClickHouse源码这么大体工作量, 理解开发一个数据库, 工作量在哪些主要的地方。大致分为下面几大问题:
通过上面的步骤,我们就要真正的阅读开源代码了,那么我们把阅读开源代码也分为几个步骤
推荐使用Understand,这个工具可以很直观的生成调用关系图、类图、时序图。是个非常强大的静态分析工具。
优秀的开源库,从源码的目录就可以很清晰的了解整个程序的架构是什么?有哪些非常重要的组件?
上面是数据库非常重要的功能,那么ClickHouse的程序入口是什么呢?
dbms/programs目录说明
dbms/src目录说明
前面我们已经把一个非常大的开源库ClickHouse的各个目录都介绍了,那么后续的文章就从我们理解的数据库常用的SQL执行流程来揭开ClickHouse神秘的面纱并且讲述后续代码阅读的产出物。