Skip to content

Commit ced5a45

Browse files
authored
Merge pull request alibaba#1490 from dingxiaobo/starrocks_plugin
Merge StarRocks plugin
2 parents 2151860 + b49ceb1 commit ced5a45

20 files changed

+1538
-2
lines changed

package.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,13 @@
231231
</includes>
232232
<outputDirectory>datax</outputDirectory>
233233
</fileSet>
234+
<fileSet>
235+
<directory>starrockswriter/target/datax/</directory>
236+
<includes>
237+
<include>**/*.*</include>
238+
</includes>
239+
<outputDirectory>datax</outputDirectory>
240+
</fileSet>
234241
<fileSet>
235242
<directory>drdswriter/target/datax/</directory>
236243
<includes>

pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,14 @@
8080

8181
<!-- writer -->
8282
<module>mysqlwriter</module>
83+
<module>starrockswriter</module>
8384
<module>drdswriter</module>
8485
<module>oraclewriter</module>
8586
<module>sqlserverwriter</module>
8687
<module>postgresqlwriter</module>
8788
<module>kingbaseeswriter</module>
8889
<module>adswriter</module>
8990
<module>oceanbasev10writer</module>
90-
<module>cassandrawriter</module>
91-
<module>clickhousewriter</module>
9291
<module>adbpgwriter</module>
9392
<module>hologresjdbcwriter</module>
9493
<module>rdbmswriter</module>
@@ -114,6 +113,8 @@
114113
<module>tsdbwriter</module>
115114
<module>gdbwriter</module>
116115
<module>oscarwriter</module>
116+
<module>cassandrawriter</module>
117+
<module>clickhousewriter</module>
117118

118119
<!-- common support module -->
119120
<module>plugin-rdbms-util</module>
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
# DataX StarRocksWriter
2+
3+
4+
---
5+
6+
7+
## 1 快速介绍
8+
9+
StarRocksWriter 插件实现了写入数据到 StarRocks 主库的目的表的功能。在底层实现上, StarRocksWriter 通过Streamload以csv格式导入数据至StarRocks。
10+
11+
12+
## 2 实现原理
13+
14+
StarRocksWriter 通过Streamload以csv格式导入数据至StarRocks, 内部将`reader`读取的数据进行缓存后批量导入至StarRocks,以提高写入性能。
15+
16+
17+
## 3 功能说明
18+
19+
### 3.1 配置样例
20+
21+
* 这里使用一份从内存Mysql读取数据后导入至StarRocks。
22+
23+
```json
24+
{
25+
"job": {
26+
"setting": {
27+
"speed": {
28+
"channel": 1
29+
},
30+
"errorLimit": {
31+
"record": 0,
32+
"percentage": 0
33+
}
34+
},
35+
"content": [
36+
{
37+
"reader": {
38+
"name": "mysqlreader",
39+
"parameter": {
40+
"username": "xxxx",
41+
"password": "xxxx",
42+
"column": [ "k1", "k2", "v1", "v2" ],
43+
"connection": [
44+
{
45+
"table": [ "table1", "table2" ],
46+
"jdbcUrl": [
47+
"jdbc:mysql://127.0.0.1:3306/datax_test1"
48+
]
49+
},
50+
{
51+
"table": [ "table3", "table4" ],
52+
"jdbcUrl": [
53+
"jdbc:mysql://127.0.0.1:3306/datax_test2"
54+
]
55+
}
56+
]
57+
}
58+
},
59+
"writer": {
60+
"name": "starrockswriter",
61+
"parameter": {
62+
"username": "xxxx",
63+
"password": "xxxx",
64+
"database": "xxxx",
65+
"table": "xxxx",
66+
"column": ["k1", "k2", "v1", "v2"],
67+
"preSql": [],
68+
"postSql": [],
69+
"jdbcUrl": "jdbc:mysql://172.28.17.100:9030/",
70+
"loadUrl": ["172.28.17.100:8030", "172.28.17.100:8030"],
71+
"loadProps": {}
72+
}
73+
}
74+
}
75+
]
76+
}
77+
}
78+
79+
```
80+
81+
82+
### 3.2 参数说明
83+
84+
* **username**
85+
86+
* 描述:StarRocks数据库的用户名 <br />
87+
88+
* 必选:是 <br />
89+
90+
* 默认值:无 <br />
91+
92+
* **password**
93+
94+
* 描述:StarRocks数据库的密码 <br />
95+
96+
* 必选:是 <br />
97+
98+
* 默认值:无 <br />
99+
100+
* **database**
101+
102+
* 描述:StarRocks表的数据库名称。
103+
104+
* 必选:是 <br />
105+
106+
* 默认值:无 <br />
107+
108+
* **table**
109+
110+
* 描述:StarRocks表的表名称。
111+
112+
* 必选:是 <br />
113+
114+
* 默认值:无 <br />
115+
116+
* **loadUrl**
117+
118+
* 描述:StarRocks FE的地址用于Streamload,可以为多个fe地址,`fe_ip:fe_http_port`。
119+
120+
* 必选:是 <br />
121+
122+
* 默认值:无 <br />
123+
124+
* **column**
125+
126+
* 描述:目的表需要写入数据的字段,字段之间用英文逗号分隔。例如: "column": ["id","name","age"]。
127+
128+
**column配置项必须指定,不能留空!**
129+
130+
注意:我们强烈不推荐你这样配置,因为当你目的表字段个数、类型等有改动时,你的任务可能运行不正确或者失败
131+
132+
* 必选:是 <br />
133+
134+
* 默认值:否 <br />
135+
136+
* **preSql**
137+
138+
* 描述:写入数据到目的表前,会先执行这里的标准语句。 <br />
139+
140+
* 必选:否 <br />
141+
142+
* 默认值:无 <br />
143+
144+
* **postSql**
145+
146+
* 描述:写入数据到目的表后,会执行这里的标准语句。 <br />
147+
148+
* 必选:否 <br />
149+
150+
* 默认值:无 <br />
151+
152+
* **jdbcUrl**
153+
154+
* 描述:目的数据库的 JDBC 连接信息,用于执行`preSql`及`postSql`。 <br />
155+
156+
* 必选:否 <br />
157+
158+
* 默认值:无 <br />
159+
160+
* **maxBatchRows**
161+
162+
* 描述:单次StreamLoad导入的最大行数 <br />
163+
164+
* 必选:否 <br />
165+
166+
* 默认值:500000 (50W) <br />
167+
168+
* **maxBatchSize**
169+
170+
* 描述:单次StreamLoad导入的最大字节数。 <br />
171+
172+
* 必选:否 <br />
173+
174+
* 默认值:104857600 (100M)
175+
176+
* **flushInterval**
177+
178+
* 描述:上一次StreamLoad结束至下一次开始的时间间隔(单位:ms)。 <br />
179+
180+
* 必选:否 <br />
181+
182+
* 默认值:300000 (ms)
183+
184+
* **loadProps**
185+
186+
* 描述:StreamLoad 的请求参数,详情参照StreamLoad介绍页面。 <br />
187+
188+
* 必选:否 <br />
189+
190+
* 默认值:无 <br />
191+
192+
193+
### 3.3 类型转换
194+
195+
默认传入的数据均会被转为字符串,并以`\t`作为列分隔符,`\n`作为行分隔符,组成`csv`文件进行StreamLoad导入操作。
196+
如需更改列分隔符, 则正确配置 `loadProps` 即可:
197+
```json
198+
"loadProps": {
199+
"column_separator": "\\x01",
200+
"row_delimiter": "\\x02"
201+
}
202+
```
203+
204+
如需更改导入格式为`json`, 则正确配置 `loadProps` 即可:
205+
```json
206+
"loadProps": {
207+
"format": "json",
208+
"strip_outer_array": true
209+
}
210+
```
211+
212+
## 4 性能报告
213+
214+
215+
## 5 约束限制
216+
217+
218+
## FAQ

0 commit comments

Comments
 (0)