实践教程之如何使用PolarDB-X进行数据导入导出

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您如何使用PolarDB-X进行数据导入导出。

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.建议分屏,两个终端操作。

单击右上角的20230609101843.jpg

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

说明:

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;


本文来源:PolarDB-X 知乎号,关注阅读更多精彩好文

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
8天前
|
SQL 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.5 应用实践之 TPCH性能优化
PolarDB在复杂查询、大数据量计算与分析场景的测试和优化实践.
36 7
|
8天前
|
人工智能 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
31 4
|
8天前
|
搜索推荐 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.3 应用实践之 精准营销场景
本文介绍了基于用户画像的精准营销技术,重点探讨了如何通过标签组合快速圈选目标人群。实验分为三部分: 1. **传统方法**:使用字符串存储标签并进行模糊查询,但性能较差,每次请求都需要扫描全表。 2. **实验1**:引入`pg_trgm`插件和GIN索引,显著提升了单个模糊查询条件的性能。 3. **实验2**:改用数组类型存储标签,并结合GIN索引加速包含查询,性能进一步提升。 4. **实验3**:利用`smlar`插件实现近似度过滤,支持按标签重合数量或比例筛选。
28 3
|
8天前
|
关系型数据库 分布式数据库 PolarDB
PolarDB 开源基础教程系列 7.2 应用实践之 跨境电商场景
本文介绍了如何在跨境电商场景中快速判断商标或品牌侵权,避免因侵权带来的法律纠纷。通过创建品牌表并使用PostgreSQL的pg_trgm插件和GIN索引,实现了高性能的字符串相似匹配功能。与传统方法相比,PolarDB|PostgreSQL的方法不仅提升了上万倍的查询速度,还解决了传统方法难以处理的相似问题检索。具体实现步骤包括创建品牌表、插入随机品牌名、配置pg_trgm插件及索引,并设置相似度阈值进行高效查询。此外,文章还探讨了字符串相似度计算的原理及应用场景,提供了进一步优化和扩展的方向。
35 11
|
1月前
|
存储 SQL 缓存
PolarDB-X 在 ClickBench 数据集的优化实践
本文介绍了 PolarDB-X 在 ClickBench 数据集上的优化实践,PolarDB-X 通过增加优化器规则、优化执行器层面的 DISTINCT 和自适应两阶段 AGG、MPP 压缩等手段,显著提升了在 ClickBench 上的性能表现,达到了业内领先水平。
|
2月前
|
SQL 关系型数据库 分布式数据库
基于PolarDB的图分析:银行金融领域图分析实践
本文介绍了如何使用阿里云PolarDB PostgreSQL版及其图数据库引擎(兼容Apache AGE,A Graph Extension)进行图数据分析,特别针对金融交易欺诈检测场景。PolarDB PostgreSQL版支持图数据的高效处理和查询,包括Cypher查询语言的使用。文章详细描述了从数据准备、图结构创建到具体查询示例的过程,展示了如何通过图查询发现欺诈交易的关联关系,计算交易间的Jaccard相似度,从而进行欺诈预警。
基于PolarDB的图分析:银行金融领域图分析实践
|
2月前
|
SQL 人工智能 自然语言处理
PolarDB-PG AI最佳实践 1:基础能力实践
Polar_AI 是 PolarDB 数据库的 AI 扩展,集成了先进的人工智能模型和算法,使数据库能够执行机器学习和自然语言处理任务。它支持 PostgreSQL 及 Oracle 兼容版本,通过标准 SQL 轻松调用 AI 模型,具备简单易用、灵活可定制、无缝数据融合、数据安全和高性能等优势。用户可以通过 SQL 快速实现文本转向量、情感分类等功能,并能自定义扩展 AI 模型。
|
3月前
|
关系型数据库 Linux 分布式数据库
rpm安装polarDB-PG的实践
安装PolarDB for PostgreSQL的实践,需要帮助到有同样需要的小伙伴
251 3
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
4月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。

相关产品

  • 云原生分布式数据库 PolarDB-X