ltldr

ltldr — 兼容 ORACLE,将外部文件中的数据加载到 LightDB 数据库表中。

Synopsis

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

表示该列值跳过,不填充数据,可选;