每秒插入大量记录,同时同步进行实时查询的能力称为混合事务分析处理 (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 |
本演示的视频:https://www.loom.com/share/8e30930232db4b18ac455e310226575d
需要环境
Docker 和 Docker Compose
本地运行
我们在三个不同的平台(MySQL、MariaDB 和 InterSystems IRIS 社区版)上运行记录的摄取和查询速度测试。
为此,需要按如下所示为每个平台下载容器的 YAML 文件:
- 使用 MySQL 运行速度测试
- 下载 YAML 文件:https://raw.githubusercontent.com/intersystems-community/irisdemo-demo-htap/master/docker-compose-mysql.yml
- 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MySQL 构建 docker 镜像:docker-compose -f ./docker-compose-mysql.yml up
- 在浏览器选项卡中输入 http://localhost:10000 以查看演示 UI。
- 使用 MariaDB 运行速度测试
- 下载 YAML 文件:https://raw.githubusercontent.com/intersystems-community/irisdemo-demo-htap/master/docker-compose-mariadb.yml
- 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MariaDB 构建 docker 镜像:docker-compose -f ./docker-compose-mariadb.yml up
- 在浏览器选项卡中输入 http://localhost:10000 以查看演示 UI。
- 使用 InterSystems IRIS 运行速度测试
- 下载 YAML 文件:https://raw.githubusercontent.com/intersystems-community/irisdemo-demo-htap/master/docker-compose.yml
- 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 InterSystems IRIS 构建 docker 镜像:docker-compose up
- 在浏览器选项卡中输入 http://localhost:10000 以查看演示 UI。
从 localhost 运行测试后,可以看到以每秒钟摄取和查询的记录数形式显示的结果。
与 MySQL 和 MariaDB 相比,InterSystems IRIS 的数值更令人印象深刻。
异常
在尝试为每个平台运行 docker 容器时,可能会出现以下错误:
“Missing Linux capabilities”(缺少 Linux 功能)
可以在 YAML 文件的 htapirisdb 部分添加以下行,以跳过 Linux 功能检查:
command: --check-caps false
(@Bob Kuszewski, 2022)
__如下所示:
每个平台上的实时测试运行:https://www.loom.com/share/859866ac97a6476fbb367112fc71c2c2
每个平台的速度测试结果
InterSystems IRIS:
MariaDB:
MySQL:
参考文献
- intersystems.com. (Amir, S.). InterSystems Open Exchange. [在线] 网址:https://openexchange.intersystems.com/package/Ingestion-Speed-Test?tab=details [访问日期:2022 年 9 月 20 日]。
- Kuszewski, B. (2022). _在 Docker 20.10.14+使用 InterSystems IRIS 容器_. [在线] InterSystems 开发者社区。 英文原文:https://community.intersystems.com/post/using-intersystems-iris-containers-docker-201014 [访问日期:2022 年 10 月 20 日]。