#csv数据快速导入
本章将对YashanDB内置数据导入工具yasldr进行介绍及提供基础示例。
yasldr是YashanDB提供的客户端导入工具,用于执行CSV格式的数据文件导入,每次导入单个数据文件至单个表中,有关yasldr工具的具体使用语法及限制可参考yasldr使用指导章节。
# 导入前准备
准备导入数据文件:
以安装用户登录数据库所在服务器,在HOME目录执行如下命令创建
datafile
文件:$ vi datafile
将如下内容写入
datafile
文件中:1|load|101 2|load|201
按Esc,输入
:wq
保存并退出文件编辑。
准备导入用户:
执行如下命令连接YashanDB数据库,请将
password
更改成设置的sys用户密码:$ yasql sys/password YashanDB SQL Personal Edition Release 23.2.9.100 x86_64 Connected to: YashanDB Server Personal Edition Release 23.2.9.100 x86_64 - X86 64bit Linux SQL>
执行如下SQL语句创建用户
yasldr_user
,并为其指定密码yasldr:CREATE USER yasldr_user IDENTIFIED BY yasldr;
执行如下SQL语句为
yasldr_user
用户授予登录会话和创建资源的权限:GRANT CONNECT TO yasldr_user; GRANT RESOURCE TO yasldr_user;
执行如下SQL语句切换至
yasldr_user
用户:conn yasldr_user/yasldr Connected to: YashanDB Server Personal Edition Release 23.2.9.100 x86_64 - X86 64bit Linux
准备数据文件导入的目标表,本文以创建表
loadData
为例:CREATE TABLE loadData (c1 INT,c2 CHAR(10),c3 INT);
执行如下命令退出YashanDB数据库:
SQL> exit $
# 数据导入
在数据库所在服务器中执行如下命令,将
datafile
文件中数据导入至yasldr_user
用户的loadData
表中:$ yasldr yasldr_user/yasldr batch_size=4032 control_text="'LOAD DATA OPTIONS(DEGREE_OF_PARALLELISM=2) INFILE '/home/yashan/datafile' FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '\"' APPEND INTO TABLE loadData(c1,c2,c3) '" YashanDB Loader Release 23.2.9.100 x86_64 297f388 2 rows successfully loaded. Check /home/yashan/datafile.log for more info. [YASLDR] execute succeeded
如上命令将
datafile
文件中数据根据|
进行分隔,分别导入loadData
表中的c1、c2和c3列字段中。
# 验证数据
执行如下命令登录数据库:
$ yasql yasldr_user/yasldr YashanDB SQL Personal Edition Release 23.2.9.100 x86_64 Connected to: YashanDB Server Personal Edition Release 23.2.9.100 x86_64 - X86 64bit Linux SQL>
执行如下SQL语句查看表
loadData
中数据:SELECT c1,c2,c3 FROM loadData; C1 C2 C3 ------------ ------------- ------------ 1 load 101 2 load 201