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

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


The following commit(s) were added to refs/heads/dev by this push:
     new 768a9300e [Improve][JDBC] improve jdbc sink option (#3864)
768a9300e is described below

commit 768a9300e8f6f01e4e04a27f684ce6ca15265639
Author: Eric <[email protected]>
AuthorDate: Fri Jan 6 11:01:16 2023 +0800

    [Improve][JDBC] improve jdbc sink option (#3864)
    
    * improve jdbc sink option
    
    * improve option default get
---
 docs/en/connector-v2/sink/Jdbc.md                  |  2 +-
 .../seatunnel/jdbc/config/JdbcConfig.java          | 11 ++++-----
 .../internal/options/JdbcConnectionOptions.java    | 27 ++++++++--------------
 3 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/docs/en/connector-v2/sink/Jdbc.md 
b/docs/en/connector-v2/sink/Jdbc.md
index ec31ce87d..c01b173b2 100644
--- a/docs/en/connector-v2/sink/Jdbc.md
+++ b/docs/en/connector-v2/sink/Jdbc.md
@@ -38,7 +38,7 @@ support `Xa transactions`. You can set `is_exactly_once=true` 
to enable it.
 | support_upsert_by_query_primary_key_exist | Boolean | No       | false       
  |
 | connection_check_timeout_sec              | Int     | No       | 30          
  |
 | max_retries                               | Int     | No       | 3           
  |
-| batch_size                                | Int     | No       | 300         
  |
+| batch_size                                | Int     | No       | 1000        
  |
 | batch_interval_ms                         | Int     | No       | 1000        
  |
 | is_exactly_once                           | Boolean | No       | false       
  |
 | xa_data_source_class_name                 | String  | No       | -           
  |
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcConfig.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcConfig.java
index b1d395abb..72efa6fc8 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcConfig.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcConfig.java
@@ -26,6 +26,7 @@ import org.apache.seatunnel.shade.com.typesafe.config.Config;
 import java.io.Serializable;
 import java.util.List;
 
+@SuppressWarnings("checkstyle:MagicNumber")
 public class JdbcConfig implements Serializable {
     private static final int DEFAULT_CONNECTION_CHECK_TIMEOUT_SEC = 30;
     private static final boolean DEFAULT_AUTO_COMMIT = true;
@@ -46,22 +47,20 @@ public class JdbcConfig implements Serializable {
 
     public static final Option<Boolean> AUTO_COMMIT = 
Options.key("auto_commit").booleanType().defaultValue(DEFAULT_AUTO_COMMIT).withDescription("auto
 commit");
 
-    public static final Option<Integer> BATCH_SIZE = 
Options.key("batch_size").intType().noDefaultValue().withDescription("batch 
size");
+    public static final Option<Integer> BATCH_SIZE = 
Options.key("batch_size").intType().defaultValue(1000).withDescription("batch 
size");
 
     public static final Option<Integer> FETCH_SIZE = 
Options.key("fetch_size").intType().defaultValue(0).withDescription("For 
queries that return a large number of objects, " +
         "you can configure the row fetch size used in the query to improve 
performance by reducing the number database hits required to satisfy the 
selection criteria. Zero means use jdbc default value.");
 
-    public static final Option<Integer> BATCH_INTERVAL_MS = 
Options.key("batch_interval_ms").intType().noDefaultValue().withDescription("batch
 interval milliSecond");
-
+    public static final Option<Integer> BATCH_INTERVAL_MS = 
Options.key("batch_interval_ms").intType().defaultValue(1000).withDescription("batch
 interval milliSecond");
 
     public static final Option<Boolean> IS_EXACTLY_ONCE = 
Options.key("is_exactly_once").booleanType().defaultValue(true).withDescription("exactly
 once");
 
     public static final Option<String> XA_DATA_SOURCE_CLASS_NAME = 
Options.key("xa_data_source_class_name").stringType().noDefaultValue().withDescription("data
 source class name");
 
+    public static final Option<Integer> MAX_COMMIT_ATTEMPTS = 
Options.key("max_commit_attempts").intType().defaultValue(3).withDescription("max
 commit attempts");
 
-    public static final Option<String> MAX_COMMIT_ATTEMPTS = 
Options.key("max_commit_attempts").stringType().noDefaultValue().withDescription("max
 commit attempts");
-
-    public static final Option<String> TRANSACTION_TIMEOUT_SEC = 
Options.key("transaction_timeout_sec").stringType().noDefaultValue().withDescription("transaction
 timeout (second)");
+    public static final Option<Integer> TRANSACTION_TIMEOUT_SEC = 
Options.key("transaction_timeout_sec").intType().defaultValue(-1).withDescription("transaction
 timeout (second)");
 
     public static final Option<String> TABLE = 
Options.key("table").stringType().noDefaultValue().withDescription("table");
 
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/options/JdbcConnectionOptions.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/options/JdbcConnectionOptions.java
index c10cbf96e..540f54ec9 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/options/JdbcConnectionOptions.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/options/JdbcConnectionOptions.java
@@ -26,31 +26,24 @@ public class JdbcConnectionOptions
     implements Serializable {
     private static final long serialVersionUID = 1L;
 
-
-    private static final int DEFAULT_MAX_RETRIES = 3;
-    private static final int DEFAULT_BATCH_SIZE = 300;
-    private static final int DEFAULT_BATCH_INTERVAL_MS = 1000;
-    private static final int DEFAULT_MAX_COMMIT_ATTEMPTS = 3;
-    private static final int DEFAULT_TRANSACTION_TIMEOUT_SEC = -1;
-
     public String url;
     public String driverName;
     public int connectionCheckTimeoutSeconds = 
JdbcConfig.CONNECTION_CHECK_TIMEOUT_SEC.defaultValue();
-    public int maxRetries = DEFAULT_MAX_RETRIES;
+    public int maxRetries = JdbcConfig.MAX_RETRIES.defaultValue();
     public String username;
     public String password;
     public String query;
 
     public boolean autoCommit = JdbcConfig.AUTO_COMMIT.defaultValue();
 
-    public int batchSize = DEFAULT_BATCH_SIZE;
-    public int batchIntervalMs = DEFAULT_BATCH_INTERVAL_MS;
+    public int batchSize = JdbcConfig.BATCH_SIZE.defaultValue();
+    public int batchIntervalMs = JdbcConfig.BATCH_INTERVAL_MS.defaultValue();
 
     public String xaDataSourceClassName;
 
-    public int maxCommitAttempts = DEFAULT_MAX_COMMIT_ATTEMPTS;
+    public int maxCommitAttempts = 
JdbcConfig.MAX_COMMIT_ATTEMPTS.defaultValue();
 
-    public int transactionTimeoutSec = DEFAULT_TRANSACTION_TIMEOUT_SEC;
+    public int transactionTimeoutSec = 
JdbcConfig.TRANSACTION_TIMEOUT_SEC.defaultValue();
 
     public JdbcConnectionOptions() {
     }
@@ -111,16 +104,16 @@ public class JdbcConnectionOptions
         private String url;
         private String driverName;
         private int connectionCheckTimeoutSeconds = 
JdbcConfig.CONNECTION_CHECK_TIMEOUT_SEC.defaultValue();
-        private int maxRetries = DEFAULT_MAX_RETRIES;
+        private int maxRetries = JdbcConfig.MAX_RETRIES.defaultValue();
         private String username;
         private String password;
         private String query;
         private boolean autoCommit = JdbcConfig.AUTO_COMMIT.defaultValue();
-        private int batchSize = DEFAULT_BATCH_SIZE;
-        private int batchIntervalMs = DEFAULT_BATCH_INTERVAL_MS;
+        private int batchSize = JdbcConfig.BATCH_SIZE.defaultValue();
+        private int batchIntervalMs = 
JdbcConfig.BATCH_INTERVAL_MS.defaultValue();
         private String xaDataSourceClassName;
-        private int maxCommitAttempts = DEFAULT_MAX_COMMIT_ATTEMPTS;
-        private int transactionTimeoutSec = DEFAULT_TRANSACTION_TIMEOUT_SEC;
+        private int maxCommitAttempts = 
JdbcConfig.MAX_COMMIT_ATTEMPTS.defaultValue();
+        private int transactionTimeoutSec = 
JdbcConfig.TRANSACTION_TIMEOUT_SEC.defaultValue();
 
         private JdbcConnectionOptionsBuilder() {
         }

Reply via email to