更新时间:2024-11-29 GMT+08:00

IoTDB数据导出

操作场景

该任务指导用户使用“export-csv.sh”将数据从IoTDB导出为CSV格式的文件。

导出CSV格式的数据文件,可能存在注入风险,请谨慎使用。

前提条件

  • 已安装客户端,例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
  • 各组件业务用户由MRS集群管理员根据业务需要创建。安全模式下,“机机”用户需要下载keytab文件,“人机”用户第一次登录时需修改密码。
  • 服务端默认开启了SSL,需参考使用IoTDB客户端章节生成“truststore.jks”证书,并拷贝到“客户端安装目录/IoTDB/iotdb/conf”目录下。

操作步骤

  1. 以客户端安装用户,登录安装客户端的节点。
  2. 执行以下命令,切换到客户端安装目录。

    cd /opt/client

  3. 执行以下命令配置环境变量。

    source bigdata_env

  4. 若当前集群开启了Kerberos认证,执行以下命令认证当前用户,若集群未开启Kerberos认证请跳过该步骤。

    kinit 组件业务用户

  5. 执行以下命令,切换“export-csv.sh”运行脚本所在目录。

    cd /opt/client/IoTDB/iotdb/tools

  6. 在运行导出脚本之前,需要输入一些查询或指定一些SQL文件。如果在一个SQL文件中有多个SQL,SQL应该被换行符分割。例如:
    select * from root.fit.d1
    select * from root.sg1.d1
  7. 运行“export-csv.sh”,导出数据。

    ./export-csv.sh -h IoTDBServer实例节点的业务ip -p IoTDBServer RPC端口 -td <directory> [-tf <time-format> -s <sqlfile>]

    运行示例:

    ./export-csv.sh -h x.x.x.x -p 22260 -td ./
    # Or
    ./export-csv.sh -h x.x.x.x -p 22260 -td ./ -tf yyyy-MM-dd\ HH:mm:ss
    # Or
    ./export-csv.sh -h x.x.x.x -p 22260 -td ./ -s sql.txt
    # Or
    ./export-csv.sh -h x.x.x.x -p 22260 -td ./ -tf yyyy-MM-dd\ HH:mm:ss -s sql.txt
    • IoTDBServer实例节点的业务IP地址可登录FusionInsight Manager后选择“集群 > 服务 > IoTDB > 实例”查看。
    • RPC端口默认为22260,可通过“集群 > 服务 > IoTDB > 配置 > 全部配置”,搜索参数“IOTDB_SERVER_RPC_PORT”获得。
    • 若导出字段存在,特殊字符:整个字段会被用双引号括起来,例如:hello,world导出为"hello,world"。
    • 若导出字段存在"特殊字符:整个字段会被用双引号括起来且"会被替换为\",例如:"world"导出为"\"world\""。
  8. 运行7的命令会出现CSV注入风险提示,输入“yes”继续执行命令,输入其他,则取消数据导出操作。

    例如:输入“yes”后,需根据提示输入业务用户名和对应密码,当显示以下信息,表示数据导出成功。

    • 为避免安全风险,推荐使用交互式方式导出CSV文件。
    • 导出CSV文件也可使用“./export-csv.sh -h IoTDBServer实例节点的业务ip -p IoTDBServer RPC端口 -u 业务用户名 -pw 业务用户密码 -td <directory> [-tf <time-format> -s <sqlfile>]”命令。
      运行示例:
      ./export-csv.sh -h x.x.x.x -p 22260 -u test -pw 密码 -td ./
      # Or
      ./export-csv.sh -h x.x.x.x -p 22260 -u test -pw 密码 -td ./ -tf yyyy-MM-dd\ HH:mm:ss
      # Or
      ./export-csv.sh -h x.x.x.x -p 22260 -u test -pw 密码 -td ./ -s sql.txt
      # Or
      ./export-csv.sh -h x.x.x.x -p 22260 -u test -pw 密码 -td ./ -tf yyyy-MM-dd\ HH:mm:ss -s sql.txt

      如下显示表示CSV文件导出成功: