ClickHouse 24.5.3:全面解析与RPM单节点轻松部署!

news2025/7/9 20:35:33

3a3fef859514522f698e45d286612f7b.jpeg

简介

   ClickHouse是由俄罗斯的Yandex公司开发的开源列式数据库管理系统。它最早于2016年开源,主要用于实时数据分析。ClickHouse通过列存储、向量化执行、并行计算等技术,实现了对大规模数据集的快速查询和分析,特别适合实时数据分析和商业智能需求。

ClickHouse的特点

  1. 列式存储:ClickHouse采用列式存储,能够在查询时只读取相关列的数据,从而提高查询速度,减少I/O开销。

  2. 实时数据分析:适合实时数据分析场景,支持高吞吐量的数据写入和复杂查询。

  3. 高性能:通过并行处理、向量化执行等技术,ClickHouse能够在大规模数据集上实现高效的查询性能。

  4. 支持SQL:支持SQL查询语言,易于上手,方便开发者进行数据操作。

  5. 水平扩展:支持分布式部署,能够通过增加节点扩展系统的存储和计算能力。

  6. 高压缩比:提供多种压缩算法,能够显著减少存储空间占用。

  7. 数据磁盘存储:通过按主键对数据进行物理排序,可以在不到几十毫秒的时间内以低延迟根据特定值或值范围提取数据。

  8. 多核并行处理:每个查询被分解成多个任务,这些任务可以在多个CPU核上并行执行。

  9. 向量计算引擎:数据不仅按列存储,还按向量(数据按块)进行处理,从而实现高效的CPU利用率。

  10. 实时数据插入:ClickHouse支持高吞吐量的实时数据插入,能够处理高频率的数据写入。

  11. 支持近似计算:在处理大规模数据集时,近似计算是一种有效的策略,用于在可接受的精度范围内快速得到结果。

  12. 索引:ClickHouse提供多种索引机制来加速查询。

  13. 自适应连接算法:ClickHouse实现了自适应连接算法,根据查询的数据量和分布情况自动选择最优的连接策略。

  14. 数据复制和数据完整性支持:ClickHouse 使用异步多主复制。在写入任意可用副本后,所有其他副本会在后台获取它们的副本。

  15. 基于角色的访问控制:ClickHouse使用SQL查询实现用户帐户管理,并允许基于角色的访问控制配置,类似于ANSI SQL标准和流行的关系数据库管理系统中的配置。

ClickHouse的优缺点

优点

  1. 查询性能优越:通过列式存储和高效的查询引擎,ClickHouse在处理大规模数据查询时表现出色。

  2. 实时性强:支持高吞吐量的数据写入和实时查询,适用于实时数据分析场景。

  3. 易于扩展:支持分布式架构,能够通过增加节点实现系统的水平扩展。

  4. 丰富的功能:支持复杂查询、聚合、窗口函数等高级SQL功能,满足各种分析需求。

  5. 开放源码:作为开源项目,拥有活跃的社区支持和丰富的文档资源。

缺点

  1. 事务处理:不支持完整的事务,限制了在需要复杂事务操作的应用中的使用。

  2. 实时数据修改:缺乏对已插入数据进行高频率、低延迟修改和删除的能力。

  3. 稀疏索引:稀疏索引在通过键检索单行数据时效率较低。

ClickHouse的使用场景

  1. 实时数据分析:适用于金融、广告、电商等行业的实时数据分析需求,能够处理大规模数据的实时查询和分析。

  2. 商业智能:支持复杂的SQL查询和数据分析功能,适合商业智能平台的数据仓库。

  3. 日志和监控数据分析:可以用于分析和存储大量的日志数据和监控数据,实现实时的系统监控和告警。

  4. 用户行为分析:适合互联网公司对用户行为数据进行分析,如点击流分析、用户画像等。

安装部署

打开文件数限制

[root@test19-server07 ~]# cat /etc/security/limits.conf
*               soft    nproc           65535
*               hard    nproc           65535
*               soft    nofile          204800
*               hard    nofile          204800

RPM 包添加官方仓库

yum install -y yum-utils
yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

对于带有软件包管理器(openSUSE、SLES)的系统:zypper

zypper addrepo -r https://packages.clickhouse.com/rpm/clickhouse.repo -g
zypper --gpg-auto-import-keys refresh clickhouse-stable
以后 any 可以替换为 .要指定特定版本,请在软件包名称的末尾添加,例如 .yum installzypper install-$VERSIONclickhouse-client-22.2.2.22

