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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




