shashwatsai opened a new pull request, #7879:
URL: https://github.com/apache/seatunnel/pull/7879

   <!--
   
   Thank you for contributing to SeaTunnel! Please make sure that your code 
changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   ## Contribution Checklist
     - Make sure that the pull request corresponds to a [GITHUB 
issue](https://github.com/apache/seatunnel/issues).
     - Name the pull request in the form "[Feature] [component] Title of the 
pull request", where *Feature* can be replaced by `Hotfix`, `Bug`, etc.
     - Minor fixes should be named following this pattern: `[hotfix] [docs] Fix 
typo in README.md doc`.
   -->
   
   ### Purpose of this pull request
   Currently Seatunnel JDBC Connector with DB2 Dialect, does not support upsert 
scenarios, as the implementation is unavailable. While analysing our 
requirements within Visa's use-cases, we have approximately 60% of jobs that 
heavily depend on this. 
   
   We want to introduce the implementation for upsert support for DB2 dialect, 
along with the e2e Integration test case.
   
   solves: https://github.com/apache/seatunnel/issues/4434, as Dameng DB, 
implementation is already present.
   How do I reopen the issue? 
   
   ### Does this PR introduce _any_ user-facing change?
   No, 
   User does not have to provide the query parameter in sink, user has to 
provide database, table and generate_sink_sql, which are already available in 
the configurations. 
   
   Sample:
   ```
   env {
     parallelism = 1
     job.mode = "BATCH"
   }
   
   source {
     # This is a example source plugin **only for test and demonstrate the 
feature source plugin**
     Jdbc {
       driver = com.ibm.db2.jcc.DB2Driver
       url = "jdbc:db2://db2-e2e:50000/E2E"
       user = "db2inst1"
       password = "123456"
       query = """
       select * from "E2E".SOURCE;
       """
     }
   }
   
   sink {
     Jdbc {
       driver = com.ibm.db2.jcc.DB2Driver
       url = "jdbc:db2://db2-e2e:50000/E2E"
       user = "db2inst1"
       password = "123456"
       database = "E2E"
       table = "SINK"
       # The primary keys of the table, which will be used to generate the 
upsert sql
       generate_sink_sql = true
       primary_keys = [
         C_INT
       ]
     }
   ```
   
   <!--
   Note that it means *any* user-facing change including all aspects such as 
the documentation fix.
   If yes, please clarify the previous behavior and the change this PR proposes 
- provide the console output, description and/or an example to show the 
behavior difference if possible.
   If possible, please also clarify if this is a user-facing change compared to 
the released SeaTunnel versions or within the unreleased branches such as dev.
   If no, write 'No'.
   If you are adding/modifying connector documents, please follow our new 
specifications: https://github.com/apache/seatunnel/issues/4544.
   -->
   
   
   ### How was this patch tested?
   We internally deployed, and tested the scenarios, we need to introduce a 
minor change in Seatunnel-web module as well, to delegate generation of sink 
sql to the engine, as required for the upsert use-case. 
   
   ### Check list
   
   * [ ] If any new Jar binary package adding in your PR, please add License 
Notice according
     [New License 
Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/contribution/new-license.md)
   * [ ] If necessary, please update the documentation to describe the new 
feature. https://github.com/apache/seatunnel/tree/dev/docs
   * [ ] If you are contributing the connector code, please check that the 
following files are updated:
     1. Update 
[plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties)
 and add new connector information in it
     2. Update the pom file of 
[seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml)
     3. Add ci label in 
[label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml)
     4. Add e2e testcase in 
[seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/)
     5. Update connector 
[plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config)
   * [ ] Update the 
[`release-note`](https://github.com/apache/seatunnel/blob/dev/release-note.md).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to