OBLOADER/OBDUMPER 4.0.0 只为自己代言… (OceanBase 官方发布的客户端导数工具)
有人在 OceanBase 社区发起一个问答:OceanBase 4.0.0 DATA LOAD 性能问题。引起我的注意,仔细根据问答的描述跳到另外一个网站:测评报告:文件导入哪家强?,此处省略博客内容若干字。。。直接看测试报告,如下图所示:
性能对比
疑惑:OceanBase 导数不可能垫底,无论是客户端导数工具(OBLOADER)还是服务端导数工具(LOAD DATA)。于是我搭建环境亲测~
搭环境造数
复用博客中的表结构和造数工具。该造数工具使用 Python3 写的,所以 Python2 用户需要升级到 Python3。PS: 这款造数工具的性能有点拉胯。。。。
建表:
create table bmsql_history (
hist_id integer,
h_c_id integer,
h_c_d_id integer,
h_c_w_id integer,
h_d_id integer,
h_w_id integer,
h_date timestamp,
h_amount decimal(6,2),
h_data varchar(24)
);
升级Python3 (可选)
python2 快速升级步骤:
yum install -y python3
cd /usr/bin
mv python python.bak
ln -s python3 python
运行造数脚本
# -*- coding=utf-8 -*-
import csv
import random
import time
import string
# 创建列表,保存header内容
header_list = ["hist_id", "h_c_id", "h_c_d_id", "h_c_w_id", "h_d_id", "h_w_id", "h_date", "h_amount", "h_data"]
g_count = 0
def random_list(n):
data_list = []
global g_count
for i in range(n):
g_count = g_count + 1
l = [g_count,
random.randint(0,1000),
random.randint(0,1000),
random.randint(0,1000),
random.randint(0,1000),
random.randint(0,1000),
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
#random.randint(0,1000),
round(random.uniform(0, 9999.0), 2),
''.join(random.sample(string.ascii_letters + string.digits, 20))
]
data_list.append(l)
return data_list
# 以写方式打开文件。注意添加 newline="",否则会在两行数据之间都插入一行空白。
with open("bmsql_history.csv", mode="w", encoding="utf-8", newline="") as f:
# 基于打开的文件,创建 csv.writer 实例
writer = csv.writer(f)
# 写入 header。
# writerow() 一次只能写入一行。
writer.writerow(header_list)
# 写入数据。
# writerows() 一次写入多行。
for i in range(10000):
writer.writerows(random_list(1000))
提示: 为了测试方便,直接从博主的帖子拷贝过来,不要告我侵权哦~~
环境介绍
- CPU 型号:32 Intel® Xeon® Platinum 8163 CPU @ 2.50GHz
- CPU 主频: 2500MHz
- CPU 核心:32 个逻辑核心
- 数据库版本规格
- 数据库版本:4.0.0
- 数据库规格:8c16g
开始测试
使用下面的命令行并替换相关的参数值。详细的参数介绍可以查看官方文档。(注:客户端工具与数据库服务器在同一台机器。)
./obloader -h数据库地址 -P端口 -uxxx -tmysql -c'集群名' -p'业务租户密码' --csv --skip-header --table 'bmsql_history' -Dtest -f '数据目录' --sys-password '系统租户密码' --thread 32 --batch 500 --external-data
测试结果
根据上述的测试结果,这位同学可以重新测试一下并更新一下帖子?谢谢~
升级租户规格
OceanBase 租户规格 40c/200g,最短的测试耗时 13秒。如下图所示:
了解更多
相关链接 :OBDUMPER/OBLOADER 4.0.0 官方文档
小推广:OBLOADER/OBDUMPER 4.0.0 正式发布,我们同时会在社区发布导数性能测试报告,顺便也给广大OceanBase玩家们介绍OceanBase最佳业务实践,请关注我们的社区博客~~
最后修改时间:2022-12-16 16:47:53
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。