clickhouse基础概念及集群部署

一. 简述: 

   ClickHouse 是一款高性能列式存储数据库,专为海量数据的实时分析场景设计。它以极致的查询速度、高效的存储利用率和强大的并行处理能力著称,广泛应用于日志分析、用户行为分析、业务监控等大数据分析领域。

  1. 核心特性:

    a). 列式存储:传统行式数据库(如 MySQL)按行存储数据,适合增删改查;ClickHouse 按列存储,同一列数据连续存放,可大幅减少 IO 量(仅读取查询所需列),且相同类型数据压缩率更高(通常比行式存储高 5-10 倍)。

   b).  高效的查询性能:基于向量执行引擎,单次处理一批数据(而非单条),减少函数调用开销;查询会被拆分为多个子任务,在多个 CPU 核心上并行执行;内置大量优化的数学、字符串等函数,支持复杂计算高效执行。

   c).  支持实时写入更新:提供 INSERT 语句支持高吞吐写入(每秒数十万条),数据写入后立即可见。

   d).  丰富的表引擎:表引擎决定数据存储方式、索引策略和查询特性,核心引擎包括: 

  • MergeTree:常用引擎,支持分区、排序、TTL、副本和分片,适合海量历史数据存储。

  • ReplacingMergeTree:在合并分区时自动去重,适合处理重复数据。

  • SummingMergeTree:合并时自动聚合数据,适合预计算场景。

  • Memory:内存表,查询极快但数据不持久,适合临时计算。

  2. 分布式架构支持: 

      原生支持集群部署,通过分片(数据拆分到不同节点)和副本(数据冗余备份)实现高可用和水平扩展,用户无需关心底层存储分布。

  3. 使用场景:

        a). 日志与指标分析:如服务器日志、应用程序埋点数据的实时查询。

        b). 用户行为分析:分析用户在网站 / App 上的点击、浏览等行为,生成漏斗图、留存率等报表。

        c). 业务监控与仪表盘:实时监控订单量、支付成功率等关键指标,支持毫秒级响应的仪表盘展示。

        d). 时序数据存储:存储物联网设备的传感器数据(如温度、湿度),支持按时间范围快速查询。

三. 服务部署: 

  1.  检查当前CPU是否支持SSE 4.2:

#grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported

2. 安装部署:

#yum install yum-utils
#rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
#yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
#yum install clickhouse-server clickhouse-client(当无法联网时,可通过https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/下载,只需要clickhouse-client,clickhouse-server,clickhouse-common-static三个包)

3. 配置clickhouse:/etc/clickhouse-server/config.xml

#vim /etc/clickhouse-server/config.xml
<!-- 监听地址,默认只允许本地访问,改为0.0.0.0允许外部访问 -->
<listen_host>0.0.0.0</listen_host><!-- 数据存储路径(默认在/var/lib/clickhouse/) -->
<path>/var/lib/clickhouse/</path><!-- 日志路径 -->
<log>/var/log/clickhouse-server/clickhouse-server.log</log>#设置密码
1. 生成加密密码: 
echo -n "your_password" | sha256sum | awk '{print $1}'2. 编辑配置
#vim /etc/clickhouse-server/users.xml
<users><default><!-- 明文密码(测试环境) --><password>your_password</password><!-- 或加密密码(生产环境,通过clickhouse-client生成) --><!-- <password_sha256_hex>哈希值</password_sha256_hex> --><networks><ip>::/0</ip> <!-- 允许所有IP访问 --></networks></default>
</users>

 4. 启动服务: 

# 启动服务
sudo systemctl start clickhouse-server

5.  功能验证:

# 本地连接(默认无密码)
clickhouse-client-- 创建测试数据库
CREATE DATABASE IF NOT EXISTS test;-- 创建表
CREATE TABLE test.logs (timestamp DateTime,level String,message String) ENGINE = MergeTree() ORDER BY timestamp;-- 插入数据
INSERT INTO test.logs VALUES (now(), 'INFO', 'ClickHouse installed successfully');-- 查询数据
SELECT * FROM test.logs;

三. 关于集群部署

   clickhouse 在21.12版本之前,需要依赖zookeeper进行节点协调等任务, 从21.12起,引入了clickhouse-keeper,用来替代zookeeper。 部署多个节点后,配置集群元数据: 

