数据导出工具

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

    CSV

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

    选项

    参数名缩写描述
    —help-h显示帮助信息
    —version显示版本信息
    —hosts指定主机地址(hostname:svcname),用“,”分隔多个地址,默认值为
    —user-u指定数据库用户名
    —password-w指定数据库密码,指定值则使用明文输入,不指定值则命令行提示输入
    —cipher是否使用密文模式输入密码,默认为 false,不使用密文模式输入密码,关于密文模式的介绍可参考密码管理
    —token指定加密令牌
    —cipherfile指定密文文件路径,默认为 ~/sequoiadb/passwd
    —delrecord-r指定记录分隔符,默认是’\n’
    —type指定导出数据格式,为 csv 或 json,默认为 csv
    —filelimit指定单个导出文件的大小上限,单位可以为 k、K、M、m、G、g、T 或 t,默认值为 16G
    当导出文件将超过限制时,会切分为多个文件,具有编号后缀,如 file.csvfile.csv.1file.csv.2
    —fields指定导出集合的字段,该选项可以指定多次以指定多个导出集合的字段
    格式为 [csName.clName:][field1[,…]],当确定只导出一个集合时,可以仅指定字段列表 [field1[,…]]
    —withid强制导出或者在配置文件中生成字段时,是否包含 _id 字段
    当 type 为 json 时,默认为 true,包含 _id 字段;当 type 为 csv 时,默认为 false ,不包含 _id 字段
    —floatfmt指定浮点数格式,默认是 ‘%.16g’,输入 ‘db2’ 表示 ‘%+.14E’,其他格式 %[+]
    —ssl指定是否使用 SSL 连接,默认 false,不使用 SSL 连接
    —replace覆盖导出数据文件

    单集合选项

    参数名缩写描述
    —cscl导出的若干个导出集合或集合空间,多个名称使用逗号分隔,如
    —excludecscl不包含的集合或集合空间,类似 —cscl
    —dir导出的目录,导出的每一个集合对应目录中的同名文件,如 sample.employee.csv

    JSON 选项

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

    配置文件选项

    用户执行相关命令后,返回 0 则表示执行成功,返回非 0 则表示执行失败。

    示例

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

      1. field1, fieldNotExist, field3
      2. "Jack",,"China"
    • 以 json 格式导出数据库除集合空间 cs1 和集合 cs2.cla 以外的所有集合,导出文目录为 exportpath

    • 以 csv 格式导出集合空间 cs2 中除 cs2.cla 外的所有集合和集合 cs1.cla;由于必须指定每一个集合的 —fields,使用 —force 选项强制导出

    • 导出条件同上例,要求配置文件中包含每一个所对应的 —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

      执行导出