ClickHouse 的安装与基本配置

news/2024/10/4 19:17:41/文章来源:https://blog.csdn.net/Casual_Lei/article/details/141942041

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 在不同环境下的高性能运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ldbm.cn/p/439827.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Swift知识点---RxSwift学习

1. 什么是RxSwift RxSwift是Swift函数响应式编程的一个开源库&#xff0c;由Github的ReactiveX组织开发、维护 RxSwift的目的是&#xff1a;让数据/事件流 和 异步任务能够更方便的序列化处理&#xff0c;能够使用Swift进行响应式编程 RxSwift本质上还是观察者模式&#xff…

iLogtail 开源两周年:社区使用调查报告

作者&#xff1a;玄飏 iLogtail 作为阿里云开源的可观测数据采集器&#xff0c;以其高效、灵活和可扩展的特性&#xff0c;在可观测采集、处理与分析领域受到了广泛的关注与应用。在 iLogtail 两周年之际&#xff0c;我们对 iLogtail 开源社区进行了一次使用调研&#xff0c;旨…

B: 小球反弹

目录 一&#xff1a; 二&#xff1a; 三&#xff1a; 四&#xff1a; 一&#xff1a;问题描述 有一长方形&#xff0c;长为343720 单位长度&#xff0c;宽为233333 单位长度。在其内部左上角顶点有一小球&#xff08;无视其体积&#xff09;&#xff0c;其初速度如图所示且…

为什么要使用大模型RAG一体机

使用大模型RAG&#xff08;Retrieval-Augmented Generation&#xff09;一体机&#xff0c;如AntSKPro AI 离线知识库一体机&#xff0c;有以下几个原因和优势&#xff1a; 提高效率&#xff1a;RAG模型结合了检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generati…

《粮食科技与经济》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《粮食科技与经济》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第一批认定学术期刊。 问&#xff1a;《粮食科技与经济》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a; 湖南省粮食和物资储备局 …

spring boot3框架@Validated失效

项目中使用的springboot3.2.1,在使用Validated校验controller里参数时始终不生效&#xff1b;在网上查了相关资料&#xff0c;添加了spring-boot-starter-validation依赖但还是不行 经过层层调试&#xff0c;终于发现问题&#xff1b; springboot3添加Validated后校验的是 ja…

向量与矩阵几何关系

目录 一、基向量二、向量与基向量三、向量张成的空间四、矩阵与线性变换五、矩阵乘法与线性变换复合 一、基向量 基向量&#xff08;basis vectors&#xff09;是构成向量空间的一组基本元素&#xff0c;它们满足以下条件&#xff1a; 线性无关&#xff1a;基中的向量之间不能…

Matter.js:Web开发者的2D物理引擎

Matter.js&#xff1a;Web开发者的2D物理引擎 前言 在现代网页开发中&#xff0c;交互性和动态效果是提升用户体验的关键因素。 Matter.js&#xff0c;一个专为网页设计的2D物理引擎&#xff0c;为开发者提供了一种简单而强大的方式&#xff0c;来实现复杂的物理交互效果。 …

【Hot100】LeetCode—215. 数组中的第K个最大元素

目录 1- 思路快速选择 2- 实现⭐215. 数组中的第K个最大元素——题解思路 3- ACM实现 原题连接&#xff1a;215. 数组中的第K个最大元素 1- 思路 快速选择 第 k 大的元素的数组下标&#xff1a; int target nums.length - k 1- 根据 partition 分割的区间来判断当前处理方式…

Mac+Pycharm配置PyQt6教程

安装包 pip install PyQt6 PyQt6-tools #查看Qt版本 pip show PyQt6 pip show pyqt6-tools 配置扩展工具 QTD(界面设计) Program&#xff1a;/Users/wan/PycharmProjects/NewDemo/venv/lib/python3.11/site-packages/qt6_applications/Qt/bin/Designer.app Working directo…

Java并发编程实战 07 | 如何正确停止线程

什么时候需要停止一个线程&#xff1f; 一个线程被创建并启动之后&#xff0c;大部分情况下都会自然运行至结束&#xff0c;但是也有一些情况需要主动停止线程&#xff0c;比如&#xff1a; 用户主动取消执行&#xff1a;用户可能会中止一个正在进行的操作&#xff0c;这时需…

Detect It Easy

Detect It Easy&#xff08;简称 DIE&#xff09;项目的网址为 https://github.com/horsicq/Detect-It-Easy 下载完安装包后&#xff0c;直接双击die.exe即可进入到操作界面 工具介绍&#xff1a; 它可以用来检测程序架构和文件类型。如图所示。其中&#xff0c;「模式」说明程…

实习项目|苍穹外卖|day8

导入地址簿功能代码 用户下单 1.根据原型进行需求分析与设计&#xff08;接口文档&#xff09; 2.根据接口设计DTO&#xff08;redis数据类型选取&#xff09; 3.编码controller-》service-》mapper 验证异常多个表查询多个表插入。 4.功能测试 Swagger接口测试前后端联调…

ESP32-驱动0.96寸OLED显示屏

环境&#xff1a;arduino 芯片&#xff1a;ESP32 一、安装驱动库 1.搜索SSD1306,找到带Adafruit SSD1306 因为相似的名称很多,一定要仔细分别. 二、显示 1.OLED连接 我的ESP32 SDA(D21)和SCL(D22) 正负极和ESP32连接,不要接反了 2.显示 1.打开示例 按照如图路径打开一个…

JS解密工具之**如何续期 Charles 的 SSL 证书**

本文由 jsjiami加密/一键JS解密 独家赞助 有问题请私聊加密官方客服 Charles 是一款常用的 HTTP 代理工具&#xff0c;用于调试网络请求。然而&#xff0c;Charles 的 SSL 证书会定期过期&#xff0c;如果 SSL 证书失效&#xff0c;你将无法对 HTTPS 请求进行抓包。本文将详细…

python之对象通过回调函数通信

对象通过回调函数通信是一种在软件设计中常用的技术&#xff0c;它允许对象将某个方法作为参数传递给另一个对象&#xff0c;以便后者在适当的时机调用这个方法。回调函数是一种特别的对象&#xff0c;它是可执行的代码引用&#xff0c;通常用于异步处理、事件处理和通知机制。…

charles配置安卓抓包(避坑版)

下载Charleshttps://www.charlesproxy.com/安装&#xff0c;疯狂点击下一步即可注册&#xff1a;打开Charles&#xff0c;选择“Help”菜单中的“Register Charles”&#xff0c;进网站生成密钥&#xff1a;https://www.zzzmode.com/mytools/charles/,将生成的密钥填入注册重启…

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击阅读原文观看作者直播讲解回放&#xff01; 作者简介 孙洲浩&#xff0c;哈尔滨工业大学SCIR实验室博士生 概述 尽管大语言模型&#xff08;LLMs&#xff09;展现出了非常强大的能力&#xff0c;但它们仍然…

基于SpringBoot的旅游管理系统

好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPSpringBoot 工具&#xff1a;MyEclipse, Tomcat, Navicat 系统展示 首页 用户管理界面 景区信息…

Banana Pi BPI-SM9 AI 计算模组采用算能科技BM1688芯片方案设计

产品概述 香蕉派 Banana Pi BPI-SM9 16-ENC-A3 深度学习计算模组搭载算能科技高集成度处理器 BM1688&#xff0c;功耗低、算力强、接口丰富、兼容性好。支持INT4/INT8/FP16/BF16/FP32混合精度计算&#xff0c;可支持 16 路高清视频实时分析&#xff0c;灵活应对图像、语音、自…