ltuldr — 兼容 ORACLE,从 LightDB 数据库获取表的所有信息。
ltuldr
[connection-option
...] [option
...]
ltuldr 是一个小巧而灵活的工具,可导出 LightDB 数据。它可以直接导出指定表的所有数据,也可以使用 SQL 语句导出特定数据。
ltuldr 可以指定导出数据的格式,包括字段和字段、行和行之间的分隔符。
ltuldr 目前支持的文件格式包括 txt 和 csv,也可以直接将数据输出到标准设备。
ltuldr 支持将日志写入指定的文件。
以下命令行选项控制输出的内容和格式。
user=
指定导出表的用户。
dbname=
指定导出表的数据库名。
host=
指定导出表的主机名。
port=
指定导出表的端口号。
password=
指定导出表的密码。
query=
指定导出表的信息。 您可以直接使用表名或使用 SQL 语句。
对于 ltuldr,查询和连接信息是必需的。 您还可以使用以下 SQL 参数来指定 SQL 语句。
sql=
指定 SQL 语句的文件地址,应与连接信息一起使用。
如果 SQL 语句非常复杂或很长,很难在命令行上指定它。 此时,您可以编写一个包含复杂 SQL 的 SQL 文件(注意 SQL 语句末尾不应该有分号或反斜杠), 然后告诉用户从指定的 SQL 文件中读取复杂的 SQL 语句以进行数据导出。
sql 参数和 query 参数不能同时使用。
field=
指定导出文件中字段之间的分隔符。默认值为“,”。
字段分隔符通常为一个字符,但实际上可以是多个字符; 此外,可见的可打印字符、字符串和不可见字符都可以用作分隔符。
record=
指定导出文件中行之间的分隔符。默认值为“\n”。
记录和文件分隔符的命名方式相同。
file=
指定导出文件的名称。如果文件名的第一个字符是加号 (+),则表示添加到现有文件之后。 否则,将生成一个新文件。如果已经存在同名文件,则现有文件将被覆盖。 如果未指定,则默认为小写的“uldrdata.txt”。存储路径是运行 ltuldr 的当前目录。
在文件选项中有几个特殊的格式代码,可以用于指定动态文件名(在生成的文件名中包含日期信息)。 合理使用这些格式代码可以满足一些特定需求,减轻脚本编写的工作量。 %Y、%y:表示当前时间的四位年份; %M、%m:表示当前时间的两位月份; %D、%d:表示当前时间的两位日期; %W、%w:表示当前时间所在的星期中的天数; %B、%b:500000 是一个批次,它还与选项 batch 相关。 如果 batch 是 2,则每导出 100 万次,计数器就会增加一次。
log=
指定导出日志的文件。其他用法与文件参数相同,除了日志文件不允许使用 %B 和 %b。
batch=
指定文件中最大保存的批次,每 500000 个数据为一批。 在分批写入文件时,文件名必须是动态的,最好添加 %B 和 %b。 否则,原始文件中的数据将被覆盖。
连接到数据库,查询 pg_class 表并将结果写入默认文件 uldrdata.txt
:
$
ltuldr user=lightdb dbname=postgres host=127.0.0.1 port=5432 password=1 query=pg_class
将结果写入指定文件 lightdb.txt
:
$
ltuldr user=lightdb dbname=postgres host=127.0.0.1 port=5432 password=1 query=pg_class file=lightdb.txt
将日志文件写入动态文件 %Y_%M_%D.log
:
$
ltuldr user=lightdb dbname=postgres host=127.0.0.1 port=5432 password=1 query=pg_class file=lightdb.txt log=%Y_%M_%D.log
将表中的所有字段写入文件 lightdb.txt
:
$
ltuldr user=lightdb dbname=postgres host=127.0.0.1 port=5432 password=1 query=pg_class file=lightdb.txt log=%Y_%M_%D.log head=yes
每次获取两个批次的数据,并将其写入文件 lightdb.txt
:
$
ltuldr user=lightdb dbname=postgres host=127.0.0.1 port=5432 password=1 query=pg_class file=lightdb.txt log=%Y_%M_%D.log head=yes batch=2