安装ClickHouse服务器和客户端

yum install -y clickhouse-server clickhouse-client


变更目录记得创建以及授权
mkdir /jesong/clickhouse
chown -R clickhouse:clickhouse clickhouse

修改配置文件

系统级参数  config.xml

vim /etc/clickhouse-server/config.xml
开启远程机器登录


    <listen_host>::</listen_host>


数据目录
 <!-- Path to data directory, with trailing slash. -->
    <path>/jesong/clickhouse/</path>


日志目录
 <level>notice</level>
        <log>/var/log/clickhouse-server/clickhouse-server.log</log>
        <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>


设置时区为东八区
<timezone>Asia/Shanghai</timezone>


内存数5GB
 <max_server_memory_usage>5000000000</max_server_memory_usage>

用户权限\查询优化参数users.xml

vim /etc/clickhouse-server/users.xml
查询使用的最大线程数
<max_threads>8</max_threads>
查询的最大执行时间
<max_execution_time>600</max_execution_time>

users.xml模版仅供参考

<!-- Settings profiles -->
<profiles>
    <!-- Default settings -->
    <default>
        <!-- The maximum number of threads when running a single query. -->
        <max_threads>8</max_threads>
    </default>


    <!-- Settings for queries from the user interface -->
    <web>
        <max_rows_to_read>1000000000</max_rows_to_read>
        <max_bytes_to_read>100000000000</max_bytes_to_read>


        <max_rows_to_group_by>1000000</max_rows_to_group_by>
        <group_by_overflow_mode>any</group_by_overflow_mode>


        <max_rows_to_sort>1000000</max_rows_to_sort>
        <max_bytes_to_sort>1000000000</max_bytes_to_sort>


        <max_result_rows>100000</max_result_rows>
        <max_result_bytes>100000000</max_result_bytes>
        <result_overflow_mode>break</result_overflow_mode>


        <max_execution_time>600</max_execution_time>
        <min_execution_speed>1000000</min_execution_speed>
        <timeout_before_checking_execution_speed>15</timeout_before_checking_execution_speed>


        <max_columns_to_read>25</max_columns_to_read>
        <max_temporary_columns>100</max_temporary_columns>
        <max_temporary_non_const_columns>50</max_temporary_non_const_columns>


        <max_subquery_depth>2</max_subquery_depth>
        <max_pipeline_depth>25</max_pipeline_depth>
        <max_ast_depth>50</max_ast_depth>
        <max_ast_elements>100</max_ast_elements>


        <max_sessions_for_user>4</max_sessions_for_user>


        <readonly>1</readonly>
    </web>
</profiles>

优化参数及其说明(参考)

1. 系统级参数
这些参数通常设置在config.xml文件中:
max_connections: 设置最大并发连接数。
listen_host: 设置服务器监听的主机地址,可以设置为特定IP地址或0.0.0.0来监听所有地址。
listen_try: 设置尝试绑定的次数,以避免在启动时由于端口占用而失败。
max_server_memory_usage: 限制服务器内存使用量。
path: 数据存储的主路径。
tmp_path: 临时文件路径。
user_files_path: 用户文件的存储路径。
format_schema_path: 格式模式文件的路径。
log_level: 日志记录级别。


2. 用户和权限参数
这些参数设置在users.xml文件中:
readonly: 设置是否为只读模式。
max_memory_usage: 每个用户的最大内存使用量。
max_concurrent_queries: 每个用户的最大并发查询数。
profile: 指定用户使用的资源配置文件。
quota: 指定用户的配额设置。


3. 表和数据引擎参数
这些参数可以在表创建时设置:
primary_key: 设置表的主键。
index_granularity: 设置索引粒度,影响数据块的大小。
merge_tree: MergeTree引擎的参数,如parts_to_throw_insert和max_partitions_to_read。


4. 查询优化参数
这些参数可以在查询时使用,也可以在服务器级别进行配置:
max_threads: 查询使用的最大线程数。
max_execution_time: 查询的最大执行时间。
use_uncompressed_cache: 是否使用未压缩的缓存。
max_block_size: 查询时返回的最大数据块大小。
min_insert_block_size_rows: 插入时的最小行数。
min_insert_block_size_bytes: 插入时的最小字节数。


