Deepgreen与Greenplum TPC-H性能测试对比(使用VitesseData脚本)

简介: 前两天发了一篇基于[德哥测试脚本]的测试对比文章《Deepgreen与Greenplum TPC-H性能测试对比(使用德哥脚本)》,由于测试数据量少,两个数据库有几轮测试都是1秒持平,但是大多数测试Deepgreen均优于Greenplum,有的甚至快至百倍,感兴趣的朋友可以再回头看看。
前两天发了一篇基于[ 德哥测试脚本]的测试对比文章 《Deepgreen与Greenplum TPC-H性能测试对比(使用德哥脚本)》,由于测试数据量少,两个数据库有几轮测试都是1秒持平,但是大多数测试Deepgreen均优于Greenplum,有的甚至快至百倍,感兴趣的朋友可以再回头看看。
今天分享一下Deepgreen提供的TPC-H测试脚本,这个脚本分为浮点类型、数值类型两类进行22轮测试,更加细化,并且结果值更加中肯。

一、测试环境
服务器         IP              节点
Master          192.168.100.107 1 Master
Segment1        192.168.100.107 3 instance
Segment2        192.168.100.106 3 instance
软件版本:
Greenplum 4.3.12
Deepgreen 16.17

二、TPC-H脚本安装
脚本放在github上,有3种方式可以下载,为方便大家,分别介绍一下:
1. 如果已经与github主机建立ssh互信(点此访问建立方法):
# 使用语句克隆repo:
git clone git@github.com:cktan/bench.git
# 初始化子模块(tpch-dbgen):
cd bench;
git submodule init
git submodule update
2.如果懒得建立ssh互信,但是本机装有git工具:
# 克隆bench:
git clone https://github.com/vitessedata/bench
# 切换目录:
cd bench
# 克隆tpch-dbgen模块:
git clone https://github.com/electrum/tpch-dbgen   
3. 如果你机器上什么都没有,或者不能直接访问外网:
访问 - https://github.com/vitessedata/bench,点击右侧clone or download按钮
,下载zip包
访问 - https://github.com/electrum/tpch-dbgen,点击右侧clone or download按钮,下载zip包
将两个压缩包整合上传到服务器解压缩,并把tpch-dbgen文件夹放到bench下面
  访问 - https://github.com/vitessedata/bench,点击右侧clone or download按钮
,下载zip包
访问 - https://github.com/electrum/tpch-dbgen,点击右侧clone or download按钮,下载zip包
将两个压缩包整合上传到服务器解压缩,并把tpch-dbgen文件夹放到bench下面

三、执行测试
1. 登录服务器重新编译:
cd bench/tpch-dbgen
make clean
rm *.tbl
make
2. 生成测试文件、初始化数据库、加载数据:
[dgadmin@linux1 bench]$ python create.py 10f
dbgen 10
TPC-H Population Generator (Version 2.14.0)
Copyright Transaction Processing Performance Council 1994 - 2010
TPC-H Population Generator (Version 2.14.0)
Copyright Transaction Processing Performance Council 1994 - 2010
TPC-H Population Generator (Version 2.14.0)
Copyright Transaction Processing Performance Council 1994 - 2010
TPC-H Population Generator (Version 2.14.0)
Copyright Transaction Processing Performance Council 1994 - 2010
TPC-H Population Generator (Version 2.14.0)
Copyright Transaction Processing Performance Council 1994 - 2010
createdb tpch10f
mktab
mkview
load
    customer
    lineitem
    nation
    orders
    part
    partsupp
    region
    supplier
