TiSpark通过datasource api写入,报错org.tikv.shade.io.grpc.StatusRuntimeException: UNIMPLEMENTED

反馈一下,报错原因是写入的表建立了TiFlash副本。

TiSpark datasource api写入用到了client-java的org.tikv.txn.TwoPhaseCommitter
其中doPrewriteSecondaryKeysInBatchesWithRetry方法,也就是secondary key prewrite环节会根据写入的key按region进行分组,
分组的数据写入到对应region的每一个store中,
由于配置了TiFlash副本,会出现往TiFlash的store写入,而TiFlash是不支持prewrite的,所以grpc请求报错为org.tikv.shade.io.grpc.StatusRuntimeException: UNIMPLEMENTED

验证如下

解决方案是判断store.isTiFlash()则跳过写入。