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

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

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

相关文章

Apache Guacamole 安装及配置VNC远程桌面控制

文章目录 官网简介支持多种协议无插件浏览器访问配置和管理应用场景 Podman 部署 Apache Guacamole拉取 docker 镜像docker-compose.yml部署 PostgreSQL生成 initdb.sql 脚本部署 guacamole Guacamole 基本用法配置 VNC 连接 Mac 电脑开启自带的 VNC 服务 官网 https://guacam…

Gmtracker安装中存在的问题

Gmtracker安装中存在的问题 GMtracker安装问题该如何解决&#xff1f; 使用用服务器&#xff0c;在云服务器中使用conda环境 python 3.6的版本环境. pip install -r requirements.txt 在网上查找资料&#xff1a;opencv安装失败卡在这里是因为没有使用高版本的python环境 切换…

MySQL灾难恢复策略:构建稳健的备份与恢复机制

在现代企业环境中&#xff0c;数据的安全性和可靠性至关重要。灾难恢复计划&#xff08;Disaster Recovery Plan, DRP&#xff09;是确保在发生灾难性事件后&#xff0c;能够迅速恢复业务的关键策略。对于依赖MySQL数据库的系统&#xff0c;实现有效的灾难恢复计划尤为重要。本…

流式域套接字通信

流式域套接字服务器端实现&#xff08;TCP&#xff09; #include <myhead.h>#define BACKLOG 5 int main(int argc, const char *argv[]) {int oldfdsocket(AF_UNIX,SOCK_STREAM,0);if(oldfd-1){perror("socket");return -1;}if(access("./server",…

pdf在线转换成word免费版,一键免费转换

在日常的学习和办公中&#xff0c;PDF文件和Word文档是我们离不开的两种最常见的文件&#xff0c;而PDF与Word文档之间的转换成为了我们日常工作中不可或缺的一部分。无论是为了编辑、修改还是共享文件&#xff0c;掌握多种PDF转Word的方法都显得尤为重要。很多小伙伴关心能不能…

摄像头的ISP和SOC的GPU有区别吗?

摄像头的主芯片必须包含ISP&#xff0c;也就是图像处理器核心。而SOC的GPU或者说显卡也包含图像处理器也就是GPU。两者并无本质区别&#xff0c;都是实现数字图像处理算法。同样的用FPGA做内窥镜图像处理和用FPGA做显示图像处理器本质上也是一样的。 当然两者存在一些细微差别…

Flask中 blinker 是什么

在Flask框架中&#xff0c;blinker 是一个非常重要的组件&#xff0c;它作为信号处理的库&#xff0c;为Flask应用提供了一种灵活而强大的事件处理机制。以下是对Flask中blinker的详细阐述&#xff0c;考虑到篇幅限制&#xff0c;无法直接达到5000字&#xff0c;但会尽量全面而…

SpringSecurity Oauth2 - 密码模式完成身份认证获取令牌 [自定义UserDetailsService]

文章目录 1. 授权服务器2. 授权类型1. Password (密码模式)2. Refresh Token&#xff08;刷新令牌&#xff09;3. Client Credentials&#xff08;客户端凭证模式&#xff09; 3. AuthorizationServerConfigurerAdapter4. 自定义 TokenStore 管理令牌1. TokenStore 的作用2. Cu…

Ajax 2024/3/31

Ajax 异步的Javascript和XML 作用&#xff1a; 数据交换&#xff1a;通过Ajax可以给服务器发送请求&#xff0c;并获取服务器响应的数据。 异步交互&#xff1a;可以在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页的技术。 原生Ajax 1.准备数据…

看demo学算法之 贝叶斯网络

大家好&#xff0c;这里是小琳AI课堂&#xff01;今天我们一起来学习贝叶斯网络&#xff0c;这是一种非常酷的图形模型&#xff0c;它能帮助我们理解和处理变量之间的条件依赖关系。&#x1f3a8;&#x1f4ca; 贝叶斯网络基础 首先&#xff0c;贝叶斯网络是基于贝叶斯定理的…

