关于数据库:实践教程之如何使用-PolarDBX-进行数据导入导出

45次阅读

共计 4830 个字符,预计需要花费 13 分钟才能阅读完成。

PolarDB-X 为了不便用户体验,提供了收费的试验环境,您能够在试验环境里体验 PolarDB-X 的装置部署和各种内核个性。除了收费的试验,PolarDB-X 也提供收费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。

本期试验将领导您如何应用 PolarDB- X 进行数据导入导出

本期收费试验地址

本期教学视频地址

前置筹备

假如曾经依据前一讲内容实现了 PolarDB- X 的搭建部署,应用 PolarDB-X Operator 装置 PolarDB-X,并且能够胜利链接上 PolarDB- X 数据库。

PolarDB- X 导入导出形式汇总

PolarDB- X 常见的数据导出办法有:

  • mysql - e 命令行导出数据
  • mysqldump 工具导出数据
  • select into outfile 语句导出数据(默认敞开)
  • Batch Tool 工具导出数据(PolarDB- X 配套的导入导出工具)

PolarDB- X 常见的数据导入办法有:

  • source 语句导入数据
  • MySQL 命令导入数据
  • 程序导入数据
  • load data 语句导入数据
  • Batch Tool 工具导入数据(PolarDB- X 配套的导入导出工具)

初始数据筹备

1. 倡议分屏,两个终端操作。

单击右上角的

分屏图标,创立两个终端,不便别离进行登录数据库和执行命令操作。

阐明:

a. k8s 的操作即 kubectl 命令都须要在 galaxykube 用户下才可进行;

b. 登录数据库和其它执行命令可在 root 或 galaxykube 用户下进行操作,留神文件门路就行。

2. 执行如下命令,装置 sysbench。

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench

阐明:可通过 sysbench –help 查看是否装置胜利。

3. 执行如下命令,登陆数据库。

应用连贯 mysql -hip -Pport -uuser -ppassword -Ac 登录 PolarDB-X。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 -Ac

4. 执行如下命令,创立数据库。

create database sysbench_int;

5. 通过 sysbench 导入初始数据。

5.1 首先执行 exit 登出数据库。

5.2 执行如下命令,通过 sysbench 导入初始数据。

sysbench oltp_insert --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=polardbx_root --mysql-password=123456 --mysql-db=sysbench_int --db-driver=mysql --tables=1 --table-size=100000 --report-interval=1 prepare

6. 将 sysbench 默认建出的单库单表改为分库分表模式。

6.1 执行如下命令,应用连贯 mysql -hip -Pport -uuser -ppassword -Ac 登录 PolarDB-X。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 -Ac

6.2 执行如下命令,先将原表改名。

use sysbench_int;
ALTER TABLE sbtest1 RENAME TO sbtest1_single;

6.3 执行如下命令,手动创立分库分表。

CREATE TABLE `sbtest1` (`id` int(11) NOT NULL AUTO_INCREMENT BY GROUP,
  `k` int(11) NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) dbpartition by hash(`id`) tbpartition by hash(`id`) tbpartitions 2;

6.4 执行如下命令,通过 insert select 执行到新的表中.

INSERT INTO sbtest1 SELECT * FROM  sbtest1_single;

6.5 执行如下命令,可查看初始数据信息。

show create table sbtest1;
select min(id),max(id),count(id) from sbtest1;
select * from sbtest1 limit 10;

纯数据格式进行导入导出

1. 先执行 exit 登出数据库。

2. 通过 mysql - e 命令导出数据。

2.1 执行如下命令,通过 mysql - e 命令从 PolarDB- X 导出数据。

time mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 sysbench_int -N -e "SELECT id,k,c,pad FROM sbtest1;" > data_10w.txt
time mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 sysbench_int -N -e "SELECT id,k,c,pad FROM sbtest1;" | sed 's/\t/,/g' >data_10w.csv

2.2 执行如下命令,查看文件大小。

ll -h wc -l data_10w.txt

2.3 执行如下命令,查看数据格式。

head -10 data_10w.txt

3. 通过 LoadData 语句导入数据

