mirror of
https://github.com/alibaba/DataX.git
synced 2025-05-02 10:51:47 +08:00
5.1 KiB
5.1 KiB
DataX IoTDBWriter
1 快速介绍
IoTDBWriter插件实现了写入数据到IoTDB数据库目标表(设备)的功能。
底层实现上,IoTDBWriter通过iotdb.session连接IoTDB,按照IoTDB的SQL语法, 执行session.insertRecordsOfOneDevice语句,将数据写入IoTDB。
IoTDBWriter可以作为数据迁移工具供DBA将其它数据库的数据导入到IoTDB。
2 实现原理
IoTDBWriter 通过 DataX 框架获取 Reader 生成的协议数据Record,通过Session连接IoTDB,执行insert语句,将数据写入IoTDB。
IoTDB中设备与列的概念见IoTDB官方文档。
3 功能说明
3.1 配置样例
配置一个MySQL数据写入IoTDB的作业
使用下面的Job配置,将数据写入IoTDB:
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "toy123",
"column": ["time","A5STD","L2RIS014MD","L2VVP003SM5","D1RIS001MD","D1KRT003EU"],
"splitPk": "",
"connection": [
{
"table": [
"device"
],
"jdbcUrl": [
"jdbc:mysql://localhost:3306/demodb?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=utf-8"
]
}
]
}
},
"writer": {
"name": "iotdbwriter",
"parameter": {
"username": "root",
"password": "root",
"host": "192.168.150.100",
"port": 6667,
"version": "V_1_0",
"##": "Reader中时间列的位置,默认0列",
"timeColumnPosition": 0,
"batchSize": 1000,
"device": "root.cgn.device",
"measurements": ["A5STD","L2RIS014MD","L2VVP003SM5","D1RIS001MD","D1KRT003EU"],
"###": "在插入之前,预先执行的SQL,默认为空",
"preSql": []
}
}
}
],
"setting": {
"speed": {
"channel": 3
}
}
}
}
3.2 参数说明
- username
- 描述:用户名
- 必选:是
- 默认值:无
- password
- 描述:用户名的密码
- 必选:是
- 默认值:无
- host
- 描述:连接iotdb数据库的主机地址
- 必选:是
- 默认值:无
- port
- 描述:端口
- 必选:是
- 默认值:无
- version
- 描述:iotdb版本
- 必选:是
- 默认值:无
- timeColumnPosition
- 描述:时间列在Record中列的位置
- 必选:否
- 默认值:0
- device
- 描述:iotdb中的概念,对应mysql中的表名
- 必选:是
- 默认值:无
- measurements
- 描述:iotdb中的概念,对应mysql中的字段集合,顺序应该与record中column的顺序相同
- 必选:是
- 默认值:无
- batchSize
- 描述:每batchSize条record为一个batch进行写入
- 必选:否
- 默认值:1000
- preSql
- 描述:插入前是否预先执行SQL
- 必选:否
- 默认值:无
3.3 类型转换
datax中的数据类型,映射到IoTDB的数据类型
DataX 内部类型 | IoTDB 数据类型 |
---|---|
INT | INT32 |
LONG | TIMESTAMP, INT64 |
DOUBLE | DOUBLE |
STRING | STRING |
BOOL | BOOL |
DATE | TIMESTAMP,DATE |
BYTES | BINARY |
3.4 各数据源到IoTDB的参考示例
见datax-example/datax-example-iotdb
4 性能报告
4.1 环境准备
4.1.1 数据特征
建表语句:
单行记录类似于:
4.1.2 机器参数
-
执行DataX的机器参数为:
- cpu:
- mem:
- net: 千兆双网卡
- disc: DataX 数据不落磁盘,不统计此项
-
IoTDB数据库机器参数为:
- cpu:
- mem:
- net: 千兆双网卡
- disc:
4.1.3 DataX jvm 参数
-Xms1024m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError
4.2 测试报告
4.2.1 单表测试报告
通道数 | DataX速度(Rec/s) | DataX流量(MB/s) | DataX机器网卡流出流量(MB/s) | DataX机器运行负载 | DB网卡进入流量(MB/s) | DB运行负载 | DB TPS |
---|---|---|---|---|---|---|---|
1 | |||||||
4 | |||||||
8 | |||||||
16 | |||||||
32 |