TiSpark SQL 写入 TiDB 支持 Update 吗

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.6
【TiSpark 版本】3.3_2.12-3.2.3

TiSpark 从 3.1.x 版本开始支持通过 Spark SQL 写入数据到 TiKV,包括 Insert 和 Delete 操作

可以使用 Spark SQL 删除 TiKV 数据的语法如下:
spark.sql(“use tidb_catalog”)
spark.sql(“delete from ${database}.${table} where xxx”)

写入和删除我都测试了是可以的,有办法可以在写入的时候如果唯一键重复就更新吗?或者类似 insert overwrite partition 的方式


我看到有 replace 这个配置,但是我不知道应该在哪里指定这个配置

标准的SQL肯定是不支持的

我在执行 sql 之前加了 set replace=true; 可以做到主键相同就更新了,但是有了新的问题,如果有字段是 datetime 类型,就会报错

Caused by: org.tikv.common.exception.ConvertNotSupportException: do not support converting from java.time.Instant to  com.pingcap.tikv.types.DateTimeType
        at com.pingcap.tikv.types.AbstractDateTimeType.convertToMysqlDateTime(AbstractDateTimeType.java:134)
        at com.pingcap.tikv.types.DateTimeType.doConvertToTiDBType(DateTimeType.java:53)
        at com.pingcap.tikv.types.DataType.convertToTiDBType(DataType.java:399)
        at com.pingcap.tispark.utils.WriteUtil$.$anonfun$sparkRow2TiKVRow$2(WriteUtil.scala:64)

我看这个最近刚支持了 https://github.com/pingcap/tispark/pull/2780
大佬,最近有发版计划吗 @kevinsna