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

fanjia 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 2dd2483d42 [Doc][Improve] support chinese 
[docs/zh/connector-v2/sink/Vertica.md] (#8852)
2dd2483d42 is described below

commit 2dd2483d4260ee26bebca1328a90d0c0e2fdcc1e
Author: Scorpio777888 <[email protected]>
AuthorDate: Thu Feb 27 09:49:56 2025 +0800

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

diff --git a/docs/zh/connector-v2/sink/Vertica.md 
b/docs/zh/connector-v2/sink/Vertica.md
new file mode 100644
index 0000000000..51ff5cced3
--- /dev/null
+++ b/docs/zh/connector-v2/sink/Vertica.md
@@ -0,0 +1,177 @@
+# Vertica
+
+> JDBC Vertica Sink 连接器
+
+## 支持的引擎
+
+> Spark<br/>
+> Flink<br/>
+> SeaTunnel Zeta<br/>
+
+## 描述
+
+通过 JDBC 写入数据。支持批处理和流处理模式,支持并发写入,支持精确一次语义(使用 XA 事务保证)。
+
+## 使用依赖
+
+### 对于 Spark/Flink 引擎
+
+> 1. 需要确保 [jdbc 驱动 jar 
包](https://www.vertica.com/download/vertica/client-drivers/) 已放置在目录 
`${SEATUNNEL_HOME}/plugins/` 中。
+
+### 对于 SeaTunnel Zeta 引擎
+
+> 1. 需要确保 [jdbc 驱动 jar 
包](https://www.vertica.com/download/vertica/client-drivers/) 已放置在目录 
`${SEATUNNEL_HOME}/lib/` 中。
+
+## 主要特性
+
+- [x] [精确一次](../../concept/connector-v2-features.md)
+- [ ] [cdc](../../concept/connector-v2-features.md)
+
+> 使用 `Xa 事务` 来保证 `精确一次`。因此仅支持支持 `Xa 事务` 的数据库。可以通过设置 `is_exactly_once=true` 来启用。
+
+## 支持的数据源信息
+
+| 数据源    | 支持的版本                     | 驱动类名                     | URL 格式       
                      | Maven 依赖                                                
                                   |
+|-----------|--------------------------------|------------------------------|--------------------------------------|---------------------------------------------------------------------------------------------|
+| Vertica   | 不同依赖版本有不同的驱动类名   | com.vertica.jdbc.Driver      | 
jdbc:vertica://localhost:5433/vertica | 
[下载](https://www.vertica.com/download/vertica/client-drivers/)                  
          |
+
+## 数据库依赖
+
+> 请下载支持列表中对应的 'Maven' 依赖,并将其复制到 `$SEATUNNEL_HOME/plugins/jdbc/lib/` 工作目录中。<br/>
+> 例如 Vertica 数据源:`cp vertica-jdbc-xxx.jar $SEATUNNEL_HOME/plugins/jdbc/lib/`
+
+## 数据类型映射
+
+| Vertica 数据类型                                                                 
                    | 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((获取指定列的列大小)+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                                                         
                        | 尚未支持                                                  
                                          |
+
+## 接收器选项
+
+| 名称                              | 类型    | 是否必填 | 默认值  | 描述                   
                                                                                
                                                                                
              |
+|-----------------------------------|---------|----------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| url                               | String  | 是       | -       | JDBC 连接的 
URL。参考示例:`jdbc:vertica://localhost:5433/vertica`                                
                                                                                
                    |
+| driver                            | String  | 是       | -       | 用于连接远程数据源的 
JDBC 类名,如果使用 Vertica,值为 `com.vertica.jdbc.Driver`。                              
                                                                                
     |
+| user                              | String  | 否       | -       | 连接实例的用户名   
                                                                                
                                                                                
                  |
+| password                          | String  | 否       | -       | 连接实例的密码    
                                                                                
                                                                                
                   |
+| query                             | String  | 否       | -       | 使用此 SQL 
将上游输入数据写入数据库。例如 `INSERT ...`,`query` 优先级更高。                                     
                                                                                
    |
+| database                          | String  | 否       | -       | 使用此 
`database` 和 `table-name` 自动生成 SQL 并接收上游输入数据写入数据库。此选项与 `query` 互斥,且优先级更高。       
                                                                            |
+| table                             | String  | 否       | -       | 使用 
`database` 和此 `table-name` 自动生成 SQL 并接收上游输入数据写入数据库。此选项与 `query` 互斥,且优先级更高。      
                                                                             |
+| primary_keys                      | Array    | 否       | -       | 
此选项用于在自动生成 SQL 时支持 `insert`、`delete` 和 `update` 等操作。                            
                                                                                
                  |
+| support_upsert_by_query_primary_key_exist | Boolean  | 否       | false   | 
选择使用 INSERT SQL、UPDATE SQL 来处理更新事件(INSERT, UPDATE_AFTER),基于查询主键是否存在。此配置仅在数据库不支持 
upsert 语法时使用。**注意**:此方法性能较低。                                   |
+| connection_check_timeout_sec      | Int    | 否       | 30      | 
用于验证连接完成的数据库操作的等待时间(秒)。                                                         
                                                                                
              |
+| max_retries                       | Int    | 否       | 0       | 
提交失败(executeBatch)的重试次数。                                                        
                                                                                
                         |
+| batch_size                        | Int    | 否       | 1000    | 
对于批量写入,当缓冲的记录数达到 `batch_size` 或时间达到 `checkpoint.interval` 时,数据将被刷新到数据库中。        
                                                                                
   |
+| is_exactly_once                   | Boolean  | 否       | false   | 
是否启用精确一次语义,将使用 Xa 事务。如果启用,需要设置 `xa_data_source_class_name`。                     
                                                                                
          |
+| generate_sink_sql                 | Boolean  | 否       | false   | 
根据要写入的数据库表生成 SQL 语句。                                                            
                                                                                
                      |
+| xa_data_source_class_name         | String  | 否       | -       | 数据库驱动的 XA 
数据源类名,例如 Vertica 为 `com.vertical.cj.jdbc.VerticalXADataSource`,其他数据源请参考附录。      
                                                                                
|
+| max_commit_attempts               | Int    | 否       | 3       | 
事务提交失败的重试次数。                                                                    
                                                                                
                         |
+| transaction_timeout_sec           | Int    | 否       | -1      | 
事务打开后的超时时间,默认为 -1(永不超时)。注意:设置超时可能会影响精确一次语义。                                     
                                                                             |
+| auto_commit                       | Boolean  | 否       | true    | 
默认启用自动事务提交。                                                                     
                                                                                
                          |
+| properties                        | Map    | 否       | -       | 额外的连接配置参数,当 
properties 和 URL 中有相同的参数时,优先级由驱动的具体实现决定。例如,在 MySQL 中,properties 优先于 URL。        
                                                             |
+| common-options                    |         | 否       | -       | 
接收器插件通用参数,详情请参考 [Sink Common Options](../sink-common-options.md)。               
                                                                                
                     |
+| enable_upsert                     | Boolean  | 否       | true    | 通过主键存在启用 
upsert。如果任务中没有键重复数据,将此参数设置为 `false` 可以加快数据导入速度。                                 
                                                                    |
+
+### 提示
+
+> 如果未设置 `partition_column`,将以单并发运行;如果设置了 `partition_column`,将根据任务的并发度并行执行。
+
+## 任务示例
+
+### 简单示例:
+
+> 此示例定义了一个 SeaTunnel 同步任务,通过 FakeSource 自动生成数据并发送到 JDBC Sink。FakeSource 总共生成 
16 行数据(row.num=16),每行有两个字段,name(字符串类型)和 age(int 类型)。最终目标表 test_table 中也将有 16 
行数据。在运行此任务之前,您需要在 Vertica 中创建数据库 test 和表 test_table。如果您尚未安装和部署 SeaTunnel,请按照 
[安装 SeaTunnel](../../start-v2/locally/deployment.md) 中的说明进行安装和部署。然后按照 [使用 
SeaTunnel Engine 快速开始](../../start-v2/locally/quick-start-seatunnel-engine.md) 
中的说明运行此任务。
+
+```
+# 定义运行时环境
+env {
+  parallelism = 1
+  job.mode = "BATCH"
+}
+
+source {
+  # 这是一个示例源插件,**仅用于测试和演示功能**
+  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:vertica://localhost:5433/vertica"
+        driver = "com.vertica.jdbc.Driver"
+        user = "root"
+        password = "123456"
+        query = "insert into test_table(name,age) values(?,?)"
+    }
+  # 如果想了解更多关于如何配置 SeaTunnel 的信息,并查看完整的接收器插件列表,
+  # 请访问 https://seatunnel.apache.org/docs/connector-v2/sink
+}
+```
+
+### 生成接收器 SQL
+
+> 此示例不需要编写复杂的 SQL 语句,您可以通过配置数据库名称和表名称自动生成插入语句。
+
+```
+sink {
+    jdbc {
+        url = "jdbc:vertica://localhost:5433/vertica"
+        driver = "com.vertica.jdbc.Driver"
+        user = "root"
+        password = "123456"
+        # 根据数据库表名自动生成 SQL 语句
+        generate_sink_sql = true
+        database = test
+        table = test_table
+    }
+}
+```
+
+### 精确一次:
+
+> 对于精确写入场景,我们保证精确一次语义。
+
+```
+sink {
+    jdbc {
+        url = "jdbc:vertica://localhost:5433/vertica"
+        driver = "com.vertica.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.vertical.cj.jdbc.VerticalXADataSource"
+    }
+}
+```

Reply via email to