#vim /etc/clickhouse-server/config.xml<remote_servers><my_cluster> <!-- mycluster --><shard> <!-- 分片1 --><replica><host>node1</host><port>9000</port></replica></shard><shard> <!-- 分片2 --><replica><host>node2</host><port>9000</port></replica></shard><shard> <!-- 分片2 --><replica><host>node2</host><port>9000</port></replica></shard></my_cluster>
</remote_servers>#重启所有节点,通过 SELECT * FROM system.clusters 验证集群状态。

 -------------------------------------------------------------------------------------

                         深耕运维行业多年,擅长运维体系建设,方案落地。欢迎交流!

                                                     V: ywjw996

                                                    《 运维经纬 》

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

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

相关文章

低版本 IntelliJ IDEA 使用高版本 JDK 语言特性的问题

现实问题&#xff1a; 目前最新的 IntelliJ IDEA 已经不支持在 Win7 环境上安装了&#xff0c;如果企业内开发环境仍然是 Win7&#xff0c;就会导致很多问题。 比如当前 IDEA 版本为 2023.1&#xff0c;最大支持 JDK17&#xff0c;如何正常使用 JDK21 的新特性呢&#xff1f;比…

3分钟 Spring AI 实现对话功能

1.什么是spring AISpring AI 是 Spring 官方推出的一个基于 Spring 生态的 AI 应用开发框架&#xff0c;旨在简化将人工智能&#xff08;如大语言模型、生成式 AI&#xff09;集成到 Java 应用中的过程。它提供了统一的 API 和工具&#xff0c;让开发者能更轻松地调用 AI 模型2…

CMake笔记:配置(Configure)、生成(Generate)和构建(Build)

以下为AI生成的内容&#xff1a; 一、配置阶段&#xff08;Configure&#xff09; 本质&#xff1a;解析项目逻辑&#xff0c;构建内存模型 触发命令&#xff1a;cmake -S <源码路径> -B <构建路径> 关键操作与输出&#xff1a;操作类型典型案例输出产物变量定义se…

直接编辑pdf文件教程

工具下载地址&#xff1a;https://pan.quark.cn/s/4befbe5f4a77 一、下载并安装软件二、打开软件&#xff0c;并打开一个pdf文件三、编辑PDF文件&#xff0c;并保存四、关闭软件&#xff0c;打开源文件查看效果。

javaswing json格式化工具

效果展示代码 package com.example.springbootdemo;import javax.swing.*; import javax.swing.border.TitledBorder; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeSelectionModel; import java.…

真实案例 | 如何用iFlyCode开发Webpack插件?

01案例背景在项目中&#xff0c;我们经常需要存档前端每次打包的版本&#xff0c;方便线上快速切换不同版本使用。经过思考&#xff0c;我们可以在打包时&#xff0c;将本次打包结果另存为zip压缩包&#xff0c;方便后续使用。于是我准备开发一个Webpack插件实现此功能&#xf…

19day-人工智能-机器学习-分类算法-决策树

1. 什么是决策树学过数据结构与算法的小伙伴应该对树不陌生吧&#xff0c;这里的决策树也是大同小异的&#xff0c;只是每次反之都有一个条件来决定流向的。1.1 决策节点通过条件判断而进行分支选择的节点。如&#xff1a;将某个样本中的属性值(特征值)与决策节点上的值进行比较…

地球磁层全球MHD模型中模拟Dst指数的半经验方法

A semi-empirical approach to simulating the Dst index in global MHD models of Earth’s magnetosphere pdf 1 Introduction Dst指数 (Disturbance storm time index, 地磁暴时扰动指数) 是描述磁暴活动强度应用最广泛的指数&#xff0c;对于研究地磁扰动和磁暴具有重要意…

什么是脏读、幻读、不可重复读?

脏读、幻读和不可重复读是数据库事务隔离级别中常见的三种数据一致性问题。它们描述了在并发事务环境下可能出现的异常现象。下面通过对比表格和具体示例进行清晰解析&#xff1a;核心概念对比表问题类型触发场景本质原因示例脏读 (Dirty Read)事务A读取了事务B未提交的修改读取…

腾讯位置商业授权微信小程序关键词输入提示

