加载 TsFile

介绍

加载外部 tsfile 文件工具允许用户向正在运行中的 Apache IoTDB 中加载、删除或移出 tsfile 文件。

使用方式

用户通过 Cli 工具或 JDBC 向 Apache IoTDB 系统发送指定命令实现文件加载的功能。

加载 tsfile 文件

加载 tsfile 文件的指令为:load '<path/dir>' [autoregister=true/false][,sglevel=int][,verify=true/false]

该指令有两种用法:

  1. 通过指定文件路径(绝对路径)加载单 tsfile 文件。

第二个参数表示待加载的 tsfile 文件的路径,其中文件名称需要符合 tsfile 的命名规范,即{systemTime}-{versionNum}-{in_space_compaction_num}-{cross_space_compaction_num}.tsfile。load 命令有三个可选项,分别是 autoregister,值域为 true/false,sglevel,值域为整数,verify,值域为 true/false。不同选项之间用逗号连接,选项之间无顺序要求。

AUTOREGISTER 选项表示当待加载的 tsfile 文件中时间序列对应的元数据不存在时,用户可以选择是否自动创建 schema ,参数为 true 表示自动创建 schema,相反 false 表示不创建,缺省时默认创建 schema。

SGLEVEL 选项,当 tsfile 对应的存储组不存在时,用户可以通过 sglevel 参数的值来制定存储组的级别,默认为iotdb-engine.properties中设置的级别。例如当设置 level 参数为1时表明此 tsfile 中所有时间序列中层级为1的前缀路径是存储组,即若存在设备 root.sg.d1.s1,此时 root.sg 被指定为存储组。

VERIFY 选项表示是否对载入的 tsfile 中的所有时间序列进行元数据检查,默认为 true。开启时,若载入的 tsfile 中的时间序列在当前 iotdb 中也存在,则会比较该时间序列的所有 Measurement 的数据类型是否一致,如果出现不一致将会导致载入失败,关闭该选项会跳过检查,载入更快。

若待加载的 tsfile 文件对应的.resource文件存在,会被一并加载至 Apache IoTDB 数据文件的目录和引擎中,否则将通过 tsfile 文件重新生成对应的.resource文件,即加载的 tsfile 文件所对应的.resource文件不是必要的。

示例:

  • load '/Users/Desktop/data/1575028885956-101-0.tsfile'
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' autoregister=false
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' autoregister=true
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' sglevel=1
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=true
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' autoregister=true,sglevel=1
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=false,sglevel=1
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' autoregister=false,verify=true
  • load '/Users/Desktop/data/1575028885956-101-0.tsfile' autoregister=false,sglevel=1,verify=true
  1. 通过指定文件夹路径(绝对路径)批量加载文件。

第二个参数表示待加载的 tsfile 文件夹的路径,其中文件夹内所有文件名称需要符合 tsfile 的命名规范,即{systemTime}-{versionNum}-{in_space_compaction_num}-{cross_space_compaction_num}.tsfile。选项意义与加载单个 tsfile 文件相同。

示例:

  • load '/Users/Desktop/data'
  • load '/Users/Desktop/data' autoregister=false
  • load '/Users/Desktop/data' autoregister=true
  • load '/Users/Desktop/data' autoregister=true,sglevel=1
  • load '/Users/Desktop/data' autoregister=false,sglevel=1,verify=true

删除 tsfile 文件

删除 tsfile 文件的指令为:remove '<path>'

该指令通过指定文件路径删除 tsfile 文件,具体做法是将该 tsfile 和其对应的.resource.modification文件全部删除。

示例:

  • remove '/Users/Desktop/data/data/root.vehicle/0/0/1575028885956-101-0.tsfile'

卸载 tsfile 文件至指定目录

卸载 tsfile 文件的指令为:unload '<path>' '<dir>'

该指令将指定路径的 tsfile 文件卸载并移动至目标文件夹(绝对路径)中,具体做法是在引擎中卸载该 tsfile,并将该 tsfile 文件和其对应的.resource文件移动到目标文件夹下

示例:

  • unload '/Users/Desktop/data/data/root.vehicle/0/0/1575028885956-101-0.tsfile' '/data/data/tmp'