ltldr — 兼容 ORACLE,将外部文件中的数据加载到 LightDB 数据库表中。
ltldr
[connection-option
...] [option
...]
ltldr 是一个小巧而灵活的工具,将外部文件中的数据加载到 LightDB 数据库表中。
ltldr 可以指定导入数据的格式,包括字段和字段、行和行之间的分隔符。
ltldr 目前支持的文件格式包括 txt 和 csv,也支持行定长的文件格式。
ltldr 支持将日志写入指定的文件。
以下命令行选项控制导入的内容和格式。
user=
指定导入表的用户。
dbname=
指定导入表的数据库名。
host=
指定导入表的主机名。
port=
指定导入表的端口号。
password=
指定导入表的密码。
control=
指定描述如何加载数据的控制文件的路径。
log=
指定用于存储有关加载过程的日志信息的日志文件录路径。
连接到数据库,根据控制文件 LTLDR000003.ctl
将外部数据导入到数据库 testdb
中的表:
$
ltldr control=/home/lightdb/ltldrtest/LTLDR000003.ctl host=127.0.0.1 port=5432 userid=lightdb password=111111 dbname=testdb
[ OPTIONS ( option [ , ... ] ) ] LOAD DATA [ CHARACTERSET charset ] INFILE 'filename' [ "STR 'char'" ] [ "FIX count" ] [ APPEND | INSERT | REPLACE ] INTO TABLE tablename [ WHEN condition ] [ FIELDS [CSV] TERMINATED BY 'char' ] [ [ OPTIONALLY ] ENCLOSED BY 'char' ] [ TRAILING NULLCOLS ] ( column1 constant '321', column2 position(5:10), column3 position(12:14), ignore1 FILLER column4 FILLER [ ... ] )
OPTIONS
支持的option有skip和load,skip表示跳过多少行,load表示最多导入多少行。
CHARACTERSET
数据文件字符集,需要保证控制文件(从环境获取字符集)和数据文件的字符集一致。
INFILE
指定导入的数据文件路径
STR
指定行分隔符,默认是'\n',支持多字节和十六进制,可选项
FIX
指定某一固定长度的数据来当做一行处理,可选项;
APPEND | INSERT | REPLACE
APPEND 追加;INSERT 插入,只能导入到空表中;REPLACE 替换,导入之前先清空表
INTO TABLE
指定导入的表名
WHEN
判断某一行是否可以导入,支持等于和不等于操作,可选。支持列名或者字符范围判断;
CSV
表示使用CSV格式解析数据文件,可选;
TERMINATED BY
指定列分割符,默认是'\t', 支持多字节和十六进制,可选项
ENCLOSED BY
当指定了CSV时,ENCLOSED BY表示字段包围符,只支持一个字节,可选;
TRAILING NULLCOLS
当数据文件列数目不够时,表中剩余的列为null,可选;
constant
表示字段使用固定值,用单引号引用常量,可选;
position
表示通过字符范围填充该字段,可选;
FILLER
表示该列值跳过,不填充数据,可选;