5. 网络和缓存参数
这些参数可以在config.xml中设置:
max_network_bandwidth: 限制服务器的最大网络带宽。
max_broken_connections: 设置允许的最大断开连接数。
tcp_keep_alive_timeout: 设置TCP连接的保持时间。


6. 存储和文件系统参数
这些参数在config.xml中设置:
merge_max_block_size: 合并时的最大数据块大小。
merge_tree_min_rows_for_wide_part: 创建宽部件的最小行数。
merge_tree_max_rows_to_use_cache: 使用缓存的最大行数。


7. 日志和监控参数
这些参数也在config.xml中设置:
log_path: 日志文件的存储路径。
query_log: 是否启用查询日志。
metric_log: 是否启用度量日志。
trace_log: 是否启用跟踪日志。

启动服务

systemctl enable clickhouse-server
systemctl start clickhouse-server
systemctl status clickhouse-server
clickhouse-client

创建账户

登录超管:clickhouse-client --user=default
创建root账户
CREATE USER root IDENTIFIED WITH sha256_password BY 'dbapassword1vc3rcsSDFs23e';
GRANT SELECT, INSERT, UPDATE, DELETE,ALTER,DROP,TRUNCATE ON *.* TO root;


登录root账户
 clickhouse-client --user=root --password
 show databases;

总结

     ClickHouse是一款高性能的开源列式数据库管理系统,特别适用于实时数据分析和大规模数据查询场景。其列式存储、向量化执行、并行处理等技术特点,使得它在处理海量数据时具有显著优势。然而,ClickHouse在写入性能、事务支持、生态系统等方面仍存在一定的局限性。总体而言,对于需要快速、实时数据分析的应用场景,ClickHouse是一个值得推荐的选择。

公众号内直接回复加群也可以,扫码加群也可以,觉得帖子写的不错,点点关注,点点赞,多多转载。

加入数据库技术交流群:

8695a428375969fd69cd27cdd06820d1.jpeg

进群福利:

1、知识共享与学习机会

2、问题求助与解决支持

3、技术沉淀和分享平台

4、及时了解行业动态

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

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

相关文章

LayoutSystem布局系统

简介: LayoutSystem,是UGUI中由CanvasUpdateSystem发起(m_LayoutRebuildQueue中大部分都是LayoutRebuilder)的关于布局排列的处理系统。 类图: 布局过程 核心代码讲解: LayoutRebuilder

001.VMware Workstation Pro虚拟平台安装

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

探秘企业成功的秘密武器:这个知识库搭建攻略你必须知道

在数字化浪潮中,你的企业还在用传统的信息管理方式吗?别落后了!最新的企业知识库搭建攻略来了,它将是你提升企业竞争力、创新能力和员工效率的强力工具。让我们一起探索如何构建自己的知识王国,解锁企业成功的秘诀! 一、为什么你的企业需要立刻行动搭建知识库? 信息孤…

GWO-CNN-SVM,基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

GWO-CNN-SVM&#xff0c;基于GWO灰狼优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1. GWO灰狼优化算法 灰狼优化算法&#xff08;Grey Wolf Optimizer, GWO&#xff09;是一种启发式优化算法&#xff0c;模拟了灰狼群体的社会行为&#xff0c;包…

apache activeMq

https://blog.csdn.net/qq_29651203/article/details/108487924 游览器输入地址: http://127.0.0.1:8161/admin/ 访问activemq管理台 账号和密码默认为: admin/admin# yml配置的密码也是如下的密码 activemq:url: failover:(tcp://localhost:61616)username: adminpassword: ad…

C语言程序设计-13 文件

13.1 C 文件概述 所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称&#xff0c;叫做文件名。实 际上在前面的各章中我们已经多次使用了文件&#xff0c;例如源程序文件、目标文件、可执行文件、 库文件 (头文件)等。 文件通常是驻留在外部介质(如磁盘等)上的&am…

Linux中的全局环境变量和局部环境变量

Linux中的全局环境变量和局部环境变量 一、全局环境变量二、局部环境变量三、 设置全局环境变量 bash shell用一个叫作环境变量 &#xff08;environment variable&#xff09;的特性来存储有关shell会话和工作环境的信息&#xff08;这也是它们被称作环境变量的原 因&#xff…

Go自定义数据的序列化流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

第一题(伏羲六十四卦)

题目&#xff1a; 首先伏羲64卦解密 再用base64解密即可

