华为云云耀云服务器L实例评测|使用clickhouse-benchmark工具对ClickHouse的性能测试
目录
引言
1 ClickHouse简介
2 利用docker安装ClickHouse
2.1 安装Docker
2.2 下载ClickHouse Docker镜像
2.3 创建ClickHouse容器
2.4 访问ClickHouse
3 创建测试表
4 运行 clickhouse-benchmark
5 分析结果
结语
引言
利用华为云的云耀云服务器L实例,配置为2核2GB内存和3M带宽,操作系统为CentOS 7.9,您可以轻松进行 ClickHouse 的性能测试。ClickHouse自带了一个强大的性能测试工具,即clickhouse-benchmark,您可以使用它来评估ClickHouse在这个配置下的性能表现。
这个测试将帮助您了解ClickHouse在处理大规模数据和复杂查询时的性能,以确保它能够满足您的数据分析和存储需求。通过模拟各种查询和负载,您可以获得关于查询响应时间、吞吐量和资源利用率的有用信息,以优化性能并确保您的分析工作流畅运行。最终,这种性能测试可帮助您确保您的ClickHouse部署在华为云上能够高效处理您的数据分析任务。
1 ClickHouse简介
ClickHouse是一款开源的、用于高性能列式数据库管理系统的软件,旨在处理大规模数据分析和查询任务。它由俄罗斯搜索引擎公司Yandex开发,并在开源社区中广泛使用和支持。ClickHouse的设计目标是提供出色的性能、可伸缩性和效率,使其成为处理大型数据集、复杂查询和实时数据分析的理想选择。
ClickHouse采用了列式存储的方式,这意味着它以列的形式存储数据,而不是行。这使得它在聚合、过滤和查询大量数据时具有出色的性能。它还支持分布式架构,允许您在多个节点上进行数据存储和处理,以应对高负载和大规模数据集。
2 利用docker安装ClickHouse
使用Docker安装ClickHouse是一种快速、方便的方法,特别适合测试、开发和快速部署。以下是使用Docker在CentOS上安装ClickHouse的基本步骤:
2.1 安装Docker
首先,确保您的CentOS服务器上已经安装了Docker。如果尚未安装Docker,可以使用以下命令进行安装:
sudo yum install -y docker
然后,启动Docker服务并设置它在系统启动时自动启动:
sudo systemctl start dockersudo systemctl enable docker
2.2 下载ClickHouse Docker镜像
ClickHouse有官方维护的Docker镜像,可以在Docker Hub上找到。使用以下命令从Docker Hub下载ClickHouse镜像:
docker pull yandex/clickhouse-server
这将下载ClickHouse服务器的最新版本。

2.3 创建ClickHouse容器
一旦镜像下载完成,您可以创建一个ClickHouse容器并运行它。以下是创建容器的基本命令:
docker run -d --name clickhouse-server -p 8123:8123 yandex/clickhouse-server
-d 标志表示在后台运行容器。
--name clickhouse-server 指定容器的名称。
-p 8123:8123 将容器的ClickHouse端口映射到主机的8123端口。这使得可以通过主机上的8123端口访问ClickHouse服务器。
对华为云服务器的安全组策略进行配置,将入方向规则的8123端口放开。

2.4 访问ClickHouse
容器已经运行后,您可以通过浏览器或ClickHouse客户端连接到ClickHouse服务器。在浏览器中访问 http://localhost:8123

使用ClickHouse客户端工具,如clickhouse-client。连接到 ClickHouse
现在,我们可以使用任何与ClickHouse兼容的客户端工具连接到ClickHouse服务器。例如,我们可以使用ClickHouse的官方命令行客户端来连接:
docker run -it --rm --link clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
上述命令将运行ClickHouse的命令行客户端,并连接到ClickHouse服务器。

