当前位置: 首页 > news >正文

华为云云耀云服务器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实例,配置为22GB内存和3M带宽,操作系统为CentOS 7.9,您可以轻松进行 ClickHouse 的性能测试。ClickHouse自带了一个强大的性能测试工具,即clickhouse-benchmark,您可以使用它来评估ClickHouse在这个配置下的性能表现。

这个测试将帮助您了解ClickHouse在处理大规模数据和复杂查询时的性能,以确保它能够满足您的数据分析和存储需求。通过模拟各种查询和负载,您可以获得关于查询响应时间、吞吐量和资源利用率的有用信息,以优化性能并确保您的分析工作流畅运行。最终,这种性能测试可帮助您确保您的ClickHouse部署在华为云上能够高效处理您的数据分析任务。

1 ClickHouse简介

ClickHouse是一款开源的、用于高性能列式数据库管理系统的软件,旨在处理大规模数据分析和查询任务。它由俄罗斯搜索引擎公司Yandex开发,并在开源社区中广泛使用和支持。ClickHouse的设计目标是提供出色的性能、可伸缩性和效率,使其成为处理大型数据集、复杂查询和实时数据分析的理想选择。

ClickHouse采用了列式存储的方式,这意味着它以列的形式存储数据,而不是行。这使得它在聚合、过滤和查询大量数据时具有出色的性能。它还支持分布式架构,允许您在多个节点上进行数据存储和处理,以应对高负载和大规模数据集。

2 利用docker安装ClickHouse

使用Docker安装ClickHouse是一种快速、方便的方法,特别适合测试、开发和快速部署。以下是使用DockerCentOS上安装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实例&#xff0c…...

枚举最大值+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 &#xff0…...

2024级199管理类联考之英语二2200核心词汇(第一天)

define 下定义,定范围definition 定义,清晰度identify 鉴定,识别,确认identifiable 可识别的,可辨认的identity 身份,一致determine 决心,确定determinism 宿命论,决定论judge 判断,法官/裁判behavior 举止,表现behavioral 行为的conduct v-实施,引导,指挥; n-实施方式,行为,举…...

webGL编程指南 第三章 平移三角形 TranslatedTriangle.js

我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写&#xff0c;每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 接着 上一节 接着做平移的转化。在本次的案例案例中主要是xy的坐标变量相加&#xff0c;同时传递个给相关变量 <!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 &#xff08;注&#xff1a;是npm、cnpm还是yarn根据具体项目要求&#xff09; 在 main.js 中引入 import Vue from vue import VueAnimateNumber from vue-animate-number Vue.use(VueAnimateNumber)动态使用…...

10月22日,每日信息差

今天是2023年10月22日&#xff0c;以下是为您准备的13条信息差 第一、库迪咖啡计划到2025年底全球门店数量达2万家&#xff0c;库迪咖啡开业一周年全球门店数量达到6061家&#xff0c;位居全球第四 第二、超高速纯硅调制器取得创纪录突破&#xff0c;国际上首次把纯硅调制器带…...

Android系统之SurfaceFlinger

参考资料&#xff1a; Android 显示系统&#xff1a;SurfaceFlinger详解 Android 渲染机制——SurfaceFlinger 一篇文章看明白 Android 图形系统 Surface 与 SurfaceFlinger 之间的关系 Android卡顿原理分析和SurfaceFlinger&#xff0c;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&#xff0c;不要一个一个删除&#xff0c;会取消掉开新的一行回溯上一次的命令&#xff0c;ctrl r&#xff0c;然后键入关键词&#xff0c;直接回车运行就行 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;//这个地方要修改为整个参数表的最大行数&#xff0c;而不是起始…...

分拣设备运动仿真

这一次我们来分享一下如何在Solidworks 中做出传送台的分拣动作并通过分拣动作生成过程动画&#xff0c;以便于我们可以用于产品展示又或者验证运行程序无误的情况下结构是否会影响输送效率。 首先创建一个新的运动算例 将窗口切换至Motion分析 在设置之前我们先理清设置传送带…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...