xxzuo commented on code in PR #6663:
URL: https://github.com/apache/seatunnel/pull/6663#discussion_r1557271892
##########
docs/zh/connector-v2/sink/Jdbc.md:
##########
@@ -0,0 +1,354 @@
+# JDBC
+
+> JDBC 数据接收器
+
+## 描述
+
+通过jdbc写入数据。支持批处理模式和流处理模式,支持并发写入,支持精确一次语义(使用XA事务保证)
+
+## 使用依赖
+
+### 用于Spark/Flink引擎
+
+> 1. 需要确保jdbc驱动jar包已经放在目录`${SEATUNNEL_HOME}/plugins/`下。
+
+### 适用于 SeaTunnel Zeta 引擎
+
+> 1. 需要确保jdbc驱动jar包已经放到`${SEATUNNEL_HOME}/lib/`目录下。
+
+## 主要特性
+
+- [x] [精确一次](../../concept/connector-v2-features.md)
+
+使用 `Xa transactions` 来确保 `exactly-once`。所以仅对于支持 `Xa transactions` 的数据库支持
`exactly-once`
+。您可以设置 `is_exactly_once=true` 来启用它。
+
+- [x] [cdc](../../concept/connector-v2-features.md)
+
+## Options
+
+| 名称 | 类型 | 是否必须 | 默认值
|
+|-------------------------------------------|---------|------|------------------------------|
+| url | String | 是 | -
|
+| driver | String | 是 | -
|
+| user | String | 否 | -
|
+| password | String | 否 | -
|
+| query | String | 否 | -
|
+| compatible_mode | String | 否 | -
|
+| database | String | 否 | -
|
+| table | String | 否 | -
|
+| primary_keys | Array | 否 | -
|
+| support_upsert_by_query_primary_key_exist | Boolean | 否 | false
|
+| connection_check_timeout_sec | Int | 否 | 30
|
+| max_retries | Int | 否 | 0
|
+| batch_size | Int | 否 | 1000
|
+| is_exactly_once | Boolean | 否 | false
|
+| generate_sink_sql | Boolean | 否 | false
|
+| xa_data_source_class_name | String | 否 | -
|
+| max_commit_attempts | Int | 否 | 3
|
+| transaction_timeout_sec | Int | 否 | -1
|
+| auto_commit | Boolean | 否 | true
|
+| field_ide | String | 否 | -
|
+| properties | Map | 否 | -
|
+| common-options | | 否 | -
|
+| schema_save_mode | Enum | 否 |
CREATE_SCHEMA_WHEN_NOT_EXIST |
+| data_save_mode | Enum | 否 | APPEND_DATA
|
+| custom_sql | String | 否 | -
|
+| enable_upsert | Boolean | 否 | true
|
+| use_copy_statement | Boolean | 否 | false
|
+
+### driver [string]
+
+用于连接远程数据源的jdbc类名,如果使用MySQL,则值为`com.mysql.cj.jdbc.Driver`
+
+### user [string]
+
+用户名
+
+### password [string]
+
+密码
+
+### url [string]
+
+JDBC 连接的 URL。参考案例:`jdbc:postgresql://localhost/test`
+
+### query [string]
+
+使用sql将上游输入数据写入数据库。如 `INSERT ...`
+
+### compatible_mode [string]
+
+数据库的兼容模式,当数据库支持多种兼容模式时需要。例如,使用 OceanBase 数据库时,需要将其设置为 'mysql' 或 'oracle' 。
+
+Postgres 9.5及以下版本,请设置为 `postgresLow` 来支持 cdc
+
+### database [string]
+
+使用此 `database` 和 `table-name` 自动生成 SQL,并接收上游输入的数据写入数据库。
+
+此选项与 `query` 选项是互斥的,并且具有更高的优先级。
+
+### table [string]
+
+使用此 `database` 和 `table-name` 自动生成 SQL,并接收上游输入的数据写入数据库。
+
+此选项与 `query` 选项是互斥的,并且具有更高的优先级。
+
+table参数可以填入一个任意的表名,这个名字最终会被用作创建表的表名,并且支持变量(`${table_name}`,`${schema_name}`)。
+替换规则如下:`${schema_name}` 将替换传递给目标端的 SCHEMA 名称,`${table_name}` 将替换传递给目标端的表名。
+
+mysql 接收器示例:
+
+1. test_${schema_name}_${table_name}_test
+2. sink_sinktable
+3. ss_${table_name}
+
+pgsql (Oracle Sqlserver ...) 接收器示例:
+
+1. ${schema_name}.${table_name}_test
+2. dbo.tt_${table_name}_sink
+3. public.sink_table
+
+Tip: 如果目标数据库有 SCHEMA 的概念,则表参数必须写成 `xxx.xxx`
+
+### primary_keys [array]
+
+该选项用于支持自动生成 sql 时的 insert、delete、update 等操作
+
+### support_upsert_by_query_primary_key_exist [boolean]
+
+根据查询主键是否存在选择使用 INSERT sql、UPDATE sql 来处理更新事件(INSERT、UPDATE_AFTER)。仅当数据库不支持
upsert 语法时才使用此配置
+**注意**:该方法性能较低
+
+### connection_check_timeout_sec [int]
+
+用于验证数据库连接的有效性时等待数据库操作完成所需的时间,单位是秒
+
+### max_retries[int]
+
+重试提交失败的次数(executeBatch)
+
+### batch_size[int]
+
+对于批量写入,当缓冲的记录数达到 `batch_size` 数量或者时间达到 `checkpoint.interval` 时,数据将被刷新到数据库中
+
+### is_exactly_once[boolean]
+
+是否启用一次语义,这将使用 XA 事务。如果打开,您需要设置 `xa_data_source_class_name`
+
+### generate_sink_sql[boolean]
+
+根据要写入的数据库表生成sql语句
+
+### xa_data_source_class_name[string]
+
+指数据库驱动的 XA 数据源的类名。以 MySQL 为例,其类名为
com.mysql.cj.jdbc.MysqlXADataSource。了解其他数据库的数据源类名,可以参考文档的附录部分
+
+### max_commit_attempts[int]
+
+事务提交失败的重试次数
+
+### transaction_timeout_sec[int]
+
+在事务开启后的超时时间,默认值为-1(即永不超时)。请注意,设置超时时间可能会影响到精确一次(exactly-once)的语义
+
+### auto_commit [boolean]
+
+默认启用自动事务提交
+
+### field_ide [String]
+
+字段`field_ide`用于标识从源到宿同步时该字段是否需要转换为大写或小写。`ORIGINAL` 表示不需要转换,`UPPERCASE`
+表示转换为大写,`LOWERCASE` 表示转换为小写。
+
+### properties
+
+附加连接配置参数,当属性和URL具有相同参数时,优先级由<br/>
+驱动程序的具体实现确定。例如,在 MySQL 中,属性优先于 URL。
+
+### common options
+
+Sink插件常用参数,请参考 [Sink常用选项](common-options.md) 了解详情
+
+### schema_save_mode [Enum]
+
+在开启同步任务之前,针对目标面现有的表面结构选择不同的处理方案。选项介绍:
Review Comment:
```suggestion
在开启同步任务之前,针对目标端现有的表结构选择不同的处理方案。选项介绍:
```
--
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]