• 华为云云耀云服务器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服务并设置它在系统启动时自动启动:

    1. sudo systemctl start docker
    2. sudo 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的性能特征,以确保它能够在生产环境中以高效和可靠的方式处理您的数据分析任务。

  • 相关阅读:
    【刷题记录14】Java工程师丨腾讯面试真题(2)
    使用npm发布自己开发的工具包笔记
    企业电子招投标采购系统——功能模块&功能描述+数字化采购管理 采购招投标
    【操作系统】内存管理(三)—— 内存的分配与回收(1)
    MS Access 教程之 如何在不覆盖标题字段的情况下将 Excel 数据导入 MS Access 现有表?
    Kernel编译报错:对yaml_emitter_initalize“未定义引用
    Folium笔记: Popup
    B-tree(PostgreSQL 14 Internals翻译版)
    OpenAI首届开发者大会多项更新汇总
    kubernates dashboard管理界面安装及管理员用户配置
  • 原文地址:https://blog.csdn.net/cooldream2009/article/details/133910168