【TDengine】2、数据导入与导出

数据导入

TDengine提供多种方便的数据导入功能,一种按脚本文件导入,一种按数据文件导入,一种是taosdump工具导入本身导出的文件。

1.按脚本文件导入

TDengine的shell支持source filename命令,用于批量运行文件中的SQL语句。用户可将建库、建表、写数据等SQL命令写在同一个文件中,每条命令单独一行,在shell中运行source命令,即可按顺序批量运行文件中的SQL语句。以‘#’开头的SQL语句被认为是注释,shell将自动忽略。

source D:\Desktop\sql.txt;

2.按数据文件导入

TDengine也支持在shell对已存在的表从CSV文件中进行数据导入。CSV文件只属于一张表且CSV文件中的数据格式需与要导入表的结构相同, 在导入的时候,其语法如下

insert into tb1 file 'path/data.csv';

3.taosdump工具导入

TDengine提供了方便的数据库导入导出工具taosdump。用户可以将taosdump从一个系统导出的数据,导入到其他系统中。

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

taosdump -c /tmp/cfg -u jason -p abcd -i /tmp/data0601-0701 -T 8
#本地示例:taosdump -c C:/TDengine/cfg -i D:\Desktop\taosdump.3377134500010

参数说明

-c : 指定配置文件所在的路径。因为dump会启动taos客户端,去链接taosd服务,所以需要做好配置文件。
​
-u:用户名。
​
-p:密码。
​
-i:导入文件所在路径。
​
-T:指定导入数据时,启动的线程数。建议设置成机器上core的2倍。

数据导出

为方便数据导出,TDengine提供了两种导出方式,分别是按表导出和用taosdump导出。

1.按表导出CSV文件

如果用户需要导出一个表或一个STable中的数据,可在shell中运行

select * from <tb_name> >> data.csv;

2.taosdump导出数据

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

# 1、导出所有数据库的数据
taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd -A -S 1559318400000 -E 1561910400000 -t 500 -B 80 -T 8
​
#本地示例:taosdump -c C:/TDengine/cfg -o D:/Desktop -A -S 1559318400000 -E 1581910400000 -t 500 -B 80 -T 8
​
# 2、导出指定数据库的数据
taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd -D dbname1 dbname2 -S 1559318400000 -E 1561910400000 -t 500 -B 100 -T 8
​
# 3、导出指定数据库中指定表的数据
    #指定仅导出dbname1和dbname2的所有数据。
taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd  dbname1 tablename1 tablename2 -S 1559318400000 -E 1561910400000 -t 500 -B 100 -T 8
​
​
# 4、仅仅导出schema
root@taos-ec1:/dump# ./taosdump -c /dump/cfg -o /dump/data-data0601-0701 -u jason -p abcd -A -S 1559318400000 -E 1561910400000 -t 500 -s -T 8

参数说明

-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:指定导入到一个文件的表的个数。该参数可以控制输出文件的大小。
​
-B:指定一条import语句中包含记录的条数。注意:不要让sql语句超过64k,否则后续导入会出错。该参数为了后续导入时,提高导入速率。
​
-T: 指定导出数据时,启动的线程数。建议设置成机器上core的2倍。
​
-D:指定仅导出dbname1和dbname2的所有数据。
​
-s:仅仅导出所有数据库的schema,即数据库、超级表、普通表,但不导出表中的记录。

参考资料

TAOS SQL - 数据库管理 - 《TDengine v2.0 数据库文档》 - 书栈网 · BookStack

TDengine 数据建模 | TDengine 文档 | 涛思数据 (taosdata.com)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值