【网络安全学习】漏洞扫描:-04- ZAP漏洞扫描工具

**ZAP(Zed Attack Proxy)**是一款由OWASP组织开发的免费且开源的安全测试工具。 ZAP支持认证、AJAX爬取、自动化扫描、强制浏览和动态SSL证书等功能。 1️⃣ 安装zap工具 现在的kali版本不一定会预装zap&#xff0c;我们可以自行安装&#xff0c;安装也十分简单。 apt-get …

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇入口切换SMB共享WMI管道DCOM组件Impacket套件CS插件

红队内网攻防渗透 1. 内网横向移动1.1 WMI进行横向移动1.1.1 利用条件:1.1.1 利用详情1.1.1.1 wmic1.1.1.1.1 正向shell上线1.1.1.1.2 反向shell上线1.1.1.2 cscript(不建议使用)1.1.1.3 wmiexec-impacket1.1.1.4 cs插件1.2 SMB横向移动1.2.1 利用条件:1.2.2 利用详情1.2.2…

基于CPWM与DPWM综合调制的光伏逆变器

1. 光伏并网逆变器矢量控制 图 1 为光伏发电系统常用的逆变器拓扑结 构,太阳能光伏电池板发电所产生的直流电能接 入光伏并网逆变器直流侧。逆变器将电能逆变, 经过滤波器与隔离升压变压器连接,最终并入电 网。其中隔离变压器低压侧漏感与LC滤波器组 成LCL滤波。为便于分析…

Vue80-全局路由守卫:前置、后置

一、路由守卫的定义 二、需求 在第三步&#xff0c;做校验&#xff01; 三、代码实现 3-1、前置路由守卫 注意&#xff0c;此时就不能将router一开始就暴露出去了&#xff01; to和from是路由组件的信息。 写法一&#xff1a; 写法二&#xff1a; 缺点&#xff1a;若是路由…

gitee添加别人的仓库后,在该仓库里添加文件夹/文件

一、在指定分支里添加文件夹&#xff08;如果库主没有创建分支&#xff0c;自己还要先创建分支&#xff09; eg:以在一个项目里添加视图文件为例&#xff0c;用Echarts分支在usr/views目录下添加Echarts文件夹&#xff0c;usr/views/Echarts目录下添加index.vue 1.切换为本地仓…

android | studio的UI布局和代码调试 | UI调试 (用于找到项目源码)

网上找到一个项目&#xff0c;想快速的搞懂是怎么实现的&#xff0c;搞了半天发现原来android都升级到Jetpack Compose了&#xff0c;然后去找源码挺不容易的&#xff0c;摸索中发现了这个调试的方法&#xff0c;还可以。 https://developer.android.com/studio/debug/layout-i…

Portainer.io安装并配置Docker远程访问及CA证书

Portainer.io安装并配置Docker远程访问及CA证书 文章目录 Portainer.io安装并配置Docker远程访问及CA证书一.安装 Portainer.io2.启动容器 二.docker API远程访问并配置CA安全认证1.配置安全(密钥)访问2.补全CA证书信息3.生成server-key.pem4.创建服务端签名请求证书文件5.创建…

监控 Grafana介绍和云服务器安装

Grafana 简介 官网地址&#xff1a;https://grafana.com/用Go语言开发的开源数据可视化工具&#xff0c;可以做数据监控和数据统计&#xff0c;带有告警功能。可视化&#xff1a;支持快速灵活的客户端图表&#xff0c;面板插件有许多不同方式的可视化指标和日志&#xff0c;官…

FaceFusionSharp OnnxRuntime版 视频换脸

FaceFusionSharp OnnxRuntime版 视频换脸 目录 效果 项目 代码 下载 其他 效果 FaceFusionSharp OnnxRuntime版效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Threading; using System.Window…

SO-CNN-SVM,基于SO蛇优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)-MATLAB实现

SO-CNN-SVM&#xff0c;基于SO蛇优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)-MATLAB实现 1. SO蛇优化算法&#xff08;Snake Optimization Algorithm, SO&#xff09; SO算法是一种启发式优化算法&#xff0c;灵感来自于蛇的捕食行为和社会行为…

《计算机英语》 Unit 5 Networking 网络

Section A Networking 网络 The need to share information and resources among different computers has led to linked computer systems, called networks, in which computers are connected so that data can be transferred from machine to machine. 不同计算机之间共享…