3 创建测试表
在 clickhouse-benchmark 运行之前,您需要创建一个用于测试的表。您可以使用 ClickHouse 客户端工具或其他方式创建表。例如,使用 ClickHouse 客户端可以这样创建一个简单的表:
clickhouse-client
-- 在 ClickHouse 客户端中执行以下命令
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
CREATE TABLE IF NOT EXISTS test_table (id Int64, name String) ENGINE = MergeTree()
ORDER BY id;
4 运行 clickhouse-benchmark
对于性能测试和评估ClickHouse在特定硬件配置下的性能,您可以使用clickhouse-benchmark工具,它是ClickHouse官方提供的用于模拟负载和查询的工具。安装并配置ClickHouse,然后使用clickhouse-benchmark工具来了解它在您的环境中的性能表现,以确保它满足您的数据分析要求。
现在,您可以使用 clickhouse-benchmark 工具来运行性能测试。以下是一个示例命令:
clickhouse-benchmark --host=localhost --port=9000 --query="SELECT count() FROM testdb.test_table"
--host 和 --port 根据您的 ClickHouse 服务器配置进行设置。
--query 后跟您要执行的查询。这可以是任何 ClickHouse 支持的 SQL 查询。
您可以配置 clickhouse-benchmark 以执行不同类型的查询和模拟不同负载。查看 clickhouse-benchmark 的帮助文档以获取更多信息:
clickhouse-benchmark --help
5 分析结果
clickhouse-benchmark 是一个强大的性能测试工具,它能够执行多种查询并提供关于ClickHouse数据库在特定负载下的性能方面的详细信息。通过运行clickhouse-benchmark,您可以获取有关查询的执行时间、吞吐量、响应时间分布和其他性能指标的数据。这些数据将使您能够深入了解ClickHouse在处理大规模数据和复杂查询时的表现。您可以借此来评估ClickHouse在不同负载条件下的性能,并确定是否需要进一步优化配置或硬件资源。
此外,clickhouse-benchmark还能够模拟不同的负载类型,包括读取、写入和混合负载,以帮助您理解ClickHouse在不同工作负载下的性能特点。这种多样性的性能测试可以揭示潜在的性能瓶颈和瓶颈所在,为进一步的性能优化提供了宝贵的见解。
clickhouse-benchmark提供了一个有力的手段,帮助您深入了解ClickHouse的性能,并确保它能够满足您的数据分析需求。通过评估执行时间、吞吐量和响应时间等指标,您可以更好地了解ClickHouse在各种负载条件下的表现。
结语
ClickHouse的性能测试是一个关键的步骤,用于评估其在不同配置下的性能和可伸缩性。clickhouse-benchmark工具为您提供了一个强大的方式来模拟负载和查询,以评估ClickHouse在特定硬件配置下的性能表现。不过,需要牢记性能测试应当在生产环境之外的测试环境中进行,以避免对生产数据造成不必要的风险。
为了更全面地评估ClickHouse的性能,您可以使用更复杂的负载和查询来模拟实际生产情况。这包括模拟不同类型的查询,大量并发用户,复杂的聚合操作以及高频的数据写入。通过在测试环境中模拟这些情况,您可以更好地了解ClickHouse在应对实际工作负载时的性能表现。
通过在测试环境中模拟多样化的负载和监控性能,您可以更全面地了解ClickHouse的性能特征,以确保它能够在生产环境中以高效和可靠的方式处理您的数据分析任务。
相关文章:
华为云云耀云服务器L实例评测|使用clickhouse-benchmark工具对ClickHouse的性能测试
目录 引言 1 ClickHouse简介 2 利用docker安装ClickHouse 2.1 安装Docker 2.2 下载ClickHouse Docker镜像 2.3 创建ClickHouse容器 2.4 访问ClickHouse 3 创建测试表 4 运行 clickhouse-benchmark 5 分析结果 结语 引言 利用华为云的云耀云服务器L实例,…...
枚举最大值+ds:1887D
https://codeforces.com/problemset/problem/1887/D 左边区间最大值小于右边区间最小值 肯定要离线 感觉分治? 枚举左边区间最大值 求出其影响范围,推出左端点可取范围 然后可取右端点就是一段连续大于此值得区间 也就是左端点在一段区间时右端点可…...
模拟最终成绩计算过程
首先输入大于2的整数作为评委人数,然后依次输入每个评委的打分,要求每个分数介于0~100.输入完所有评委打分之后,去掉一个最高分,去掉一个最低分,剩余分数的平均分即为该选手的最终得分 (1) while True:try:n int(input(请输入评委人数:))assert n > 2# 跳出循环breakexce…...
Android10 修改开发者选项中动画缩放默认值
Android 10 修改开发者选项中动画因子默认值 开发者选项中有三个动画因子 “Window animation scale” :窗口动画缩放“Transition animation scale” :过渡动画缩放“Animator duration scale” :动画程序时长缩放 修改默然值 默认3个因子都是1.0,现在修改为默认0.…...
【2023年11月第四版教材】软考高项极限冲刺篇笔记(3)
8 成本管理 成本类型:可变成本、固定成本、直接成本、间接成本、机会成本、沉没成本 应急储备:成本基准内 管理成本:成本基准外 进度偏差:SV,SPI 成本管理主要是规划和控制 成本估算 类比估算 参数估算 自上而下估算 三点估算 备选方案分析 储备分析 质量成本 总资…...
c语言进阶部分详解(详细解析自定义类型——结构体,内存对齐,位段)
上篇文章介绍了一些常用的字符串函数,大家可以去我的主页进行浏览。 各种源码大家可以去我的github主页进行查找:Nerosts/just-a-try: 学习c语言的过程、真 (github.com) 今天要介绍的是:结构体的相关内容 目录 一.结构体类型的声明 1.…...
Mysql第三篇---响应太慢?数据库卡顿?如何优化?
Mysql第三篇—响应太慢?数据库卡顿?如何优化? 统计SQL的查询成本:last_query_cost 一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本&#x…...
【计算机网络】HTTP 协议的基本格式以及 fiddler 的用法
HTTP协议的基本格式如下: 1.请求行: 包括请求THHP协议的版本、请求URI(资源路径)和HTTP方法(如GET、POST、PUT、DELETE等) GET/example.html HTTP/1.1 GET表示请求方法,/example.html表示请求的…...
人大金仓与哪吒科技达成战略合作,加快推动智慧港口建设
近日,人大金仓与哪吒港航智慧科技(上海)有限公司(以下简称“哪吒科技”)达成战略合作。双方旨在共享优势资源,联合为港口企业转型升级提供完备的技术支撑与行业解决方案。人大金仓总裁杜胜、哪吒科技总经理…...
FFmpeg工具使用集
FFmpeg工具使用集 About FFmpeg Java调用FFmpeg FFmpeg 工具: FFMPEG 用于转换多媒体文件的 命令行工具 格式之间( ffmpeg\bin\ffmpeg.exe ) ffplay 基于 SDL 和 FFmpeg 库的简单媒体播放器 ( ffmpeg\bin\ffplay.exe ࿰…...
2024级199管理类联考之英语二2200核心词汇(第一天)
define 下定义,定范围definition 定义,清晰度identify 鉴定,识别,确认identifiable 可识别的,可辨认的identity 身份,一致determine 决心,确定determinism 宿命论,决定论judge 判断,法官/裁判behavior 举止,表现behavioral 行为的conduct v-实施,引导,指挥; n-实施方式,行为,举…...
webGL编程指南 第三章 平移三角形 TranslatedTriangle.js
我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 接着 上一节 接着做平移的转化。在本次的案例案例中主要是xy的坐标变量相加,同时传递个给相关变量 <!DOCTY…...
推荐一款支持异步批量下载图片的chrome插件——图片助手(ImageAssistant) 批量图片下载器
https://chrome.google.com/webstore/detail/imageassistant-batch-imag/dbjbempljhcmhlfpfacalomonjpalpko/related?hlzh-CNhttps://chrome.google.com/webstore/detail/imageassistant-batch-imag/dbjbempljhcmhlfpfacalomonjpalpko/related?hlzh-CN 安装后直接点击 会根据…...
vue 动态数字效果 vue-animate-number
安装 vue-animate-number 插件 npm install vue-animate-number (注:是npm、cnpm还是yarn根据具体项目要求) 在 main.js 中引入 import Vue from vue import VueAnimateNumber from vue-animate-number Vue.use(VueAnimateNumber)动态使用…...
10月22日,每日信息差
今天是2023年10月22日,以下是为您准备的13条信息差 第一、库迪咖啡计划到2025年底全球门店数量达2万家,库迪咖啡开业一周年全球门店数量达到6061家,位居全球第四 第二、超高速纯硅调制器取得创纪录突破,国际上首次把纯硅调制器带…...
Android系统之SurfaceFlinger
参考资料: Android 显示系统:SurfaceFlinger详解 Android 渲染机制——SurfaceFlinger 一篇文章看明白 Android 图形系统 Surface 与 SurfaceFlinger 之间的关系 Android卡顿原理分析和SurfaceFlinger,Surface概念简述 Android Graphics…...
jQuery实现输入框提示并点击回显功能呢
html代码: <input type"text" id"affOrganization" name"affOrganization" class"form-control" placeholder"Search..." style"width: 300px" > <div class"search_suggest" id"gov_se…...
终端常用操作
终端操作 取消 可以用ctrl c,不要一个一个删除,会取消掉开新的一行回溯上一次的命令,ctrl r,然后键入关键词,直接回车运行就行 chmod x 文件名 给某个文件运行需要的权限。...
JWFD开源工作流矩阵引擎测试版本BUG20231022修正代码
public void ParamFileOutputValue(String paramfile) {String s "";String sp "";String ssp "";List<String> list new ArrayList<String>();int p 0;int k 0;//这个地方要修改为整个参数表的最大行数,而不是起始…...
分拣设备运动仿真
这一次我们来分享一下如何在Solidworks 中做出传送台的分拣动作并通过分拣动作生成过程动画,以便于我们可以用于产品展示又或者验证运行程序无误的情况下结构是否会影响输送效率。 首先创建一个新的运动算例 将窗口切换至Motion分析 在设置之前我们先理清设置传送带…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
