简体中文| English
TDengineWriter插件实现了写入数据到TDengine数据库目标表的功能。底层实现上,TDengineWriter通过JDBC连接TDengine,按照TDengine的SQL语法,执行insert语句/schemaless语句,将数据写入TDengine。
TDengineWriter可以作为数据迁移工具供DBA将其它数据库的数据导入到TDengine。
TDengineWriter 通过 DataX 框架获取 Reader生成的协议数据,通过JDBC Driver连接TDengine,执行insert语句/schemaless语句,将数据写入TDengine。
在TDengine中,table可以分成超级表、子表、普通表三种类型,超级表和子表包括colum和tag,子表的tag列的值为固定值,普通表与关系型数据库中表的概念一致。(详细请参考:数据模型 )
TDengineWriter支持向超级表、子表、普通表中写入数据,按照table的类型和column参数中是否包含tbname,使用以下方法进行写入:
配置一个写入TDengine的作业 先在TDengine上创建超级表:
create database if not exists test;
create table test.weather (ts timestamp, temperature int, humidity double) tags(is_normal bool, device_id binary(100), address nchar(100));
使用下面的Job配置,将数据写入TDengine:
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column": [
{
"type": "string",
"value": "tb1"
},
{
"type": "date",
"value": "2022-02-20 12:00:01"
},
{
"type": "long",
"random": "0, 10"
},
{
"type": "double",
"random": "0, 10"
},
{
"type": "bool",
"random": "0, 50"
},
{
"type": "bytes",
"value": "abcABC123"
},
{
"type": "string",
"value": "北京朝阳望京"
}
],
"sliceRecordCount": 1
}
},
"writer": {
"name": "tdenginewriter",
"parameter": {
"username": "root",
"password": "taosdata",
"column": [
"tbname",
"ts",
"temperature",
"humidity",
"is_normal",
"device_id",
"address"
],
"connection": [
{
"table": [
"weather"
],
"jdbcUrl": "jdbc:TAOS-RS://192.168.56.105:6041/test"
}
],
"batchSize": 100,
"ignoreTagsUnmatched": true
}
}
}
],
"setting": {
"speed": {
"channel": 1
}
}
}
}
datax中的数据类型,可以映射到TDengine的数据类型
DataX 内部类型 | TDengine 数据类型 |
---|---|
INT | TINYINT, SMALLINT, INT |
LONG | TIMESTAMP, TINYINT, SMALLINT, INT, BIGINT |
DOUBLE | FLOAT, DOUBLE |
STRING | TIMESTAMP, BINARY, NCHAR |
BOOL | BOOL |
DATE | TIMESTAMP |
BYTES | BINARY |
下面是一些数据源到TDengine进行数据迁移的示例
数据迁移示例 | 配置的示例 |
---|---|
TDengine到TDengine | 超级表到超级表,指定tbname |
TDengine到TDengine | 超级表到超级表,不指定tbname |
TDengine到TDengine | 超级表到子表 |
TDengine到TDengine | 普通表到普通表 |
RDBMS到TDengine | 普通表到超级表,指定tbname |
RDBMS到TDengine | 普通表到超级表,不指定tbname |
RDBMS到TDengine | 普通表到子表 |
RDBMS到TDengine | 普通表到普通表 |
OpenTSDB到TDengine | metric到普通表 |
建表语句:
单行记录类似于:
执行DataX的机器参数为:
TDengine数据库机器参数为:
-Xms1024m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError
通道数 | DataX速度(Rec/s) | DataX流量(MB/s) | DataX机器网卡流出流量(MB/s) | DataX机器运行负载 | DB网卡进入流量(MB/s) | DB运行负载 | DB TPS |
---|---|---|---|---|---|---|---|
1 | |||||||
4 | |||||||
8 | |||||||
16 | |||||||
32 |
说明:
是的,TDengineWriter按照column中字段的顺序解析来自datax的数据。