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

华为GaussDB T 数据导出/导入 DUMP/LOAD

原创 章芋文 2019-09-22
3109

DUMP

在数据库迁移或者数据备份时,需要进行数据导入导出,GaussDB 100支持使用“DUMP”命令导出数据。

语法格式

DUMP { TABLE table_name | QUERY ""select_query "" }

   INTO FILE 'file_name '

   [ FILE SIZE 'uint64_file_size' ]

   [ { FIELDS | COLUMNS } ENCLOSED BY 'ascii_char' [ OPTIONALLY ] ]

   [ { FIELDS | COLUMNS } TERMINATED BY 'string ']

   [ { LINES | ROWS } TERMINATED BY 'string ']

   [ CHARSET 'string' ];

参数说明

table_name

需要导出的表名。

select_query

需要导出的行,这些行是使用SELECT子句指定返回的结果。

file_name

导出的文件名。

uint64_file_size

指定导出文件的大小,超过指定的大小后创建新的文件,默认值:0M,表示不拆分。

FIELDS

指定每一列的格式。

COLUMNS

FIELDS的同义词。

ENCLOSED BY

指定列的包含符号。

ascii_char

每一列的包含符号, 例如""ABC"",这里双引号是包含符,默认不指定包含符。

取值范围:单个ASCII字符, 或者空字符串('',表示不指定包含符)。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。

常见转义字符请参见表1。

OPTIONALLY

仅对字符串和二进制类型增加符号,默认没有包含符。

TERMINATED BY

指定列的分隔字符串。

string

列分隔符,默认为“,”。

取值范围:单个ASCII字符。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。

常见转义字符请参见表1。

LINES

一条记录有多行,则可以使用LINES来指定行的结束符。

ROWS

LINES的同义词。

string

行尾结束符,默认为\n。

取值范围:单个ASCII字符。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。

常见转义字符请参见表1。

CHARSET

指定导出数据的字符集。

string

当前仅支持UTF8无BOM字符集(CHARSET = UTF8)和GBK字符集(CHARSET = GBK),默认UTF8无BOM字符集。

row_terminated_char

行尾结束符,默认为\n。

取值范围:单个ASCII字符。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。


数据导出
    前提条件
    确保磁盘空间足够。
    确保CPU资源足够。
    操作步骤
    以DBA身份登录GaussDB  100数据库。
   
    zsqlconn gaussdba/gaussdb_123@192.168.0.1:1888
     
    gaussdba/gaussdb_123为安装后创建的系统管理员和修改后的密码,192.168.0.1为数据库所在的服务器IP地址,1888为连接的端口号。
     
     
    执行导出命令。
     
     
    导出表training。

DUMP TABLE training INTO FILE '/home/gaussdba/data/training_backup' ;

   

 导出表training中指定的行(SELECT返回的结果)。

DUMP QUERY "SELECT course_name,score,exam_date FROM training WHERE course_name = 'SQL majorization'" 
     INTO FILE '/home/gaussdba/data/training_query_backup '
     COLUMNS ENCLOSED BY ''''
     COLUMNS TERMINATED BY '|';


LOAD

功能描述

在数据库迁移或者数据备份时,需要进行数据导入导出,GaussDB 100支持使用“LOAD”命令导入数据。

语法格式

 LOAD DATA INFILE ""file_name"" INTO TABLE table_name

  [ REPLACE | IGNORE ]

  [{ FIELDS | COLUMNS } ENCLOSED BY 'ascii_char' [ OPTIONALLY ]]

  [{ FIELDS | COLUMNS } TERMINATED BY 'string']

  [{ LINES | ROWS } TERMINATED BY 'string']

  [ TRAILING COLUMNS( COLUMN1[ , COLUMN2, ... ] ) ]

  [ IGNORE uint64_num { LINES | ROWS }]

  [ CHARSET string ]

  [ THREADS uint32_threads ]

  [ ERRORS uint32_num ]

  [ NOLOGGING ]

  [ NULL2SPACE ]

  [ DEBUG ]

  [ SET col_name = expr,... ];

参数说明

file_name

被导入的文件路径和文件名。

table_name

导入的表名。

REPLACE

指定REPLACE时,新行将代替有相同唯一键值的现有行。

IGNORE

指定IGNORE时,导入数据时跳过与现有行唯一键值重复的输入行。

FIELDS

指定每一列的格式。

COLUMNS

FIELDS的同义词。

ENCLOSED BY

指定列的包含符号。

ascii_char

每一列的包含符号,默认不设定包含符。

取值范围:单个ASCII字符,或者空字符串('',表示不设定包含符)。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。

常见转义字符请参见表1。

OPTIONALLY

仅对字符串和二进制类型增加符号,默认为单引号。

TERMINATED BY

指定列的分隔字符串。

string

列分隔字符串,默认为“,”。

取值范围:单个或多个ASCII字符,该字符串长度不能超过10。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。

常见转义字符请参见表1。

LINES

一条记录有多行,则可以使用LINES来指定行的结束符。

ROWS

LINES的同义词。

string

行尾结束符,默认为\n。

取值范围:单个ASCII字符。

10进制ASCII字符取值范围为0~127。

16进制ASCII字符取值范围为\x00~\x7F。

常见转义字符请参见表1。

TRAILING COLUMNS( column_name[ , ... ] )

指定列名导入数据,其中column_name为列名,至少指定一个列名。

SET col_name = expr, ...

SET子句用于提供不是来源于输入文件的值,必须位于LOAD命令的末尾处。

其中col_name表示列名,expr为表达式,表达式中可对列名字段进行运算,并且只能含有位于赋值操作符左侧的列名称。set子句中需要至少指定一列及对应表达式。

SET子句设置的列不能重复,不能是“TRAILING COLUMNS”子句中指定的列。

IGNORE uint64_num

指定忽略的行数,uint64_num表示忽略前uint64_num行,默认值为0。

CHARSET

指定**数据的字符集。

string

当前仅支持UTF8无BOM字符集(CHARSET = UTF8)和GBK字符集(CHARSET = GBK),默认UTF8无BOM字符集。

THREADS

指定并行导入的线程数。

uint32_threads

表示并行导入的线程数,默认值1,多线程并发是为了提高效率,允许错误条数统计有误差,同时会记录详细错误行号信息,不影响后续的导入。

取值范围:[1, 128]。

ERRORS

指定允许出错的sql语句数。

uint32_num

表示允许出错的sql语句数,默认为0。

NOLOGGING

表示**数据不记录redo日志和undo日志。必须将目标表设置为append only,才能使用此选项。

NULL2SPACE

若导入的列数据为空,其类型为CHAR、LOB等字符型并且要求NOT NULL时,将**一个空格字符代替NULL。

DEBUG

此选项会将工具运行过程中的调试信息打印到屏幕上。

转义字符

意义

ASCII码值(十进制)


数据导入

前提条件

确保磁盘空间足够。

确保CPU资源足够。

操作步骤

以DBA身份登录GaussDB 100数据库。

zsqlconn gaussdba/gaussdb_123@192.168.0.1:1888

gaussdba/gaussdb_123为安装后创建的系统管理员和修改后的密码,192.168.0.1为数据库所在的服务器IP地址,1888为连接的端口号。


执行导入命令。

数据文件training_backup导入到表training_new中。

LOAD DATA INFILE ""/home/gaussdba/data/training_backup"" INTO TABLE training_new FIELDS ENCLOSED BY '|';

数据文件training_backup导入到表training_new的指定列course_name中。

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

评论