mirror of
https://github.com/alibaba/DataX.git
synced 2025-05-02 18:30:06 +08:00
212 lines
5.8 KiB
Markdown
212 lines
5.8 KiB
Markdown
# DataX IoTDBReader
|
||
|
||
## 1 快速介绍
|
||
|
||
IoTDBReader 插件实现了 IoTDB 读取数据的功能。
|
||
|
||
## 2 实现原理
|
||
|
||
IoTDBReader 通过 IoTDB 的 原生java session 查询获取数据。
|
||
|
||
## 3 功能说明
|
||
|
||
### 3.1 配置样例
|
||
|
||
* 配置一个从 IoTDB 抽取数据作业:
|
||
|
||
```json
|
||
{
|
||
"job": {
|
||
"setting": {
|
||
"speed": {
|
||
"channel": 3
|
||
}
|
||
},
|
||
"content": [
|
||
{
|
||
"reader": {
|
||
"name": "iotdbreader",
|
||
"parameter": {
|
||
"username": "root",
|
||
"password": "root",
|
||
"host": "192.168.150.100",
|
||
"port": 6667,
|
||
"fetchSize": 10000,
|
||
"version": "V_1_0",
|
||
"##": "时间列插入DataX的Record中的位置,默认第0列",
|
||
"timeColumnPosition": 0,
|
||
"##":"写了querySqls 默认下面全部参数失效,适合开发人员, 多个session并行执行多条SQL语句",
|
||
"querySqls":[
|
||
],
|
||
"device": "root.cgn.device",
|
||
"##":"时间列不属于测点",
|
||
"measurements": ["A5STD","L2RIS014MD","L2VVP003SM5","D1RIS001MD","D1KRT003EU"],
|
||
"where": "time > 2023-03-07 12:00:00 and time < 2024-03-07 19:00:00"
|
||
}
|
||
},
|
||
"writer": {
|
||
"name": "mysqlwriter",
|
||
"parameter": {
|
||
"username": "root",
|
||
"password": "toy123",
|
||
"writeMode": "insert",
|
||
"#需要提前建表": "CREATE TABLE device (`time` DATETIME,`A5STD` DOUBLE,`L2RIS014MD` DOUBLE,`L2VVP003SM5` BOOLEAN,`D1RIS001MD` DOUBLE,`D1KRT003EU` DOUBLE);",
|
||
"column": ["time","A5STD","L2RIS014MD","L2VVP003SM5","D1RIS001MD","D1KRT003EU"],
|
||
"session": [
|
||
"set session sql_mode='ANSI'"
|
||
],
|
||
"preSql": [
|
||
"delete from device"
|
||
],
|
||
"connection": [
|
||
{
|
||
"table": [
|
||
"device"
|
||
],
|
||
"#": "下面的URL需要把中括号去掉,否则报错,mysqlreader的bug,未修改",
|
||
"jdbcUrl": "jdbc:mysql://localhost:3306/demodb?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=utf-8"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
* 配置一个自定义 SQL 的数据抽取作业:
|
||
|
||
```json
|
||
{
|
||
"job": {
|
||
"setting": {
|
||
"speed": {
|
||
"channel": 3
|
||
}
|
||
},
|
||
"content": [
|
||
{
|
||
"reader": {
|
||
"name": "iotdbreader",
|
||
"parameter": {
|
||
"username": "root",
|
||
"password": "root",
|
||
"host": "192.168.150.100",
|
||
"port": 6667,
|
||
"fetchSize": 10000,
|
||
"version": "V_1_0",
|
||
"timeColumnPosition": 0,
|
||
"##":"写了querySqls 默认下面全部参数失效,适合开发人员, 多个session并行执行多条SQL语句",
|
||
"querySqls":[
|
||
"select * from root.cgn.device",
|
||
"select A5STD,L2RIS014MD,L2VVP003SM5,D1RIS001MD,D1KRT003EU from root.cgn.device"
|
||
],
|
||
"device": "",
|
||
"measurements": "",
|
||
"where": ""
|
||
}
|
||
},
|
||
"writer": {
|
||
"name": "txtfilewriter",
|
||
"parameter": {
|
||
"path": "D:/下载",
|
||
"fileName": "txtText",
|
||
"writeMode": "truncate",
|
||
"dateFormat": "yyyy-MM-dd"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.2 参数说明
|
||
* username
|
||
* 描述:用户名
|
||
* 必选:是
|
||
* 默认值:无
|
||
* password
|
||
* 描述:用户名的密码
|
||
* 必选:是
|
||
* 默认值:无
|
||
* host
|
||
* 描述:连接iotdb数据库的主机地址
|
||
* 必选:是
|
||
* 默认值:无
|
||
* port
|
||
* 描述:端口
|
||
* 必选:是
|
||
* 默认值:无
|
||
* version
|
||
* 描述:iotdb版本
|
||
* 必选:是
|
||
* 默认值:无
|
||
* timeColumnPosition
|
||
* 描述:时间列在Record中列的位置
|
||
* 必选:否
|
||
* 默认值:0
|
||
* querySqls
|
||
* 描述:直接写多行SQL,可以并行读取,此时下面的参数失效。
|
||
* 必选:否
|
||
* 默认值:
|
||
* device
|
||
* 描述:IoTDB中的概念,可理解为mysql中的表。
|
||
* 必选:querySqls为空时必选
|
||
* 默认值:无
|
||
* measurements
|
||
* 描述:IoTDB中的概念,可理解为mysql中的字段。
|
||
* 必选:querySqls为空时必选
|
||
* 默认值:无
|
||
* where
|
||
* 描述:查询条件
|
||
* 必选:否
|
||
* 默认值:无
|
||
|
||
### 3.3 类型转换
|
||
|
||
| IoTDB 数据类型 | DataX 内部类型 |
|
||
|-----------------|--------|
|
||
| INT32 | Int |
|
||
| INT64,TIMESTAMP | Long |
|
||
| FLOAT | FLOAT |
|
||
| DOUBLE | Double |
|
||
| BOOLEAN | Bool |
|
||
| DATE | Date |
|
||
| STRING,TEXT | String |
|
||
|
||
## 4 性能报告
|
||
|
||
### 4.1 环境准备
|
||
|
||
#### 4.1.1 数据特征
|
||
|
||
#### 4.1.2 机器参数
|
||
|
||
#### 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| | | | | | | |
|
||
|
||
说明:
|
||
|
||
#### 4.2.4 性能测试小结
|
||
|
||
1.
|
||
2.
|
||
|
||
## 5 约束限制
|
||
|
||
## FAQ |