暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase 官方的客户端导数工具

原创 OceanBase-玉璁 2022-12-12
1920

OBLOADER/OBDUMPER 4.0.0 只为自己代言… (OceanBase 官方发布的客户端导数工具)


有人在 OceanBase 社区发起一个问答:OceanBase 4.0.0 DATA LOAD 性能问题。引起我的注意,仔细根据问答的描述跳到另外一个网站:测评报告:文件导入哪家强?,此处省略博客内容若干字。。。直接看测试报告,如下图所示:

性能对比

图片.png

疑惑: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 个逻辑核心

图片.png

  • 数据库版本规格
  • 数据库版本:4.0.0
  • 数据库规格:8c16g

图片.png

开始测试

使用下面的命令行并替换相关的参数值。详细的参数介绍可以查看官方文档。(注:客户端工具与数据库服务器在同一台机器。)

./obloader -h数据库地址 -P端口 -uxxx -tmysql -c'集群名' -p'业务租户密码' --csv --skip-header --table 'bmsql_history' -Dtest -f '数据目录' --sys-password '系统租户密码' --thread 32 --batch 500 --external-data

测试结果

图片.png

根据上述的测试结果,这位同学可以重新测试一下并更新一下帖子?谢谢~

升级租户规格

OceanBase 租户规格 40c/200g,最短的测试耗时 13秒。如下图所示:

image.png

了解更多

相关链接 :OBDUMPER/OBLOADER 4.0.0 官方文档

小推广:OBLOADER/OBDUMPER 4.0.0 正式发布,我们同时会在社区发布导数性能测试报告,顺便也给广大OceanBase玩家们介绍OceanBase最佳业务实践,请关注我们的社区博客~~

最后修改时间:2022-12-16 16:47:53
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论