当前位置: 首页 > 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分析 在设置之前我们先理清设置传送带…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...