apache / doris-spark-connector

Spark Connector for Apache Doris
https://doris.apache.org/
Apache License 2.0
79 stars 92 forks source link

[refactor](load) Refactor the loader to expand the way data is written #187

Closed gnehil closed 8 months ago

gnehil commented 8 months ago

Proposed changes

Issue Number: close #xxx

Problem Summary:

In order to facilitate the expansion of more writing methods in the future, the writing part has been reconstructed. The main reconstruction contents are as follows:

  1. Loader API The Loader API defines three behaviors:

    • load: write data to doris
    • commit: commit transaction
    • abort: abort transaction
  2. TransactionHandler The TransactionHandler component is used to process all pre-committed transactions after the task or batch ends. When all tasks succeed, all pre-submitted tasks will be submitted; when some tasks fail, all pre-submitted tasks will be rolled back. The execution of transaction commit and rollback depends on the specific implementation of the commit and abort methods implemented by the loader.

Other changes:

  1. update revision to 1.4.0-SNAPSHOT
  2. add isSuccess method for RespContent to check whether the stream load is sucess internally

Checklist(Required)

  1. Does it affect the original behavior: (Yes/No/I Don't know)
  2. Has unit tests been added: (Yes/No/No Need)
  3. Has document been added or modified: (Yes/No/No Need)
  4. Does it need to update dependencies: (Yes/No)
  5. Are there any changes that cannot be rolled back: (Yes/No)

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...