Flink Connector 导入常见问题
使用事务接口的 exactly-once 时,导入失败
问题描述:
com.starrocks.data.load.stream.exception.StreamLoadFailException: {
"TxnId": 33823381,
"Label": "502c2770-cd48-423d-b6b7-9d8f9a59e41a",
"Status": "Fail",
"Message": "timeout by txn manager",--具体报错信息
"NumberTotalRows": 1637,
"NumberLoadedRows": 1637,
"NumberFilteredRows": 0,
"NumberUnselectedRows": 0,
"LoadBytes": 4284214,
"LoadTimeMs": 120294,
"BeginTxnTimeMs": 0,
"StreamLoadPlanTimeMs": 7,
"ReadDataTimeMs": 9,
"WriteDataTimeMs": 120278,
"CommitAndPublishTimeMs": 0
}
原因分析:
sink.properties.timeout小于Flink checkpoint interval,导致事务超时。
解决方案:
需要将timeout调整大于checkpoint interval
flink-connector-jdbc_2.11sink到StarRocks时间落后8小时
问题描述:
Flink中localtimestap函数生成的时间,在Flink中时间正常,sink到StarRocks后发现时间落后8小时。已确认Flink所在服务器与StarRocks所在服务器时区均为Asia/ShangHai东八区。Flink版本为1.12,驱动为flink-connector-jdbc_2.11,需要如何处理?
解决方案:
可以在Flink sink表中配置时区参数'server-time-zone' = 'Asia/Shanghai',或同时在jdbc url里添加&serverTimezone=Asia/Shanghai。示例如下:
CREATE TABLE sk (
sid int,
local_dtm TIMESTAMP,
curr_dtm TIMESTAMP
)
WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.110.66:9030/sys_device?characterEncoding=utf-8&serverTimezone=Asia/Shanghai',
'table-name' = 'sink',
'driver' = 'com.mysql.jdbc.Driver',
'username' = 'sr',
'password' = 'sr123',
'server-time-zone' = 'Asia/Shanghai'
);