clickhouse源码分析

  • Post author:
  • Post category:其他




clickhouse源码分析(一)

  • 简单介绍

    clichouse是由俄罗斯yandex公司的大数据引擎团队开发的分析型数据库。在2016年发布,经过几年的跌代现在被国内外很多大小公司在各种场景使用。clickhouse的轻量级,多种协议接口,SQL兼容性,优秀的导入和查询速度等等特性。被国内外的企业和数据分析从业人员所喜欢。
  • 代码下载

    clickhouse github链 接https://github.com/ClickHouse/ClickHouse.git 下载的时候最好使用git下载(下载的代码的不用创建git仓库就能编译)

    下载完成后:在$SOURCE_DIR/Clickhouse目录下执行

    git submodule update –init –recursive (将编译clickhouse需要的第三方包和插件下载)
  • 编译

    1.安装编译器(不同版本的clickhouse对于编译器的版本有不同的要求)使用gcc或者clang进行编译。之前的版本是用gcc编译的。2020之后官方推荐clang。

    clang 比 gcc好在哪里?

    编译速度快:在某些平台上,Clang的编译速度显著的快过GCC(Debug模式下编译OC速度比GGC快3倍)

    占用内存小:Clang生成的AST所占用的内存是GCC的五分之一左右

    模块化设计:Clang采用基于库的模块化设计,易于 IDE 集成及其他用途的重用

    诊断信息可读性强:在编译过程中,Clang 创建并保留了大量详细的元数据 (metadata),有利于调试和错误报告

    设计清晰简单,容易理解,易于扩展增强

    官方编译文档:https://clickhouse.tech/docs/en/development/build/

    –对于在arm架构上编译我直接在arm平台上编译有很多问题,之后在x86上使用交叉编译,交叉编译的官方文档上有些问题,在一些目录要进行修改才能编译通过。官方文档:https://clickhouse.tech/docs/en/development/build-cross-arm/
  • 第三方包和工具介绍

    poco clickhouse使用poco框架开发。

    llvm 模块化编译工具

    zstd 压缩算法

    lz4-hc 压缩算法

    ssse 向量化计算

    jemalloc 内存管理工具

    zookeeper 分布式管理工具



版权声明:本文为a615549958原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。