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. Alternatively, you can use scripts to load tsfiles into IoTDB, for more information.
The user sends specified commands to the Apache IoTDB system through the Cli tool or JDBC to use the tool.
The command to load tsfiles is load <path/dir> [sglevel=int][verify=true/false][onSuccess=delete/none]
.
This command has two usages:
The first parameter indicates the path of the tsfile to be loaded. This command has three options: sglevel, verify, onSuccess.
SGLEVEL option. If the database correspond to the tsfile does not exist, the user can set the level of database through the fourth parameter. By default, it uses the database level which is set in iotdb-datanode.properties
.
VERIFY option. If this parameter is true, All timeseries in this loading tsfile will be compared with the timeseries in IoTDB. If existing a measurement which has different datatype with the measurement in IoTDB, the loading process will be stopped and exit. If consistence can be promised, setting false for this parameter will be a better choice.
ONSUCCESS option. The default value is DELETE, which means the processing method of successfully loaded tsfiles, and DELETE means after the tsfile is successfully loaded, it will be deleted. NONE means after the tsfile is successfully loaded, it will be remained in the origin dir.
If the .resource
file corresponding to the file exists, it will be loaded into the data directory and engine of the Apache IoTDB. Otherwise, the corresponding .resource
file will be regenerated from the tsfile file.
Examples:
load '/Users/Desktop/data/1575028885956-101-0.tsfile'
load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=true
load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=false
load '/Users/Desktop/data/1575028885956-101-0.tsfile' sglevel=1
load '/Users/Desktop/data/1575028885956-101-0.tsfile' onSuccess=delete
load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=true sglevel=1
load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=false sglevel=1
load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=true onSuccess=none
load '/Users/Desktop/data/1575028885956-101-0.tsfile' verify=false sglevel=1 onSuccess=delete
The first parameter indicates the path of the tsfile to be loaded. The options above also works for this command.
Examples:
load '/Users/Desktop/data'
load '/Users/Desktop/data' verify=false
load '/Users/Desktop/data' verify=true
load '/Users/Desktop/data' verify=true sglevel=1
load '/Users/Desktop/data' verify=false sglevel=1 onSuccess=delete
NOTICE: When $IOTDB_HOME$/conf/iotdb-datanode.properties
has enable_auto_create_schema=true
, it will automatically create metadata in TSFILE, otherwise it will not be created automatically.
Run rewrite-tsfile.bat if you are in a Windows environment, or rewrite-tsfile.sh if you are on Linux or Unix.
./load-tsfile.bat -f filePath [-h host] [-p port] [-u username] [-pw password] [--sgLevel int] [--verify true/false] [--onSuccess none/delete] -f File/Directory to be load, required -h IoTDB Host address, optional field, 127.0.0.1 by default -p IoTDB port, optional field, 6667 by default -u IoTDB user name, optional field, root by default -pw IoTDB password, optional field, root by default --sgLevel Sg level of loading Tsfile, optional field, default_storage_group_level in iotdb-common.properties by default --verify Verify schema or not, optional field, True by default --onSuccess Delete or remain origin TsFile after loading, optional field, none by default
Assuming that an IoTDB instance is running on server 192.168.0.101:6667, you want to load all TsFile files from the locally saved TsFile backup folder D:\IoTDB\data into this IoTDB instance.
First move to the folder $IOTDB_HOME/tools/
, open the command line, and execute
./load-rewrite.bat -f D:\IoTDB\data -h 192.168.0.101 -p 6667 -u root -pw root
After waiting for the script execution to complete, you can check that the data in the IoTDB instance has been loaded correctly.
TsFile can help you export the result set in the format of TsFile file to the specified path by executing the sql, command line sql, and sql file.
# Unix/OS X > tools/export-tsfile.sh -h <ip> -p <port> -u <username> -pw <password> -td <directory> [-f <export filename> -q <query command> -s <sql file>] # Windows > tools\export-tsfile.bat -h <ip> -p <port> -u <username> -pw <password> -td <directory> [-f <export filename> -q <query command> -s <sql file>]
-h <host>
:-p <port>
:-u <username>
:-pw <password>
:-td <directory>
:-f <tsfile name>
:-q <query command>
:select * from root.** limit 100
-s <sql file>
:-t <timeout>
:In addition, if you do not use the -s
and -q
parameters, after the export script is started, you need to enter the query statement as prompted by the program, and different query results will be saved to different TsFile files.
# Unix/OS X > tools/export-tsfile.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./ # or > tools/export-tsfile.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -q "select * from root.**" # Or > tools/export-tsfile.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -s ./sql.txt # Or > tools/export-tsfile.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -s ./sql.txt -f myTsFile # Or > tools/export-tsfile.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -s ./sql.txt -f myTsFile -t 10000 # Windows > tools/export-tsfile.bat -h 127.0.0.1 -p 6667 -u root -pw root -td ./ # Or > tools/export-tsfile.bat -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -q "select * from root.**" # Or > tools/export-tsfile.bat -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -s ./sql.txt # Or > tools/export-tsfile.bat -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -s ./sql.txt -f myTsFile # Or > tools/export-tsfile.sh -h 127.0.0.1 -p 6667 -u root -pw root -td ./ -s ./sql.txt -f myTsFile -t 10000