【详述】我有一张starrocks大宽表,400多列,发现用flink写入这张表会报错
Caused by: java.io.IOException: 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.
但是我把列删减到360列左右的时候,又可以插入成功,请问flink写入starrocks对最大列数有限制吗?
【背景】flink写入starrocks大宽表
【业务影响】
【StarRocks版本】例如:2.2.0
【集群规模】例如:3fe(2 follower)+19be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:16C/64G/万兆
【附件】
有没有人帮忙解答一下?
请问下数据源和starrocks中的列是不匹配的?400列需要全部指定?
稀疏数据,有些列会是空的,我是指定了列来插入数据的
怀疑是列多的时候,超过了http协议header的长度限制。请问下数据源是哪里的呢?
从kafka消费出来的,是json格式,然后解析出来对应到这个大宽表中
请问这个超过http协议header的长度限制可以配置的吗?还是说固定死的?
这是http协议的限制。
如果是采用定义 TableSchema的方式也是受http协议的限制吗?
StarRocksSink.sink(
// the table structure
TableSchema.builder()
.field("score", DataTypes.INT())
.field("name", DataTypes.VARCHAR(20))
.build(),
// the sink options
StarRocksSinkOptions.builder()
.withProperty("jdbc-url", "jdbc:mysql://fe1_ip:query_port,fe2_ip:query_port,fe3_ip:query_port?xxxxx")
.withProperty("load-url", "fe1_ip:http_port;fe2_ip:http_port;fe3_ip:http_port")
.withProperty("username", "xxx")
.withProperty("password", "xxx")
.withProperty("table-name", "xxx")
.withProperty("database-name", "xxx")
.withProperty("sink.properties.column_separator", "\\x01")
.withProperty("sink.properties.row_delimiter", "\\x02")
.build(),
// set the slots with streamRowData
(slots, streamRowData) -> {
slots[0] = streamRowData.score;
slots[1] = streamRowData.name;
}
)
这个底层走的都是http协议,也是会受http协议的限制

