tispark icon indicating copy to clipboard operation
tispark copied to clipboard

[Proposal] Tispark support insert using SQL

Open TrafalgarRicardoLu opened this issue 2 years ago • 0 comments

Problem:

TiSpark only support write data using datasource api. Users can‘t write data by insert SQL statement.

Goals

TiSpark supports write data using insert SQL statement with following goals:

  • Support with Spark 3.x
  • Use friendly with spark SQL

API

spark.sql("insert into tidb_catalog.db.table values(x, x,...)(y, y...)..")

Solutions

The model of Spark datasource V2 is not suitable for TiSpark currently. So we are going to use V1 write in V2 interface.

Implement

  • Add new capability to TiDBTable
  • Implement V1 Write in V2 interface
  • Fix type convert
  • Adapt to different spark versions

Design

https://github.com/pingcap/tispark/pull/2464

Implementation

https://github.com/pingcap/tispark/pull/2471/

Test

https://github.com/pingcap/tispark/pull/2471/

Doc

https://github.com/pingcap/tispark/pull/2471/

TrafalgarRicardoLu avatar Jul 20 '22 06:07 TrafalgarRicardoLu