文章 Michael Lei · 一月 17, 2023 3m read

HTAP 数据平台插入和查询速度测试

每秒插入大量记录,同时同步进行实时查询的能力称为混合事务分析处理 (HTAP)。 它也被称为 Transactional analytics 或 Transanalytics 或 Translytics,当存在来自工业物联网传感器的持续实时数据流或股票市场的波动数据时,它是非常有用的技术,并且允许实时或接近实时地查询这些数据集。

在本文中我将分享我在不同平台上运行带有测试流数据的演示,同时进行持续插入和持续查询,看看每个平台上有何不同反应,如在每个平台上输入和输出数据的速度以及它们的性能。 我在本演示中试验的平台包括:InterSystems IRIS、MariaDB 和 MySQL。

试验结果

20秒的测试时间里:

插入数据条数 查询次数 插入数据大小 查询数据大小
IRIS 708,000 59,000 184M 15.217M
MariaDB 98,000 23,679 25M 6.69M
MySQL 38,000 11,947 9.869M 2.45M

本演示的视频

需要环境

Docker 和 Docker Compose

本地运行

我们在三个不同的平台(MySQL、MariaDB 和 InterSystems IRIS 社区版)上运行记录的摄取和查询速度测试。

为此,需要按如下所示为每个平台下载容器的 YAML 文件:

  1. 使用 MySQL 运行速度测试
    1. 下载 YAML 文件:
    2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MySQL 构建 docker 镜像:docker-compose -f ./docker-compose-mysql.yml up
    3. 在浏览器选项卡中输入 以查看演示 UI。
  2. 使用 MariaDB 运行速度测试
    1. 下载 YAML 文件:
    2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MariaDB 构建 docker 镜像:docker-compose -f ./docker-compose-mariadb.yml up
    3. 在浏览器选项卡中输入 以查看演示 UI。
  3. 使用 InterSystems IRIS 运行速度测试
    1. 下载 YAML 文件:
    2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 InterSystems IRIS 构建 docker 镜像:docker-compose up
    3. 在浏览器选项卡中输入 以查看演示 UI。

从 localhost 运行测试后,可以看到以每秒钟摄取和查询的记录数形式显示的结果。

与 MySQL 和 MariaDB 相比,InterSystems IRIS 的数值更令人印象深刻。

异常

在尝试为每个平台运行 docker 容器时,可能会出现以下错误:

“Missing Linux capabilities”(缺少 Linux 功能)

 

可以在 YAML 文件的 htapirisdb 部分添加以下行,以跳过 Linux 功能检查:

command: --check-caps false

(@Bob Kuszewski, 2022)

__如下所示:  

每个平台上的实时测试运行

每个平台的速度测试结果

InterSystems IRIS:

 

MariaDB:

 

MySQL:

 参考文献

  1. intersystems.com. (Amir, S.). InterSystems Open Exchange. [在线] 网址: [访问日期:2022 年 9 月 20 日]。
  2. Kuszewski, B. (2022). _在 Docker 20.10.14+使用 InterSystems IRIS 容器_. [在线] InterSystems 开发者社区。 英文原文: [访问日期:2022 年 10 月 20 日]。 ‌