数据导出工具

    JSON 导出格式中的 JSON 记录符合 JSON 的定义,以左右花括号作为 JSON 记录的分界符,并且字符串类型的数据必须包含在两个双引号之间,转义字符为反斜杠“\”。默认情况下(SequoiaDB的)记录以换行符分隔。用户能够指定记录分隔符。

    CSV

    CSV(Comma Separated Value)导出格式以逗号分隔数值。默认情况下记录以换行符分隔,字段以逗号分隔。用户能够指定字符串分隔符、字段分隔符以及记录分隔符。

    选项

    选项缩写说明
    —help-h显示帮助信息
    —version显示版本信息
    —hostname-s主机名,默认为 localhost
    —svcname-p端口号,默认为 11810
    —user-u数据库用户名
    —password-w数据库密码,指定值则使用明文输入,不指定值则命令行提示输入
    —cipher是否使用加密文件输入密码,默认为 false
    —token加密口令
    —cipherfile加密文件,默认为 ./passwd
    —delrecord-r记录分隔符。默认是'\n'
    —type导出数据格式,为 csv 或 json,默认为 csv
    —filelimit指定单个导出文件的大小上限,单位可以为 k、K、M、m、G、g、T 或 t,默认值为 16G。当导出文件将超过限制时,会切分为多个文件,具有编号后缀,如 file.csv,file.csv.1,file.csv.2
    —fields导出集合的字段。该选项可以指定多次以指定多个导出集合的字段。格式为 ,当确定只导出一个集合时,可以仅指定字段列表
    —withid强制导出或者在配置文件中生成字段时,是否包含 _id 字段,默认为false
    —floatfmt指定浮点数格式,默认是 '%.16g',输入 'db2' 表示 '%+.14E',其他格式 %[+]
    —ssl使用 SSL 连接,默认 false
    —replace覆盖导出数据文件

    单集合选项

    选项缩写说明
    —cscl导出的若干个导出集合或集合空间,多个名称使用逗号分隔,如
    —excludecscl不包含的集合或集合空间,类似 —cscl
    —dir导出的目录。导出的每一个集合对应目录中的同名文件,如 foo.bar.csv

    JSON 选项

    选项缩写说明
    —delchar-a字符分隔符,默认值为双引号'"'
    —delfield-e字段分隔符,默认值为逗号','
    —included是否导出字段名到文件首行,默认值为 true
    —includebinary是否导出完整二进制数据,默认值为 false
    —includeregex是否导出完整的正则表达式,默认值为 false
    —force对于导出 csv 格式,每个集合必须指定对应的字段,否则不允许导出;—force 选项可以强制导出,未指定字段的集合默认为第一行记录中除了 _id 以外的字段
    —kicknull是否踢掉 null 值,true 输出空字符,false 输出 null,默认为 false
    —checkdelimeter是否严格校验分隔符,默认为 true。true:禁止字符分隔符、字段分隔符、记录分隔符互相包含;false:允许字符分隔符、字段分隔符、记录分隔符互相包含。

    配置文件选项

    Note:

    • 导出工具支持单集合导出和多集合批量导出, 单集合选项 只能用于导出一个集合,但具有更灵活的导出条件选项,如过滤、排序。
    • 导出多集合到 csv 格式时,必须使用 —fields 选项对每一个集合指定字段,工具提供的 —genconf 选项将每一个集合的第一行记录的字段导出到配置文件中的 —fields 选项,可以比较方便地编辑每一个集合的字段。
    • —genconf 选项将当前命令行的选项写入到配置文件中,下次使用 —conf 选项指定配置文件执行即可,这提供一种多次执行相似命令的便捷方式,另外这种方式主要用于在多集合导出 csv 情况下,对每一个集合生成对应的 —fields 选项。
    • 导出单集合时,—select 具有和 —fields 选项一样的作用,但 —select 选项更加灵活。
    • 当不指定导出任何集合或者集合空间,即 -c、-l、—cscl 都不指定,则导出数据库中所有的集合。
    • 当使用配置文件的选项和命令行选项一样时,优先选择命令行值。
    • 0: 执行成功
    • 非0: 执行失败

    示例

    • 导出集合“foo.bar”,导出格式为 csv,导出文件为“foo.bar.csv”,指定字段“field1”、“fieldNotExist”、“field3”,其中字段“fieldNotExist”在集合中不存在

    导出的foo.bar.csv的内容可能如下:

    1. field1, fieldNotExist, field3
    2. "Mike",,"USA"
    • 导出数据库中所有的集合,排除集合空间“cs1”和集合“cs2.cla”以外,导出文件到目录“exportpath”下
    • 导出一个集合空间中所有的集合和另外一个集合,排除一个集合,导出 csv 格式,由于必须指定每一个集合的 —fields,使用 —force 选项强制导出
    1. $ sdbexprt --dir exportpath --cscl cs1.cla,cs2 --excludecscl cs2.cla --force true
    • 同上例,生成配置文件模板,其中配置文件中包含每一个所对应的 —fields 选项;根据需求修改配置文件之后,再执行导出

    配置文件文件内容可能如下:

    1. hostname = localhost
    2. ...
    3. dir = exportpath/
    4. cscl = cs1.cla,cs2
    5. excludecscl = cs2.cla
    6. fields = cs1.cla: a1, a2, a3
    7. fields = cs2.clb: b1, b2, b3
    8. fields = cs2.cld: d1, d2, d3, d4

    执行导出: