This is an automated email from the ASF dual-hosted git repository.

wanghailin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 10e363610f [Doc][Improve] support chinese 
[docs/zh/connector-v2/sink/Mysql.md] (#8818)
10e363610f is described below

commit 10e363610f2e71f40d67e7c7d776fda8cca74e98
Author: Gemini147258 <[email protected]>
AuthorDate: Wed Feb 26 23:22:16 2025 +0800

    [Doc][Improve] support chinese [docs/zh/connector-v2/sink/Mysql.md] (#8818)
    
    Co-authored-by: David Zollo <[email protected]>
---
 docs/zh/connector-v2/sink/Mysql.md | 211 +++++++++++++++++++++++++++++++++++++
 1 file changed, 211 insertions(+)

diff --git a/docs/zh/connector-v2/sink/Mysql.md 
b/docs/zh/connector-v2/sink/Mysql.md
new file mode 100644
index 0000000000..6368f493c4
--- /dev/null
+++ b/docs/zh/connector-v2/sink/Mysql.md
@@ -0,0 +1,211 @@
+# MySQL
+
+> JDBC Mysql Sink 连接器
+  
+## 支持的Mysql版本
+
+- 5.5/5.6/5.7/8.0/8.1/8.2/8.3/8.4
+
+## 引擎支持
+
+> Spark<br/>
+> Flink<br/>
+> SeaTunnel Zeta<br/>
+
+## 描述
+
+通过jdbc写入数据。支持批处理模式和流模式,支持并发写入,支持exactly-once精确一次
+语义(使用XA事务保证)。
+
+## 需要的依赖项
+
+### 对于 Spark/Flink 引擎
+
+> 1. 您需要确保 [jdbc 驱动程序 jar 
包](https://mvnrepository.com/artifact/mysql/mysql-connector-java) 已放置在目录 
`${SEATUNNEL_HOME}/plugins/` 中。
+
+### 对于 SeaTunnel Zeta 引擎
+
+> 1. 您需要确保 [jdbc 驱动程序 jar 
包](https://mvnrepository.com/artifact/mysql/mysql-connector-java) 已放置在目录 
`${SEATUNNEL_HOME}/lib/` 中。
+
+## 主要功能
+
+- [x] [精确一次](../../concept/connector-v2-features.md)
+- [x] [cdc](../../concept/connector-v2-features.md)
+
+>使用“Xa事务”来确保“精确一次”。因此,数据库只支持“精确一次”,即
+>支持“Xa事务”。您可以设置`is_exactly_once=true `来启用它。
+
+## 支持的数据源信息
+
+| 数据源 |                    支持的版本                   |          驱动器          |   
               网址                  | Maven下载链接                                  
                         |
+|-----|---------------------------------------------------------|--------------------------|---------------------------------------|---------------------------------------------------------------------|
+| Mysql | 不同的依赖版本具有不同的驱动程序类。 | com.mysql.cj.jdbc.Driver | 
jdbc:mysql://localhost:3306:3306/test | 
[下载](https://mvnrepository.com/artifact/mysql/mysql-connector-java) |
+
+
+## 数据类型映射
+
+|                                                          Mysql 数据类型          
                                                |                               
                                  SeaTunnel 数据类型                                
                                 |
+|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
+| BIT(1)<br/>INT UNSIGNED                                                      
                                                     | BOOLEAN                  
                                                                                
                                           |
+| TINYINT<br/>TINYINT UNSIGNED<br/>SMALLINT<br/>SMALLINT 
UNSIGNED<br/>MEDIUMINT<br/>MEDIUMINT UNSIGNED<br/>INT<br/>INTEGER<br/>YEAR | 
INT                                                                             
                                                                    |
+| INT UNSIGNED<br/>INTEGER UNSIGNED<br/>BIGINT                                 
                                                     | BIGINT                   
                                                                                
                                           |
+| BIGINT UNSIGNED                                                              
                                                     | DECIMAL(20,0)            
                                                                                
                                           |
+| DECIMAL(x,y)(获取指定列的列大小<38)                                                   
            | DECIMAL(x,y)                                                      
                                                                                
  |
+| DECIMAL(x,y)(获取指定列的列大小>38)                                                   
            | DECIMAL(38,18)                                                    
                                                                                
  |
+| DECIMAL UNSIGNED                                                             
                                                     | 
DECIMAL((DECIMAL((获取指定列的列大小)+1,<br/>(获取指定列的小数点右侧的位数))) |
+| FLOAT<br/>FLOAT UNSIGNED                                                     
                                                     | FLOAT                    
                                                                                
                                           |
+| DOUBLE<br/>DOUBLE UNSIGNED                                                   
                                                     | DOUBLE                   
                                                                                
                                           |
+| CHAR<br/>VARCHAR<br/>TINYTEXT<br/>MEDIUMTEXT<br/>TEXT<br/>LONGTEXT<br/>JSON  
                                                     | STRING                   
                                                                                
                                           |
+| DATE                                                                         
                                                     | DATE                     
                                                                                
                                           |
+| TIME                                                                         
                                                     | TIME                     
                                                                                
                                           |
+| DATETIME<br/>TIMESTAMP                                                       
                                                     | TIMESTAMP                
                                                                                
                                           |
+| 
TINYBLOB<br/>MEDIUMBLOB<br/>BLOB<br/>LONGBLOB<br/>BINARY<br/>VARBINAR<br/>BIT(n)
                                                  | BYTES                       
                                                                                
                                        |
+| GEOMETRY<br/>UNKNOWN                                                         
                                                     | Not supported yet        
                                                                                
                                           |
+
+## Sink 参数
+
+|                   名称                    |  类型   | 是否必填 |           默认值       
     |                                                                          
                                        描述                                      
                                                                             |
+|-------------------------------------------|---------|----------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| url                                       | String  | 是      | -             
               | JDBC 连接的 URL。参见示例: 
<br/>`jdbc:mysql://localhost:3306:3306/test`。                                   
                                                                                
                                      |
+| driver                                    | String  | 是      | -             
               | 用于连接远程数据源的 JDBC 类名,<br/>如果使用 MySQL,值为 
`com.mysql.cj.jdbc.Driver`。                                                     
                                                             |
+| user                                      | String  | 否       | -            
                | 连接实例用户名。                                                      
                                                                                
                                                                            |
+| password                                  | String  | 否       | -            
                | 连接实例密码。                                                       
                                                                                
                                                                            |
+| query                                     | String  | 否       | -            
                | 使用此sql将上游输入数据写入数据库。例如: `INSERT ...`,`query` 具有更高的优先级          
                                                                                
                                               |
+| database                                  | String  | 否       | -            
                | 使用此 `database` 和 `table-name` 
自动生成sql并接收上游输入数据写入数据库。<br/>此选项与`query` 互斥,具有更高的优先级                              
                         |
+| table                                     | String  | 否       | -            
                | 使用数据库和此表名自动生成sql并接收上游输入数据写入数据库。<br/>此选项与`query` 互斥,具有更高的优先级   
                                                        |
+| primary_keys                              | Array   | 否       | -            
                | 此选项用于支持以下操作,例如 `insert`, `delete`, 和 `update` 当自动生成sql.       
                                                                                
                                     |
+| support_upsert_by_query_primary_key_exist | Boolean | 否       | false        
                | 选择使用INSERT sql、UPDATE 
sql根据查询主键是否存在来处理更新事件(INSERT、UPDATE_AFTER)。此配置仅在数据库不支持升级语法时使用**注**:此方法性能低   |
+| connection_check_timeout_sec              | Int     | 否       | 30           
                | 等待用于验证连接的数据库操作完成的时间(秒)。                                       
                                                                                
                     |
+| max_retries                               | Int     | 否       | 0            
                | 提交失败的重试次数(executeBatch)                                       
                                                                                
                                                                   |
+| batch_size                                | Int     | 否       | 1000         
                | 
对于批量写入,当缓冲记录的数量达到“batch_size”的数量或时间达到“checkpoint.interval”<br/>时,数据将被刷新到数据库中    
                                                       |
+| is_exactly_once                           | Boolean | 否       | false        
                | 
是否启用精确一次语义,这将使用Xa事务。如果启用,则需要<br/>设置`xa_data_source_class_name`。                 
                                                                                
             |
+| generate_sink_sql                         | Boolean | 否       | false        
                | 根据要写入的数据库表生成sql语句                                             
                                                                                
                                          |
+| xa_data_source_class_name                 | String  | 否       | -            
                | 
数据库Driver的xa数据源类名,例如mysql是`com.mysql.cj.jdbc。MysqlXADataSource,和<br/>请参阅附录了解其他数据源
                                                                     |
+| max_commit_attempts                       | Int     | 否       | 3            
                | 事务提交失败的重试次数                                                   
                                                                                
                                                       |
+| transaction_timeout_sec                   | Int     | 否       | -1           
                | 事务打开后的超时,默认值为-1(永不超时)。请注意,设置超时可能会影响<br/>精确一次语义                
                                                                            |
+| auto_commit                               | Boolean | 否       | true         
                | 默认情况下启用自动事务提交                                                 
                                                                                
                                                            |
+| field_ide                                 | String  | 否       | -            
                | 
确定从源同步到汇时是否需要转换字段`ORIGINAL表示不需要转换`大写`表示转换为大写`LOWERCASE表示转换为小写。     |
+| properties                                | Map     | 否       | -            
                | 其他连接配置参数,当属性和URL具有相同的参数时,优先级由驱动程序的特定实现决定。例如,在MySQL中,属性优先于URL。 
|
+| common-options                            |         | 否       | -            
                | Sink插件常用参数,请参考 [Sink Common 
Options](../sink-common-options.md) 详见                                          
                                                                                
          |
+| schema_save_mode                          | Enum    | 否       | 
CREATE_SCHEMA_WHEN_NOT_EXIST | 在启动同步任务之前,对目标侧的现有表面结构选择不同的处理方案。                  
                                                                                
    |
+| data_save_mode                            | Enum    | 否       | APPEND_DATA  
                | 在启动同步任务之前,对目标端的现有数据选择不同的处理方案。                                 
                                                                                
|
+| custom_sql                                | String  | 否       | -            
                | 
当data_save_mode选择CUSTOM_PROCESSING时,您应该填写CUSTOM_SQL参数。此参数通常填充可以执行的SQL。SQL将在同步任务之前执行。
                                     |
+| enable_upsert                             | Boolean | 否       | true         
                | 通过primary_keys存在启用upstart,如果任务只有“插入”,将此参数设置为“false”可以加快数据导入   
                                                                                
                              |
+
+### 提示
+
+>如果未设置partition_column,它将以单并发运行,如果设置了partition_coolumn,它将根据任务的并发性并行执行。
+
+## 任务示例
+
+### 简单的例子:
+
+>此示例定义了一个SeaTunnel同步任务,该任务通过FakeSource自动生成数据并将其发送到JDBC 
Sink。FakeSource总共生成16行数据(row.num=16),每行有两个字段,name(字符串类型)和age(int类型)。最终的目标表是test_table,表中也将有16行数据。在运行此作业之前,您需要在mysql中创建数据库测试表test_table。如果您尚未安装和部署SeaTunnel,则需要按照[安装SeaTunnel](../../start-v2/local/deployment.md)中的说明安装和部署SeaTunnel。然后按照[快速启动SeaTunnel引擎](../../Start-v2/locale/Quick-Start
 SeaTunnel Engine.md)中的说明运行此作业。
+
+```
+# 定义运行时环境
+env {
+  parallelism = 1
+  job.mode = "BATCH"
+}
+
+source {
+  # This is a example source plugin **only for test and demonstrate the 
feature source plugin**
+  FakeSource {
+    parallelism = 1
+    plugin_output = "fake"
+    row.num = 16
+    schema = {
+      fields {
+        name = "string"
+        age = "int"
+      }
+    }
+  }
+       #如果你想了解更多关于如何配置seatunnel的信息,并查看完整的源插件列表,
+       #请前往https://seatunnel.apache.org/docs/connector-v2/source
+}
+
+transform {
+       #如果你想了解更多关于如何配置seatunnel的信息,并查看转换插件的完整列表,
+       #请前往https://seatunnel.apache.org/docs/transform-v2
+}
+
+sink {
+    jdbc {
+        url = 
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true"
+        driver = "com.mysql.cj.jdbc.Driver"
+        user = "root"
+        password = "123456"
+        query = "insert into test_table(name,age) values(?,?)"
+        }
+       #如果你想了解更多关于如何配置seatunnel的信息,并查看完整的sink插件列表,
+       #请前往https://seatunnel.apache.org/docs/connector-v2/sink
+}
+```
+
+### 生成Sink SQL
+
+>此示例不需要编写复杂的sql语句,您可以配置数据库名称表名以自动为您生成add语句
+
+```
+sink {
+    jdbc {
+        url = 
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true"
+        driver = "com.mysql.cj.jdbc.Driver"
+        user = "root"
+        password = "123456"
+        # Automatically generate sql statements based on database table names
+        generate_sink_sql = true
+        database = test
+        table = test_table
+    }
+}
+```
+
+### 精确一次:
+
+为了准确的书写场景,我们保证精确一次
+
+```
+sink {
+    jdbc {
+        url = 
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true"
+        driver = "com.mysql.cj.jdbc.Driver"
+    
+        max_retries = 0
+        user = "root"
+        password = "123456"
+        query = "insert into test_table(name,age) values(?,?)"
+    
+        is_exactly_once = "true"
+    
+        xa_data_source_class_name = "com.mysql.cj.jdbc.MysqlXADataSource"
+    }
+}
+```
+
+### CDC(变更数据捕获)事件
+
+>我们也支持CDC变更数据。在这种情况下,您需要配置数据库、表和主键。
+
+```
+sink {
+    jdbc {
+        url = 
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true"
+        driver = "com.mysql.cj.jdbc.Driver"
+        user = "root"
+        password = "123456"
+        
+        generate_sink_sql = true
+        # You need to configure both database and table
+        database = test
+        table = sink_table
+        primary_keys = ["id","name"]
+        field_ide = UPPERCASE
+        schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
+        data_save_mode="APPEND_DATA"
+    }
+}
+```
+

Reply via email to