首页 >> 大全

【ClickHouse内核】源码阅读策略

2023-11-14 大全 31 作者:考证青年

目录

开源库简介

搭建运行环境

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

如果您想使用最新的版本,请用替代(我们只推荐您用于测试环境)。

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目录说明

结论

前面我们已经把一个非常大的开源库的各个目录都介绍了,那么后续的文章就从我们理解的数据库常用的SQL执行流程来揭开神秘的面纱并且讲述后续代码阅读的产出物。

分享大数据行业的一些前沿技术和手撕一些开源库的源代码

微信公众号名称:技术茶馆

微信公众号ID :

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了