手动导出IoTDB数据
操作场景
该任务指导用户使用“export-csv.sh”将数据从IoTDB导出为CSV格式的文件。
导出CSV格式的数据文件,可能存在注入风险,请谨慎使用。
前提条件
- 已安装客户端,请参见。例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
- 各组件业务用户由MRS集群管理员根据业务需要创建,具体操作请参见。安全模式下,“机机”用户需要下载keytab文件,具体操作请参见。“人机”用户第一次登录时需修改密码。
操作步骤
- 以客户端安装用户,登录安装客户端的节点。
- 执行以下命令,切换到客户端安装目录。
- 执行以下命令配置环境变量。
- 首次登录IoTDB客户端前需执行以下步骤生成SSL客户端证书:
- 如果当前集群开启了Kerberos认证,执行以下命令认证当前用户,如果集群未开启Kerberos认证请跳过该步骤。
- 执行以下命令,切换“export-csv.sh”运行脚本所在目录。
- 在运行导出脚本之前,需要输入一些查询或指定一些SQL文件。如果在一个SQL文件中有多个SQL,SQL应该被换行符分隔。例如:
select * from root.fit.d1 select * from root.sg1.d1
- 运行“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\""。
- 运行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文件导出成功: