通过Flink DataStream写入数据,自增主键ID如何处理?

请问如果是SR表格设置了自增列作为主键ID的话,如何通过 Flink DataStream 写入数据呢?该主键没有赋值 ,则会报NULL value in auto increment column 'FID 这个错误,FID是自增ID

TableSchema schema = TableSchema.builder()
.field(“FTime”, DataTypes.STRING().notNull())
.field(“FID”, DataTypes.BIGINT().notNull())
.field(“FUserID”, DataTypes.STRING().notNull())
.primaryKey(“FTime”,“FID”).build();

@Override
public void accept(Object[] internalRow, RowData rowData) {
internalRow[0] = rowData.time;
internalRow[2] = rowData.userID;
internalRow[internalRow.length - 1] = StarRocksSinkOP.UPSERT.ordinal();
}

表格如下:
CREATE TABLE t_xxx (
FTime DATETIME NOT NULL DEFAULT ‘1970-01-01 08:00:01’,
FID BIGINT NOT NULL AUTO_INCREMENT,
FUserID VARCHAR(128) NOT NULL DEFAULT ‘’ ,
) ENGINE=OLAP
PRIMARY KEY (FTime,FID)
PARTITION BY RANGE(FTime) (
PARTITION p202412 VALUES LESS THAN (“2025-01-01”)
)
DISTRIBUTED BY HASH(FID)
PROPERTIES (
“dynamic_partition.enable” = “true”,
“dynamic_partition.time_unit” = “MONTH”,
“dynamic_partition.end” = “3”,
“dynamic_partition.prefix” = “p”,
“dynamic_partition.buckets” = “32”,
“dynamic_partition.history_partition_num” = “0”,
“replication_num” = “3”
)

TableSchema不定义FID的话也不行,启动都启动不了 Primary keys of the flink TableSchema do not match with the ones from starrocks table.

改starrocks connector的源码,把主键检验去掉,目前看connector的实现是把starrocks表的所有字段取出,然后获取主键字段与Flink table schema字段做了检验,你可以试试把这段校验屏蔽掉,当然这只是一种猜想,没有实践过