3.1 执行如下命令,登录 PolarDB-X。

阐明:需加 -local-infile 参数,能力执行 LoadData 语句。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 -Ac --local-infile

3.2 执行如下命令,创立指标数据库表。

create database test_one;
use test_one;
create table test1 like sysbench_int.sbtest1;
show create table test1;

3.3 执行如下命令,导入数据到指标库表中。

-- 文件门路须要对齐 
LOAD DATA LOCAL INFILE 'data_10w.txt' INTO TABLE test1;

3.4 执行如下命令,查看导入的数据。

select min(id),max(id),count(id) from test1;
select * from test1 limit 10;

SQL 语句格局进行导入导出

1. 先执行 exit 登出数据库。

2. 通过 mysqldump 进行导出数据。

2.1 执行如下命令,通过 mysqldump 进行导出数据。

time mysqldump -h127.0.0.1 -P3306 -upolardbx_root -p123456 --default-character-set=utf8mb4 --net_buffer_length=10240 --no-tablespaces --no-create-db --no-create-info --skip-add-locks --skip-lock-tables --skip-tz-utc --set-charset --hex-blob sysbench_int sbtest1 > dump_10w.sqlv

2.2 执行如下命令,查看 sql 语句格局的数据。

head -30 dump_10w.sql

3. 通过 source 语句进行导入。

3.1 执行如下命令,登录 PolarDB-X。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 -Ac --local-infile

3.2 执行如下命令,创立指标数据库表.

create database test_two; use test_two; create table sbtest1 like sysbench_int.sbtest1;

3.3 执行如下命令,导入数据到指标表。

-- 留神文件门路 
source /root/dump_10w.sql;

3.4 执行如下命令,检查表数据。

-- 可检查表数据 
select min(id),max(id),count(id) from sbtest1;

4. 通过 mysql 命令导入

4.1 执行如下命令,登录 PolarDB-X。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 --local-infile

4.2 执行如下命令,清空表数据。

truncate table test_two.sbtest1;

4.3 执行 exit 退出数据库,而后执行如下导入命令。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 --default-character-set=utf8mb4 test_two < dump_10w.sql

4.4 执行如下命令,再次登录数据库检查表数据状况。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 --local-infile use test_two; select min(id),max(id),count(id) from sbtest1;

Batch-Tool 工具进行导入导出

1. 装置 batch-tool 工具(开源工具介绍:https://github.com/ApsaraDB/galaxysql-tools/tree/main/batch-tool)

执行如下命令,下载 batch-tool。

## github 下载, 国内应用 github 下载不稳固时,请您应用上面的 oss 下载
wget https://github.com/ApsaraDB/galaxysql-tools/releases/download/batch-tool-v1.2.0/batch-tool.jar
## oss 下载
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/PolarDB-X/batch-tool.jar

2. 执行如下命令,装置 java 环境。

yum install -y java-1.8.0-openjdk.x86_64

3. 通过 batch-tool 工具导出。

3.1 执行如下命令,通过 batch-tool 工具导出。

java -jar batch-tool.jar -h127.0.0.1 -P3306 -upolardbx_root -p123456 -D sysbench_int -o export -t sbtest1 -s , -F 1

3.2 执行如下命令,查看文件状况。

head -30 sbtest1_0

4. 通过 batch-tool 工具导入。

4.1 执行如下命令,登录 PolarDB-X。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 -Ac --local-infile

4.2 执行如下命令,清空表 test_one.test1 的数据

truncate table test_one.test1;

4.3 执行 exit 登出数据库。

4.4 执行如下命令,导入数据。

java -jar batch-tool.jar -h127.0.0.1 -P3306 -upolardbx_root -p123456 -D test_one -o import -t test1 -s , -f "sbtest1_0" -maxConn 8 -minConn 4

4.5 执行如下命令,再次登录 PolarDB- X 查看表的插入状况。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p123456 -Ac --local-infile
use test_one;
-- 检查表数据
select min(id),max(id),count(id) from test1;

点击立刻收费试用云产品 开启云上实际之旅!

原文链接

本文为阿里云原创内容,未经容许不得转载。

正文完
 0