【ClickHouse内核】源码阅读策略

目录
开源库简介
搭建运行环境
DEB安装包
RPM安装包
针对于库提出问题
阅读开源代码的步骤
阅读代码工具的选择
开源库源码目录分解
程序入口
结论
开源库简介
是一个开源的列式数据库(DBMS),主要用于在线分析处理查询(OLAP),于2016年开源,采用C++开发 。凭借优秀的性能,市场反应非常热烈 。
从上面简介中提取关键字
库的特点如下
开源库痛点如下
通过简介我们知道了这个开源库是做什么的,主要特性是什么 。那么对于这个开源库我们不了解具体实现的时候,我们需要试着使用它,看看它都有什么样的功能 。
搭建运行环境
能搭建开源库的运行环境一定要搭建,因为通过可运行的开源库,我们可以很方便的知道,这个开源库是做什么的?有哪些功能?并且加强了对于整个项目的认知 。
可以在任何具有,或 CPU架构的Linux,或Mac OS X上运行 。
官方预构建的二进制文件通常针对进行编译,并利用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或,架构的处理器上运行,您应该通过适当的配置调整从源代码构建 。
DEB安装包
建议使用或的官方预编译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
【【ClickHouse内核】源码阅读策略】如果您想使用最新的版本,请用替代(我们只推荐您用于测试环境) 。
RPM安装包
推荐使用、和所有其他基于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
如果您想使用最新的版本,请用替代(我们只推荐您用于测试环境) 。有时也可用 。
然后运行命令安装:
$ sudo yum install clickhouse-server clickhouse-client
通过上面两种方式就可以搭建的环境了,让我们一起来使用他吧 。
通过使用和对于这个开源库的了解 。提出我们想要知道的问题,方便后面我们带着问题去阅读开源项目 。
针对于库提出问题
首先看一下源码这么大体工作量,理解开发一个数据库,工作量在哪些主要的地方 。大致分为下面几大问题:
阅读开源代码的步骤
通过上面的步骤,我们就要真正的阅读开源代码了,那么我们把阅读开源代码也分为几个步骤
阅读代码工具的选择
推荐使用,这个工具可以很直观的生成调用关系图、类图、时序图 。是个非常强大的静态分析工具 。
开源库源码目录分解
优秀的开源库,从源码的目录就可以很清晰的了解整个程序的架构是什么?有哪些非常重要的组件?
程序入口
上面是数据库非常重要的功能,那么的程序入口是什么呢?
dbms/目录说明
dbms/src目录说明
结论