项目场景:
实时平台设计方案将最终目的数据库更换为StarRocks,使用后的感受简直就是更快更高更强,但在开发使用过程中也遇到了一些小问题(以下问题均出现在Flink写入StarRocks架构中).
问题描述及解决方案
1.flink实时写入到StarRocks,依赖引入出错
问题场景:最开始在pom.xml文件中引入的是DorisDB相关的依赖,任务能正常提交到yarn,但报的是写入doris失败的错误,错误如下:
问题解决:
引入StarRocks相关的依赖,并将flink-connector-starrocks所带的部分依赖去掉,否则任务提交失败(我的是这样,视情况而定),依赖如下:
<repositories>
<repository>
<id>starrocks-maven-releases</id>
<url>http://starrocksvisitor:starrocksvisitor134@nexus.starrocks.com/repository/maven-releases/</url>
</repository>
<repository>
<id>starrocks-maven-snapshots</id>
<url>http://starrocksvisitor:starrocksvisitor134@nexus.starrocks.com/repository/maven-snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.starrocks</groupId>
<artifactId>flink-connector-starrocks</artifactId>
<version>1.1.1_flink-1.11_${scala.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner-blink_2.11</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-java-bridge_2.11</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-common</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-scala-bridge_2.11</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_2.11</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
2.日志报错too many filtered rows
由于插入的数据中某个字段值为null,而插入表中不能为null,报错如下:
问题解决:
3.写入失败
Unable to flush data to StarRocks: unknown result status, usually caused by: 1. authorization or permission related problems. 2. Wrong column_separator or row_delimiter. 3. Column count exceeded the limitation.
问题解决
所使用的用户没有写权限,root用户登录客户端,用GRANT语法授予该用户对库表的相关权限
4.starocks版本升级依赖更换
说明:starrocks从1.18.4升级到2.1.4,flink一直是1.13版本
依赖jar包1.1.1_flink-1.11更换为1.2.1_flink-1.13_2.11,jar包排除见上方
记得点赞收藏奥,后续遇到问题会实时更新,关注不迷路~