StarRocksWriter 插件实现了写入数据到 StarRocks 主库的目的表的功能。在底层实现上, StarRocksWriter 通过Streamload以csv格式导入数据至StarRocks。
StarRocksWriter 通过Streamload以csv格式导入数据至StarRocks, 内部将reader
读取的数据进行缓存后批量导入至StarRocks,以提高写入性能。
- 这里使用一份从内存Mysql读取数据后导入至StarRocks。
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0,
"percentage": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "xxxx",
"password": "xxxx",
"column": [ "k1", "k2", "v1", "v2" ],
"connection": [
{
"table": [ "table1", "table2" ],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/datax_test1"
]
},
{
"table": [ "table3", "table4" ],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/datax_test2"
]
}
]
}
},
"writer": {
"name": "starrockswriter",
"parameter": {
"username": "xxxx",
"password": "xxxx",
"column": ["k1", "k2", "v1", "v2"],
"preSql": [],
"postSql": [],
"connection": [
{
"table": ["xxx"],
"jdbcUrl": "jdbc:mysql://172.28.17.100:9030/",
"selectedDatabase": "xxxx"
}
],
"loadUrl": ["172.28.17.100:8030", "172.28.17.100:8030"],
"loadProps": {}
}
}
}
]
}
}
-
username
-
描述:StarRocks数据库的用户名
-
必选:是
-
默认值:无
-
-
password
-
描述:StarRocks数据库的密码
-
必选:是
-
默认值:无
-
-
selectedDatabase
-
描述:StarRocks表的数据库名称。
-
必选:是
-
默认值:无
-
-
table
-
描述:StarRocks表的表名称。
-
必选:是
-
默认值:无
-
-
loadUrl
-
描述:StarRocks FE的地址用于Streamload,可以为多个fe地址,
fe_ip:fe_http_port
。 -
必选:是
-
默认值:无
-
-
column
-
描述:目的表需要写入数据的字段,字段之间用英文逗号分隔。例如: "column": ["id","name","age"]。
**column配置项必须指定,不能留空!** 注意:我们强烈不推荐你这样配置,因为当你目的表字段个数、类型等有改动时,你的任务可能运行不正确或者失败
-
必选:是
-
默认值:否
-
-
preSql
-
描述:写入数据到目的表前,会先执行这里的标准语句。
-
必选:否
-
默认值:无
-
-
postSql
-
描述:写入数据到目的表后,会执行这里的标准语句。
-
必选:否
-
默认值:无
-
-
jdbcUrl
-
描述:目的数据库的 JDBC 连接信息,用于执行
preSql
及postSql
。 -
必选:否
-
默认值:无
-
-
maxBatchRows
-
描述:单次StreamLoad导入的最大行数
-
必选:否
-
默认值:500000 (50W)
-
-
maxBatchSize
-
描述:单次StreamLoad导入的最大字节数。
-
必选:否
-
默认值:104857600 (100M)
-
-
flushInterval
-
描述:上一次StreamLoad结束至下一次开始的时间间隔(单位:ms)。
-
必选:否
-
默认值:300000 (ms)
-
-
loadProps
-
描述:StreamLoad 的请求参数,详情参照StreamLoad介绍页面。
-
必选:否
-
默认值:无
-
默认传入的数据均会被转为字符串,并以\t
作为列分隔符,\n
作为行分隔符,组成csv
文件进行StreamLoad导入操作。
如需更改列分隔符, 则正确配置 loadProps
即可:
"loadProps": {
"column_separator": "\\x01",
"row_delimiter": "\\x02"
}
如需更改导入格式为json
, 则正确配置 loadProps
即可:
"loadProps": {
"format": "json",
"strip_outer_array": true
}