更新时间:2024-07-24 GMT+08:00

手导出IoTDB数据

操作场景

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

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

前提条件

  • 已安装客户端,请参见。例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
  • 各组件业务用户由MRS集群管理员根据业务需要创建,具体操作请参见。安全模式下,“机机”用户需要下载keytab文件,具体操作请参见。“人机”用户第一次登录时需修改密码。

操作步骤

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

    cd /opt/client

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

    source bigdata_env

  4. 首次登录IoTDB客户端前需执行以下步骤生成SSL客户端证书:
    1. 执行以下命令生成客户端SSL证书:

      keytool -noprompt -import -alias myservercert -file ca.crt -keystore truststore.jks

      执行该命令后需输入一个自定义密码。

    2. 将生成的“truststore.jks”文件复制到“客户端安装目录/IoTDB/iotdb/conf”目录下:

      cp truststore.jks 客户端安装目录/IoTDB/iotdb/conf

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

    kinit 组件业务用户

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

    cd /opt/client/IoTDB/iotdb/tools

  7. 在运行导出脚本之前,需要输入一些查询或指定一些SQL文件。如果在一个SQL文件中有多个SQL,SQL应该被换行符分割。例如:
    select * from root.fit.d1
    select * from root.sg1.d1
  8. 运行“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端口可通过“集群 > 服务 > IoTDB > 配置 > 全部配置”,搜索参数“IOTDB_SERVER_RPC_PORT”获得。
    • 如果导出字段存在,特殊字符:整个字段会被用双引号括起来,例如:hello,world导出为"hello,world"。
    • 如果导出字段存在"特殊字符:整个字段会被用双引号括起来且"会被替换为\",例如:"world"导出为"\"world\""。
  9. 运行8的命令会出现CSV注入风险提示,输入“yes”继续执行命令,输入其他,则取消数据导出操作。

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

    • 为避免安全风险,推荐使用交互式方式导出CSV文件。
    • 导出CSV文件也可使用“./export-csv.sh -h IoTDBServer实例节点的业务ip -p IoTDBServer RPC端口 -u 业务用户名 -pw 业务用户密码 -td <directory> [-tf <time-format> -s <sqlfile>]”命令。命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。
      运行示例:
      ./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文件导出成功: