当前位置: 首页 > news >正文

ClickHouse 的安装与基本配置

ClickHouse 是一款高性能的列式数据库管理系统,特别适合用于大数据分析。以下是 ClickHouse 的安装与基本配置步骤,涵盖了在常见平台(如 Linux)上的安装和基础配置。

1. 安装 ClickHouse

在 Linux (Ubuntu/Debian) 上安装

在 Ubuntu 或 Debian 上安装 ClickHouse 非常简单,可以通过官方的 APT 仓库安装。

  1. 更新系统包管理器

    sudo apt-get update
    
  2. 安装 HTTPS 传输工具

    sudo apt-get install apt-transport-https ca-certificates dirmngr
    
  3. 添加 ClickHouse APT 源

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
    echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
    
  4. 安装 ClickHouse Server 和客户端

    sudo apt-get update
    sudo apt-get install clickhouse-server clickhouse-client
    
  5. 启动 ClickHouse 服务

    sudo service clickhouse-server start
    
  6. 检查 ClickHouse 服务状态

    sudo service clickhouse-server status
    
在 CentOS/RHEL 上安装

对于 CentOS/RHEL 系统,也可以通过官方 RPM 仓库安装 ClickHouse。

  1. 添加 ClickHouse YUM 源

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
    
  2. 安装 ClickHouse Server 和客户端

    sudo yum install -y clickhouse-server clickhouse-client
    
  3. 启动 ClickHouse 服务

    sudo service clickhouse-server start
    
  4. 检查服务状态

    sudo service clickhouse-server status
    

2. 配置 ClickHouse

ClickHouse 的默认配置文件位于 /etc/clickhouse-server/config.xml,其中包含了所有服务的配置选项。以下是一些常见的配置调整:

2.1 配置监听地址

默认情况下,ClickHouse 监听所有网络接口的 8123(HTTP)和 9000(TCP)端口。如果需要更改绑定地址,可以在配置文件中修改。

  • 编辑 /etc/clickhouse-server/config.xml,找到 <listen_host> 部分:

    <listen_host>::</listen_host> <!-- 默认监听所有接口 -->
    

可以将 :: 改为特定的 IP 地址,如 127.0.0.1 以限制为本地访问。

2.2 配置存储路径

ClickHouse 的数据默认存储在 /var/lib/clickhouse/ 目录下。你可以修改数据存储路径来存储在其他磁盘或分区。

  • 编辑 /etc/clickhouse-server/config.xml 文件中的 <path> 标签:

    <path>/your/custom/path/</path>
    
2.3 配置日志文件路径

ClickHouse 的日志文件默认存放在 /var/log/clickhouse-server/ 目录中,可以修改为其他路径。

  • 修改 <logger> 部分:

    <logger><log>/your/custom/path/clickhouse-server.log</log><errorlog>/your/custom/path/clickhouse-server.err.log</errorlog><size>1000M</size><count>10</count>
    </logger>
    
2.4 配置用户权限

默认的用户名为 default,无密码。如果你想配置用户权限,可以在 /etc/clickhouse-server/users.xml 文件中进行修改:

  • 配置用户:

    <users><default><password>your_password</password> <!-- 设置密码 --><networks><ip>::/0</ip> <!-- 默认允许所有 IP 访问 --></networks><profile>default</profile> <!-- 分配权限 --></default>
    </users>
    

3. 使用 ClickHouse 客户端

安装和配置完成后,可以通过 ClickHouse 客户端连接并执行查询。

  1. 连接 ClickHouse

    clickhouse-client
    
  2. 创建数据库

    CREATE DATABASE mydb;
    
  3. 创建表

    CREATE TABLE mydb.mytable (id UInt32,name String,age UInt8
    ) ENGINE = MergeTree()
    ORDER BY id;
    
  4. 插入数据

    INSERT INTO mydb.mytable VALUES (1, 'Alice', 30), (2, 'Bob', 25);
    
  5. 查询数据

    SELECT * FROM mydb.mytable;
    

4. 常见性能优化配置

ClickHouse 是为高性能设计的,但你仍然可以通过一些配置来进一步优化性能。

4.1 调整最大并行查询数

可以调整最大并行查询数来控制并发量:

  • 修改 /etc/clickhouse-server/config.xml 文件中的 <max_concurrent_queries>

    <max_concurrent_queries>100</max_concurrent_queries>
    
4.2 优化 MergeTree 引擎参数

MergeTree 是 ClickHouse 中最常用的表引擎,提供了高效的列式存储和查询性能。以下是一些常用的 MergeTree 参数调整:

  • min_bytes_for_wide_part: 定义使用宽数据部分的最小文件大小。

  • index_granularity: 设置索引粒度,以平衡查询性能和存储空间。

    CREATE TABLE mytable (id UInt32,name String
    ) ENGINE = MergeTree()
    ORDER BY id
    SETTINGS index_granularity = 8192;
    
4.3 压缩设置

可以通过配置文件中的压缩设置来优化存储效率:

  • /etc/clickhouse-server/config.xml 中的 <compression> 节点中添加配置:

    <compression><case><min_part_size>10000000000</min_part_size><min_part_size_ratio>0.01</min_part_size_ratio><method>zstd</method></case>
    </compression>
    

5. 启动和管理服务

  • 启动服务

    sudo service clickhouse-server start
    
  • 停止服务

    sudo service clickhouse-server stop
    
  • 重启服务

    sudo service clickhouse-server restart
    

6. 检查服务状态:

sudo service clickhouse-server status

这一步能帮助你确认 ClickHouse 服务是否正常运行,出现问题时可以查看日志进行排查。

6. 安全设置

如果 ClickHouse 是对外提供服务,建议进行以下安全设置:

  • 防火墙配置:仅允许可信任的 IP 地址访问 ClickHouse 的 HTTP 和 TCP 端口(默认 8123 和 9000)。

    sudo ufw allow from [your-trusted-ip] to any port 8123
    sudo ufw allow from [your-trusted-ip] to any port 9000
    
  • 启用 SSL:通过配置 ClickHouse 支持 HTTPS 安全访问。你可以在配置文件中设置 SSL 证书路径。

    <https_port>8443</https_port>
    <openSSL><server><certificateFile>/path/to/certificate.crt</certificateFile><privateKeyFile>/path/to/private.key</privateKeyFile></server>
    </openSSL>
    

这样,你就能通过 HTTPS 安全地访问 ClickHouse。

总结

ClickHouse 是一款高效的列式数据库,安装和配置都比较简单。通过调整配置文件和合理设置用户权限,可以确保 ClickHouse 在不同环境下的高性能运行。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++深入理解哈希表的设计与实现:处理冲突的多种方法
  • Python股票接口实现量化交易的优势是什么
  • Ubuntu环境的MySql下载安装
  • Flutter自动打包ios ipa并且上传
  • 【BIO、NIO、AIO适用场景分析】
  • 大数据-119 - Flink Window总览 窗口机制-滚动时间窗口-基于时间驱动基于事件驱动
  • Word封面对齐技巧
  • 数据库中的逐行数据处理
  • FPGA随记——OSERDESE2和IERDESE2
  • (纯JS)图片裁剪
  • PyTorch 创建数据集
  • 《论系统安全架构设计及其应用》写作框架,软考高级系统架构设计师
  • 面经学习(hbkj实习)
  • 如何在Mac中修改pip的镜像源
  • 【MySQL】批量插入数据造数-存储过程
  • #Java异常处理
  • 「译」Node.js Streams 基础
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 2017-08-04 前端日报
  • 345-反转字符串中的元音字母
  • isset在php5.6-和php7.0+的一些差异
  • Java比较器对数组,集合排序
  • Java反射-动态类加载和重新加载
  • Logstash 参考指南(目录)
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Odoo domain写法及运用
  • RxJS: 简单入门
  • socket.io+express实现聊天室的思考(三)
  • 初识 webpack
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 解析带emoji和链接的聊天系统消息
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微服务入门【系列视频课程】
  • 无服务器化是企业 IT 架构的未来吗?
  • 一道面试题引发的“血案”
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 一文看透浏览器架构
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ![CDATA[ ]] 是什么东东
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (NSDate) 时间 (time )比较
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (vue)页面文件上传获取:action地址
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (十一)手动添加用户和文件的特殊权限
  • (算法)大数的进制转换
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (学习日记)2024.01.09
  • (译)计算距离、方位和更多经纬度之间的点
  • (转) 深度模型优化性能 调参
  • (转)VC++中ondraw在什么时候调用的