ltuldr

ltuldr — 兼容 ORACLE,从 LightDB 数据库获取表的所有信息。

Synopsis

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