springweb获取请求数据、spring中拦截器

SpringWeb获取请求数据 springWeb支持多种类型的请求参数进行封装 1、使用HttpServletRequest对象接收 PostMapping(path "/login")//post请求//spring自动注入public String login(HttpServletRequest request){ System.out.println(request.getParameter("…

C++基础知识(五)

struct VS class 特性structclass默认访问修饰符publicprivate成员访问权限成员默认是 public成员默认是 private继承方式默认继承方式为 public默认继承方式为 private用途通常用于简单的数据结构或记录通常用于复杂的数据类型和封装成员函数可以有成员函数可以有成员函数构造…

J.U.C Review - CopyOnWrite容器

文章目录 什么是CopyOnWrite容器CopyOnWriteArrayList优点缺点源码示例 仿写&#xff1a;CopyOnWriteMap的实现注意事项 什么是CopyOnWrite容器 CopyOnWrite容器是一种实现了写时复制&#xff08;Copy-On-Write&#xff0c;COW&#xff09;机制的并发容器。在并发场景中&#…

请解释一下 JDBC 的作用,并给出一个简单的使用 JDBC 查询数据库的例子?

JDBC (Java Database Connectivity) 是 Java 编程语言中用于连接和操作关系型数据库的标准 API。 它的主要作用是为 Java 应用程序提供了一种标准的方式来访问和处理数据库中的数据&#xff0c;而不需要关心底层具体的数据库系统&#xff08;如 MySQL, Oracle, PostgreSQL 等&…

半导体产业核心环节有哪些?2024年中国半导体产业研究报告大揭秘!

半导体指常温下导电性能介于导体与绝缘体之间的材料。半导体应用在集成电路、消费电子、通信系统、光伏发电、照明应用、大功率电源转换等领域。半导体产业经济则是指以半导体产品为核心的经济活动&#xff0c;包括芯片设计、制造、封装测试及应用等。它是全球经济的支柱&#…

ActiViz中的粒子系统详细解析

文章目录 简介粒子系统的基本概念VTK 中的相关类实现粒子系统的步骤C# 示例代码总结简介 在 ActiViz(基于 VTK 的 .NET 封装)中创建粒子系统,可以用来模拟和渲染像烟、火、雨等现象。VTK 提供了多种类和方法来实现粒子系统。由于 ActiViz 是 VTK 的封装,所以它具备 VTK 的…

Android实现自定义方向盘-5livedata实现

实现方向盘 将方向盘控件的实现转换为使用 LiveData 来管理和观察指针角度变化&#xff0c;能够更好地与 MVVM 架构相结合。通过 LiveData&#xff0c;我们可以方便地将角度的变化传递给观察者&#xff08;例如 UI 组件或 ViewModel&#xff09;&#xff0c;从而实现数据驱动的…

【mysql】mysql修改sql_mode之后无法启动

现象&#xff1a;修改后mysql无法启动&#xff0c;不报错 原因&#xff1a;MySQL在8以后sql_mode已经取消了NO_AUTO_CREATE_USER这个关键字。去掉这个关键字后&#xff0c;启动就可以了 修改前&#xff1a; sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR…

C++学习笔记(7)

181、string 容器 string 是字符容器&#xff0c;内部维护了一个动态的字符数组。 与普通的字符数组相比&#xff0c;string 容器有三个优点&#xff1a;1&#xff09;使用的时候&#xff0c;不必考虑内存分配和释放的问题&#xff1b; 2&#xff09;动态管理内存&#xff08;可…

docke实战扩展二(docker build -t nginx:latest . 实战详解)

docker build -t nginx:latest . 是 Docker 中用于构建镜像的命令。下面我们来详细解释这个命令,并通过一个具体的生产案例来演示其实际应用。 命令解释 docker build:这是 Docker CLI 中用于构建镜像的命令。-t nginx:latest:这是为构建的镜像指定标签(tag)。-t 是 --ta…