analyze
WARNING:  skipping "__gp_localid" --- cannot analyze indexes, views, external tables or special system tables
WARNING:  skipping "__gp_masterid" --- cannot analyze indexes, views, external tables or special system tables
WARNING:  skipping "__gp_log_segment_ext" --- cannot analyze indexes, views, external tables or special system tables
WARNING:  skipping "__gp_log_master_ext" --- cannot analyze indexes, views, external tables or special system tables
WARNING:  skipping "gp_disk_free" --- cannot analyze indexes, views, external tables or special system tables
备注:create.py脚本解读:
  • 该脚本用于创建测试数据文件、创建数据库、初始化表、初始化试图、加载数据文件到数据库表、Analyze数据库。
  • 它接受一个参数,用于指定测试的数据类型及数据量,具体如下:
    • 1f: scale 1 with float8 type
    • 1n: scale 1 with numeric type
    • 10f: scale 10 with float8 type
    • 10n: scale 10 with numeric type
3. 执行测试:
[dgadmin@linux1 bench]$ python run.py 10f
WARNING:  "work_mem": setting is deprecated, and may be removed in a future release.
ERROR:  unrecognized configuration parameter "vitesse.thread"
WARNING:  "work_mem": setting is deprecated, and may be removed in a future release.
ERROR:  unrecognized configuration parameter "vitesse.thread"
备注:run.py脚本解读:该脚本用于执行测试,脚本接受一个参数,指定测试类型及数据量,与create.py脚本参数一致。

四、对比结果
最终结果分四列展示,分别为:查询编号、Greenplum查询耗时、Deepgreen查询耗时、加速倍数。下面为10G数据量解释结论:
1. float8:
1 13514 2399 5.63
2 1850 616 3.00
3 6011 1930 3.11
4 5647 1566 3.61
5 5688 1711 3.32
6 3432 859 4.00
7 5651 1803 3.13
8 5357 1773 3.02
9 12323 4253 2.90
10 7532 3818 1.97
11 1933 1343 1.44
12 5605 1727 3.25
13 5422 3337 1.62
14 3433 999 3.44
15 7222 1970 3.67
16 1969 761 2.59
17 22211 7526 2.95
18 15879 4745 3.35
19 4274 1842 2.32
20 6826 2915 2.34
21 18977 4274 4.44
22 6388 2493 2.56
tot: 167144 54660 3.06
75007c84715f9d87b97b2ee04ff864d4143ccbea
2. numeric:
[dgadmin@linux1 bench]$ python run.py 10n
WARNING:  "work_mem": setting is deprecated, and may be removed in a future release.
ERROR:  unrecognized configuration parameter "vitesse.thread"
WARNING:  "work_mem": setting is deprecated, and may be removed in a future release.
ERROR:  unrecognized configuration parameter "vitesse.thread"
1 32405 21151 1.53
2 2303 702 3.28
3 5934 1969 3.01
4 5653 1766 3.20
5 5471 1673 3.27
6 4307 1264 3.41
7 5396 1889 2.86
8 6055 1913 3.17
9 11853 4544 2.61
10 6006 2696 2.23
11 2153 1299 1.66
12 5619 2284 2.46
13 5417 3429 1.58
14 3526 1136 3.10
15 8265 2910 2.84
16 1768 808 2.19
17 23811 14610 1.63
18 40284 28665 1.41
19 4321 2359 1.83
20 7177 4440 1.62
21 16938 5039 3.36
22 6439 2685 2.40
tot: 211101 109231 1.93l
b1f6dc468dfffa1fc29adb57b0c239ba719d17cc

End~
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
3月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
|
4月前
|
测试技术 Shell
shell脚本写的班级管理系统测试用例
shell脚本写的班级管理系统测试用例
57 1
|
5月前
|
Shell 测试技术 Linux
通过shell脚本进行linux服务器的CPU和内存压测
通过shell脚本进行linux服务器的CPU和内存压测
157 0
|
4月前
|
JSON 测试技术 API
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
76 3
|
9天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
4月前
|
人工智能 自然语言处理 测试技术
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
80 0
软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本
|
1月前
|
数据采集 数据处理 开发工具
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
|
1月前
|
前端开发 Java 测试技术
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
【2月更文挑战第14天】《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程) 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本。前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣。宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。
38 1
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
|
3月前
|
测试技术
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
|
4月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
50 0