(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{676:function(e,t,o){"use strict";o.r(t);var a=o(70),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"system-tools"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#system-tools"}},[e._v("#")]),e._v(" System Tools")]),e._v(" "),o("h2",{attrs:{id:"load-external-tsfile-tool"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#load-external-tsfile-tool"}},[e._v("#")]),e._v(" Load External TsFile Tool")]),e._v(" "),o("h3",{attrs:{id:"introduction"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),o("p",[e._v("The load external tsfile tool allows users to load tsfiles, delete a tsfile, or move a tsfile to target directory from the running Apache IoTDB instance.")]),e._v(" "),o("h3",{attrs:{id:"usage"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#usage"}},[e._v("#")]),e._v(" Usage")]),e._v(" "),o("p",[e._v("The user sends specified commands to the Apache IoTDB system through the Cli tool or JDBC to use the tool.")]),e._v(" "),o("h4",{attrs:{id:"load-tsfiles"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#load-tsfiles"}},[e._v("#")]),e._v(" load tsfiles")]),e._v(" "),o("p",[e._v("The command to load tsfiles is "),o("code",[e._v('load "<path/dir>" [true/false] [storage group level]')]),e._v(".")]),e._v(" "),o("p",[e._v("This command has two usages:")]),e._v(" "),o("ol",[o("li",[e._v("Load a single tsfile by specifying a file path (absolute path).")])]),e._v(" "),o("p",[e._v("The second parameter indicates the path of the tsfile to be loaded and the name of the tsfile needs to conform to the tsfile naming convention, that is, "),o("code",[e._v("{systemTime}-{versionNum}-{mergeNum} .tsfile")]),e._v(". The third and fourth parameters are optional. If the metadata correspond to the timeseries in the tsfile to be loaded does not exist, you can choose whether to create the schema automatically. If the third parameter is true, the schema is created automatically. If the third parameter is false, the schema will not be created. By default, the schema will be created. If the storage group correspond to the tsfile does not exist, the user can set the level of storage group through the fourth parameter. By default, it uses the storage group level which is set in "),o("code",[e._v("iotdb-engine.properties")]),e._v(".\nIf the "),o("code",[e._v(".resource")]),e._v(" file corresponding to the file exists, it will be loaded into the data directory and engine of the Apache IoTDB. Otherwise, the corresponding "),o("code",[e._v(".resource")]),e._v(" file will be regenerated from the tsfile file.")]),e._v(" "),o("p",[e._v("Examples:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v('load "/Users/Desktop/data/1575028885956-101-0.tsfile"')])]),e._v(" "),o("li",[o("code",[e._v('load "/Users/Desktop/data/1575028885956-101-0.tsfile" false')])]),e._v(" "),o("li",[o("code",[e._v('load "/Users/Desktop/data/1575028885956-101-0.tsfile" true')])]),e._v(" "),o("li",[o("code",[e._v('load "/Users/Desktop/data/1575028885956-101-0.tsfile" true 1')])])]),e._v(" "),o("ol",{attrs:{start:"2"}},[o("li",[e._v("Load a batch of files by specifying a folder path (absolute path).")])]),e._v(" "),o("p",[e._v("The second parameter indicates the path of the tsfile to be loaded and the name of the tsfiles need to conform to the tsfile naming convention, that is, "),o("code",[e._v("{systemTime}-{versionNum}-{mergeNum} .tsfile")]),e._v(". The third and fourth parameters are optional. When the metadata corresponding to the time series in the tsfile to be loaded does not exist, you can choose whether to create the schema automatically. If the third parameter is true, the schema will be created automatically. If the third parameter is false, the schema will not be created. By default, the schema will be created. When the storage group corresponding to tsfile does not exist, the user can set the level of storage group through the fourth parameter. By default, it'll use the storage group level which is set in "),o("code",[e._v("iotdb-engine.properties")]),e._v(".\nIf the "),o("code",[e._v(".resource")]),e._v(" file corresponding to the file  exists, they will be loaded into the data directory and engine of the Apache IoTDB. Otherwise, the corresponding"),o("code",[e._v(".resource")]),e._v(" files will be regenerated from the tsfile sfile.")]),e._v(" "),o("p",[e._v("Examples:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v('load "/Users/Desktop/data"')])]),e._v(" "),o("li",[o("code",[e._v('load "/Users/Desktop/data" false')])]),e._v(" "),o("li",[o("code",[e._v('load "/Users/Desktop/data" true')])]),e._v(" "),o("li",[o("code",[e._v('load "/Users/Desktop/data" true 1')])])]),e._v(" "),o("h4",{attrs:{id:"remove-a-tsfile"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#remove-a-tsfile"}},[e._v("#")]),e._v(" remove a tsfile")]),e._v(" "),o("p",[e._v("The command to delete a tsfile is: "),o("code",[e._v('remove "<path>"')]),e._v(".")]),e._v(" "),o("p",[e._v("This command deletes a tsfile by specifying the file path. The specific implementation is to delete the tsfile and its corresponding "),o("code",[e._v(".resource")]),e._v(" and"),o("code",[e._v(".modification")]),e._v(" files.")]),e._v(" "),o("p",[e._v("Examples:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v('remove "root.vehicle/1575028885956-101-0.tsfile"')])]),e._v(" "),o("li",[o("code",[e._v('remove "1575028885956-101-0.tsfile"')])])]),e._v(" "),o("h4",{attrs:{id:"move-a-tsfile-to-a-target-directory"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#move-a-tsfile-to-a-target-directory"}},[e._v("#")]),e._v(" move a tsfile to a target directory")]),e._v(" "),o("p",[e._v("The command to move a tsfile to target directory is: "),o("code",[e._v('move "<path>" "<dir>"')]),e._v(".")]),e._v(" "),o("p",[e._v("This command moves a tsfile to a target directory by specifying tsfile path and the target directory(absolute path). The specific implementation is to remove the tsfile from the engine and move the tsfile file and its corresponding "),o("code",[e._v(".resource")]),e._v(" file to the target directory.")]),e._v(" "),o("p",[e._v("Examples:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v('move "root.vehicle/1575029224130-101-0.tsfile" "/data/data/tmp"')])]),e._v(" "),o("li",[o("code",[e._v('move "1575029224130-101-0.tsfile" "/data/data/tmp"')])])])])}),[],!1,null,null,null);t.default=s.exports}}]);