微信小程序JavaScript SDK 开发指南 关键词输入提示 getSuggestion(options:Object) 用于获取输入关键字的补完与提示&#xff0c;帮助用户快速输入 注&#xff1a;坐标系采用gcj02坐标系 options属性说明 属性类型必填说明keywordString是用户输入的关键词&#xff08;希望…

LabVIEW菜单操控

该程序围绕运行时菜单栏操作&#xff0c;实现从初始化构建菜单结构&#xff08;含菜单项、快捷键 &#xff09;&#xff0c;到响应交互删除特定菜单项&#xff0c;再到监控界面事件驱动逻辑&#xff0c;完成自定义菜单交互全流程&#xff0c;适配需灵活菜单控制的程序开发场景。…

Web 服务详解:HTTP 与 HTTPS 配置

Web 服务详解&#xff1a;HTTP 与 HTTPS 配置 一、HTTP 服务概述 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是用于在网络上传输网页数据的基础协议&#xff0c;默认使用80 端口&#xff0c;以明文形式传输数据。常见的 HTTP 服务软…

YOLO-v2-tiny 20种物体检测模型

一、简介 YOLO-v2-tiny是基于YOLO(You Only Look Once)实时目标检测算法的轻量级版本&#xff0c;专门为嵌入式设备和资源受限环境优化。本模型能够检测20种常见物体类别&#xff0c;在保持较高检测精度的同时大幅减少了计算量和模型大小。 20种物体检测模型&#xff0c; 使用…

heterophilic graph和hetergeneous graph区别(附带homophilic graph 和homoegeneous graph)

Heterophilic Graph&#xff08;异配图&#xff09;连接的节点在属性上不相似,但是所有节点和边的类别都是同一种类型&#xff0c;数据集如squirrel / chameleon&#xff0c;它们是 heterogeneous graph&#xff08;异质图&#xff09;而不是Heterophilic Graph&#xff08;异配…

Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞检测,命令执行,Getshell

工具介绍 Thinkphp(GUI)漏洞利用工具&#xff0c;支持各版本TP漏洞检测&#xff0c;命令执行&#xff0c;Getshell。JAVAFX可视化编写&#xff0c;博主第一次用javafx来写界面&#xff0c;第一次学习尝试&#xff0c;仅仅只用于学习尝试如果缺少什么payload&#xff0c;欢迎提交…

GitHub分支保护介绍(Branch Protection)(git分支保护)(通过设置规则和权限来限制对特定分支的操作的功能)

文章目录**1. 核心功能****a. 防止误操作****b. 强制代码审查****c. 状态检查&#xff08;Status Checks&#xff09;****d. 权限控制****2. 如何设置分支保护&#xff1f;**1. **进入仓库设置**2. **添加分支保护规则**3. **配置保护规则**4. **保存设置****3. 常见应用场景**…

怎么理解On-Premises

On-Premises 指的是—— 软件、系统、数据中心等部署并运行在企业自己管理的本地硬件或机房里&#xff0c;而不是放在云端或第三方托管环境中。 你可以把它理解成&#xff1a;“服务器在你自己家里&#xff08;公司机房&#xff09;&#xff0c;而不是寄放在别人家&#xff08;…

UserController类讲解

用户管理控制器&#xff0c;实现了用户CRUD操作的RESTful API&#xff1a; 1. 类结构与核心注解 1.1 控制器声明 RestController RequestMapping("/api/users") public class UserControllerRestController 深度解析&#xff1a; 组合注解&#xff1a;Controller Re…

【剑指offer】搜索算法

目录 &#x1f4c1; JZ53 数字在升序数组中出现的次数​编辑 &#x1f4c1; JZ4 二维数组中的查找​编辑 &#x1f4c1; JZ11 旋转数组的最小数字 &#x1f4c1; JZ38 字符串的排列​编辑 &#x1f4c1; JZ53 数字在升序数组中出现的次数 这就是一道简单的模板题&#xff0…

ETLCloud批流一体化体现在哪

ETLCloud批流一体化体现在哪 企业对数据处理的实时性、高效性和准确性的要求越来越高。批流一体化作为一种先进的数据处理理念&#xff0c;逐渐被企业所采用。 目前许多国产化ETL工具也装配了十分强大的批流一体化能力&#xff0c;ETLCoud就是一个很好的代表&#xff0c;它能够…