完美解决数据迁移问题,TDengine DUMP工具使用指南

原创
2020/03/10 17:30
阅读数 5.8K

小 T 导读:TDengine提供一个数据库数据的导入导出DUMP工具,从而支持数据的迁移。比如从某家公有云迁移到另外一家公有云。DUMP工具随TDengine最新版本(v1.6.5.6)安装包发布,体验DUMP工具只需升级TDengine即可,无需额外下载其他软件。



DUMP工具导出数据时,以sql语句的形式导出内容,包括数据库、超级表、普通表,以及表中的记录数据,然后保存到指定的输出文件中。


DUMP工具导入数据时,将导出的文件作为输入,顺序读入并执行文件中的sql语句,完成数据的导入。


DUMP命令帮助信息
root@taos-ec1:/dump# ./taosdump --helpUsage: taosdump [OPTION...] dbname [tbname ...]  or:  taosdump [OPTION...] --databases dbname ...  or:  taosdump [OPTION...] --all-databases  or:  taosdump [OPTION...] -i inpath  or:  taosdump [OPTION...] -o outpath  -h, --host=HOST            Server host dumping data from. Default is                             localhost.  -p, --password=PASSWORD    User password to connect to server. Default is                             taosdata.  -P, --port=PORT            Port to connect  -u, --user=USER            User name used to connect to server. Default is                             root.  -v, --cversion=CVERION     client version  -c, --config=CONFIG_DIR    Configure directory. Default is                             /etc/taos/taos.cfg.  -e, --encode=ENCODE        Input file encoding.  -i, --inpath=INPATH        Input file path.  -o, --outpath=OUTPATH      Output file path.  -A, --all-databases        Dump all databases.  -B, --databases            Dump assigned databases  -a, --allow-sys            Allow to dump sys database  -E, --end-time=END_TIME    End time to dump.  -M, --with-property        Dump schema with properties.  -N, --data-batch=DATA_BATCH   Number of data point per insert statement.                             Default is 1.  -s, --schemaonly           Only dump schema.  -S, --start-time=START_TIME   Start time to dump.  -t, --thread_num=THREAD_NUM   Number of thread for dump in file. Default is                             5.  -T, --table-batch=TABLE_BATCH   Number of table dumpout into one output file.                             Default is 1.  -?, --help                 Give this help list      --usage                Give a short usage message  -V, --version              Print program version  Mandatory or optional arguments to long options are also mandatory or optionalfor any corresponding short options.Report bugs to <support@taosdata.com>.


导出命令说明

导出数据时,可以使用不同的方式,比如导出所有数据库的数据;导出指定一个或多个数据库的数据;导出指定一个数据库中指定一个或多个表的数据。同时,以上方式时,还可以指定数据的时间范围。下面分别举例描述。


1、导出所有数据库的数据

root@taos-ec1:/dump# ./taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd -A -S 1559318400000 -E 1561910400000 -T 500 -N 80


-c :指定配置文件所在的路径。因为dump会启动taos客户端,去链接taosd服务,所以需要做好配置文件。

-o:指定输出文件的路径。文件会自动生成,一个dbs.sql文件,导出数据库、超级表;若干个XXX_tables.N.sql文件,文件名的规则:XXX是数据库名称,N是数字,从0开始递增。

-u:用户名。

-p:密码。

-A:指示导出所有数据库的数据。

-S:指定导出记录的开始时间。Unix时间戳,单位:毫秒。该示例中时间是2019/6/1 0:0:0。

-E:指定导出记录的最后时间。Unix时间戳,单位:毫秒。该示例中时间是2019/7/1 0:0:0

-T:指定导入到一个文件的表的个数。该参数可以控制输出文件的大小。

-N:指定一条import语句中包含记录的条数。注意:不要让sql语句超过64k,否则后续导入会出错。该参数为了后续导入时,提高导入速率。


2、导出指定数据库的数据

root@taos-ec1:/dump# ./taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd -B dbname1 dbname2 -S 1559318400000 -E 1561910400000 -T 500 -N 100


-B:指定仅导出dbname1和dbname2的所有数据。


3、导出指定数据库中指定表的数据

root@taos-ec1:/dump# ./taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd  dbname1 tablename1 tablename2 -S 1559318400000 -E 1561910400000 -T 500 -N 100


指定导出dbname1数据库中tablename1和tablename2的数据。


导出完成后,在指定的输出目录下生成若干.sql的文件。


导入命令说明

将导出的所有文件(由于文件比较大,建议进行压缩,传输到目的机器上后,再解压),拷贝到一个路径下,比如/tmp路径。导入数据时,需要指定导入文件所在的目录。

root@ecs-17fe:# ./taosdump -c /tmp/cfg -u jason -p abcd -i /tmp/data0601-0701 -t 4


-i:导入文件所在路径。

-t:指定导入数据时,启动的线程数。一般设置成机器上core的2倍。


校验

完成导入后,可以随机执行一些查询,在相同的查询条件下,导出前与导入后的记录条数是否相同。比如

taos> select count(*) from table_name;taos> select count(*) from super_table where ts >= 1559318400000 and ts <= 1561910400000;


点击阅读原文,更新TDengine版本,体验DUMP工具吧!

本文分享自微信公众号 - TDengine(taosdata_news)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部