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 d247fe1d8d [improve][Connector-V2] delete jdbc param
support_upsert_by_query_primary_key_exist (#9408)
d247fe1d8d is described below
commit d247fe1d8de13b657cd54db0ababa090a680b6a2
Author: 老王 <[email protected]>
AuthorDate: Tue Jun 10 10:52:40 2025 +0800
[improve][Connector-V2] delete jdbc param
support_upsert_by_query_primary_key_exist (#9408)
---
docs/en/connector-v2/sink/DB2.md | 1 -
docs/en/connector-v2/sink/Jdbc.md | 7 -------
docs/en/connector-v2/sink/Kingbase.md | 1 -
docs/en/connector-v2/sink/Mysql.md | 1 -
docs/en/connector-v2/sink/OceanBase.md | 1 -
docs/en/connector-v2/sink/Oracle.md | 1 -
docs/en/connector-v2/sink/PostgreSql.md | 1 -
docs/en/connector-v2/sink/Snowflake.md | 1 -
docs/en/connector-v2/sink/SqlServer.md | 1 -
docs/en/connector-v2/sink/Vertica.md | 1 -
docs/zh/connector-v2/sink/DB2.md | 1 -
docs/zh/connector-v2/sink/Jdbc.md | 8 --------
docs/zh/connector-v2/sink/Mysql.md | 1 -
docs/zh/connector-v2/sink/OceanBase.md | 1 -
docs/zh/connector-v2/sink/Oracle.md | 1 -
docs/zh/connector-v2/sink/PostgreSql.md | 1 -
docs/zh/connector-v2/sink/Snowflake.md | 1 -
docs/zh/connector-v2/sink/SqlServer.md | 1 -
docs/zh/connector-v2/sink/Vertica.md | 1 -
.../seatunnel/connectors/seatunnel/jdbc/config/JdbcOptions.java | 6 ------
.../seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkFactory.java | 2 --
.../src/test/resources/http_streaming_json_to_postgresql.conf | 1 -
22 files changed, 41 deletions(-)
diff --git a/docs/en/connector-v2/sink/DB2.md b/docs/en/connector-v2/sink/DB2.md
index 72dfd08519..b88b7203cc 100644
--- a/docs/en/connector-v2/sink/DB2.md
+++ b/docs/en/connector-v2/sink/DB2.md
@@ -69,7 +69,6 @@ semantics (using XA transaction guarantee).
| database | String | No | - |
Use this `database` and `table-name` auto-generate sql and receive upstream
input datas write to database.<br/>This option is mutually exclusive with
`query` and has a higher priority.
|
| table | String | No | - |
Use database and this table-name auto-generate sql and receive upstream input
datas write to database.<br/>This option is mutually exclusive with `query` and
has a higher priority.
|
| primary_keys | Array | No | - |
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupport upsert syntax. **Note**: that this method has low
performance |
| connection_check_timeout_sec | Int | No | 30 |
The time in seconds to wait for the database operation used to validate the
connection to complete.
|
| max_retries | Int | No | 0 |
The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000 |
For batch writing, when the number of buffered records reaches the number of
`batch_size` or the time reaches `checkpoint.interval`<br/>, the data will be
flushed into the database
|
diff --git a/docs/en/connector-v2/sink/Jdbc.md
b/docs/en/connector-v2/sink/Jdbc.md
index 539a3e3fd4..b407752b0c 100644
--- a/docs/en/connector-v2/sink/Jdbc.md
+++ b/docs/en/connector-v2/sink/Jdbc.md
@@ -43,7 +43,6 @@ support `Xa transactions`. You can set `is_exactly_once=true`
to enable it.
| database | String | No | -
|
| table | String | No | -
|
| primary_keys | Array | No | -
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false
|
| connection_check_timeout_sec | Int | No | 30
|
| max_retries | Int | No | 0
|
| batch_size | Int | No | 1000
|
@@ -140,11 +139,6 @@ Tip: If the target database has the concept of SCHEMA, the
table parameter must
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
-### support_upsert_by_query_primary_key_exist [boolean]
-
-Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupported upsert syntax.
-**Note**: that this method has low performance
-
### connection_check_timeout_sec [int]
The time in seconds to wait for the database operation used to validate the
connection to complete.
@@ -363,7 +357,6 @@ sink {
compatible_mode="postgresLow"
database = "sink_database"
table = "sink_table"
- support_upsert_by_query_primary_key_exist = true
generate_sink_sql = true
primary_keys = ["key1", "key2", ...]
}
diff --git a/docs/en/connector-v2/sink/Kingbase.md
b/docs/en/connector-v2/sink/Kingbase.md
index 5f0f3bc541..abac4d9c1c 100644
--- a/docs/en/connector-v2/sink/Kingbase.md
+++ b/docs/en/connector-v2/sink/Kingbase.md
@@ -65,7 +65,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| database | String | No | - |
Use this `database` and `table-name` auto-generate sql and receive upstream
input datas write to database.<br/>This option is mutually exclusive with
`query` and has a higher priority.
|
| table | String | No | - |
Use database and this table-name auto-generate sql and receive upstream input
datas write to database.<br/>This option is mutually exclusive with `query` and
has a higher priority. |
| primary_keys | Array | No | - |
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupport upsert syntax. **Note**: that this method has low
performance |
| connection_check_timeout_sec | Int | No | 30 |
The time in seconds to wait for the database operation used to validate the
connection to complete.
|
| max_retries | Int | No | 0 |
The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000 |
For batch writing, when the number of buffered records reaches the number of
`batch_size` or the time reaches `checkpoint.interval`<br/>, the data will be
flushed into the database
|
diff --git a/docs/en/connector-v2/sink/Mysql.md
b/docs/en/connector-v2/sink/Mysql.md
index af7e6b3e29..cb71572c9e 100644
--- a/docs/en/connector-v2/sink/Mysql.md
+++ b/docs/en/connector-v2/sink/Mysql.md
@@ -75,7 +75,6 @@ semantics (using XA transaction guarantee).
| database | String | No | -
| Use this `database` and `table-name` auto-generate sql and
receive upstream input datas write to database.<br/>This option is mutually
exclusive with `query` and has a higher priority.
|
| table | String | No | -
| Use database and this table-name auto-generate sql and
receive upstream input datas write to database.<br/>This option is mutually
exclusive with `query` and has a higher priority.
|
| primary_keys | Array | No | -
| This option is used to support operations such as `insert`,
`delete`, and `update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false
| Choose to use INSERT sql, UPDATE sql to process update
events(INSERT, UPDATE_AFTER) based on query primary key exists. This
configuration is only used when database unsupport upsert syntax. **Note**:
that this method has low performance |
| connection_check_timeout_sec | Int | No | 30
| The time in seconds to wait for the database operation used
to validate the connection to complete.
|
| max_retries | Int | No | 0
| The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000
| For batch writing, when the number of buffered records
reaches the number of `batch_size` or the time reaches
`checkpoint.interval`<br/>, the data will be flushed into the database
|
diff --git a/docs/en/connector-v2/sink/OceanBase.md
b/docs/en/connector-v2/sink/OceanBase.md
index 7313e29064..34e64a5878 100644
--- a/docs/en/connector-v2/sink/OceanBase.md
+++ b/docs/en/connector-v2/sink/OceanBase.md
@@ -80,7 +80,6 @@ Write data through jdbc. Support Batch mode and Streaming
mode, support concurre
| database | String | No | - |
Use this `database` and `table-name` auto-generate sql and receive upstream
input datas write to database.<br/>This option is mutually exclusive with
`query` and has a higher priority.
|
| table | String | No | - |
Use database and this table-name auto-generate sql and receive upstream input
datas write to database.<br/>This option is mutually exclusive with `query` and
has a higher priority.
|
| primary_keys | Array | No | - |
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupport upsert syntax. **Note**: that this method has low
performance |
| connection_check_timeout_sec | Int | No | 30 |
The time in seconds to wait for the database operation used to validate the
connection to complete.
|
| max_retries | Int | No | 0 |
The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000 |
For batch writing, when the number of buffered records reaches the number of
`batch_size` or the time reaches `checkpoint.interval`<br/>, the data will be
flushed into the database
|
diff --git a/docs/en/connector-v2/sink/Oracle.md
b/docs/en/connector-v2/sink/Oracle.md
index 60dcda9a93..d6d0a5c18b 100644
--- a/docs/en/connector-v2/sink/Oracle.md
+++ b/docs/en/connector-v2/sink/Oracle.md
@@ -74,7 +74,6 @@ semantics (using XA transaction guarantee).
| database | String | No | -
| Use this `database` and `table-name` auto-generate sql and
receive upstream input datas write to database.<br/>This option is mutually
exclusive with `query` and has a higher priority.
|
| table | String | No | -
| Use database and this table-name auto-generate sql and
receive upstream input datas write to database.<br/>This option is mutually
exclusive with `query` and has a higher priority.
|
| primary_keys | Array | No | -
| This option is used to support operations such as `insert`,
`delete`, and `update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false
| Choose to use INSERT sql, UPDATE sql to process update
events(INSERT, UPDATE_AFTER) based on query primary key exists. This
configuration is only used when database unsupport upsert syntax. **Note**:
that this method has low performance |
| connection_check_timeout_sec | Int | No | 30
| The time in seconds to wait for the database operation used
to validate the connection to complete.
|
| max_retries | Int | No | 0
| The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000
| For batch writing, when the number of buffered records
reaches the number of `batch_size` or the time reaches
`batch_interval_ms`<br/>, the data will be flushed into the database
|
diff --git a/docs/en/connector-v2/sink/PostgreSql.md
b/docs/en/connector-v2/sink/PostgreSql.md
index 0e69d3df28..86ff196c23 100644
--- a/docs/en/connector-v2/sink/PostgreSql.md
+++ b/docs/en/connector-v2/sink/PostgreSql.md
@@ -83,7 +83,6 @@ semantics (using XA transaction guarantee).
| database | String | No | -
| Use this `database` and `table-name` auto-generate sql and
receive upstream input datas write to database.<br/>This option is mutually
exclusive with `query` and has a higher priority.
[...]
| table | String | No | -
| Use database and this table-name auto-generate sql and
receive upstream input datas write to database.<br/>This option is mutually
exclusive with `query` and has a higher priority.The table parameter can fill
in the name of an unwilling table, which will eventually be used as the table
name of the creation table, and supports variables (`${table_name}`,
`${schema_name}`). Replacement rules: [...]
| primary_keys | Array | No | -
| This option is used to support operations such as `insert`,
`delete`, and `update` when automatically generate sql.
[...]
-| support_upsert_by_query_primary_key_exist | Boolean | No | false
| Choose to use INSERT sql, UPDATE sql to process update
events(INSERT, UPDATE_AFTER) based on query primary key exists. This
configuration is only used when database unsupport upsert syntax. **Note**:
that this method has low performance
[...]
| connection_check_timeout_sec | Int | No | 30
| The time in seconds to wait for the database operation used
to validate the connection to complete.
[...]
| max_retries | Int | No | 0
| The number of retries to submit failed (executeBatch)
[...]
| batch_size | Int | No | 1000
| For batch writing, when the number of buffered records
reaches the number of `batch_size` or the time reaches
`checkpoint.interval`<br/>, the data will be flushed into the database
[...]
diff --git a/docs/en/connector-v2/sink/Snowflake.md
b/docs/en/connector-v2/sink/Snowflake.md
index 5139d36cc3..e493eaf89b 100644
--- a/docs/en/connector-v2/sink/Snowflake.md
+++ b/docs/en/connector-v2/sink/Snowflake.md
@@ -60,7 +60,6 @@ Write data through jdbc. Support Batch mode and Streaming
mode, support concurre
| database | String | No | - |
Use this `database` and `table-name` auto-generate sql and receive upstream
input datas write to database.<br/>This option is mutually exclusive with
`query` and has a higher priority.
|
| table | String | No | - |
Use database and this table-name auto-generate sql and receive upstream input
datas write to database.<br/>This option is mutually exclusive with `query` and
has a higher priority.
|
| primary_keys | Array | No | - |
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupport upsert syntax. **Note**: that this method has low
performance |
| connection_check_timeout_sec | Int | No | 30 |
The time in seconds to wait for the database operation used to validate the
connection to complete.
|
| max_retries | Int | No | 0 |
The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000 |
For batch writing, when the number of buffered records reaches the number of
`batch_size` or the time reaches `checkpoint.interval`<br/>, the data will be
flushed into the database
|
diff --git a/docs/en/connector-v2/sink/SqlServer.md
b/docs/en/connector-v2/sink/SqlServer.md
index 888c50dab7..18300f6fa4 100644
--- a/docs/en/connector-v2/sink/SqlServer.md
+++ b/docs/en/connector-v2/sink/SqlServer.md
@@ -77,7 +77,6 @@ semantics (using XA transaction guarantee).
| database | String | No | - |
Use this `database` and `table-name` auto-generate sql and receive upstream
input datas write to database.<br/>This option is mutually exclusive with
`query` and has a higher priority.
|
| table | String | No | - |
Use database and this table-name auto-generate sql and receive upstream input
datas write to database.<br/>This option is mutually exclusive with `query` and
has a higher priority. |
| primary_keys | Array | No | - |
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupport upsert syntax. **Note**: that this method has low
performance |
| connection_check_timeout_sec | Int | No | 30 |
The time in seconds to wait for the database operation used to validate the
connection to complete.
|
| max_retries | Int | No | 0 |
The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000 |
For batch writing, when the number of buffered records reaches the number of
`batch_size` or the time reaches `checkpoint.interval`<br/>, the data will be
flushed into the database
|
diff --git a/docs/en/connector-v2/sink/Vertica.md
b/docs/en/connector-v2/sink/Vertica.md
index a88b314cf7..5c27528f91 100644
--- a/docs/en/connector-v2/sink/Vertica.md
+++ b/docs/en/connector-v2/sink/Vertica.md
@@ -76,7 +76,6 @@ semantics (using XA transaction guarantee).
| database | String | No | - |
Use this `database` and `table-name` auto-generate sql and receive upstream
input datas write to database.<br/>This option is mutually exclusive with
`query` and has a higher priority.
|
| table | String | No | - |
Use database and this table-name auto-generate sql and receive upstream input
datas write to database.<br/>This option is mutually exclusive with `query` and
has a higher priority.
|
| primary_keys | Array | No | - |
This option is used to support operations such as `insert`, `delete`, and
`update` when automatically generate sql.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
Choose to use INSERT sql, UPDATE sql to process update events(INSERT,
UPDATE_AFTER) based on query primary key exists. This configuration is only
used when database unsupport upsert syntax. **Note**: that this method has low
performance |
| connection_check_timeout_sec | Int | No | 30 |
The time in seconds to wait for the database operation used to validate the
connection to complete.
|
| max_retries | Int | No | 0 |
The number of retries to submit failed (executeBatch)
|
| batch_size | Int | No | 1000 |
For batch writing, when the number of buffered records reaches the number of
`batch_size` or the time reaches `checkpoint.interval`<br/>, the data will be
flushed into the database
|
diff --git a/docs/zh/connector-v2/sink/DB2.md b/docs/zh/connector-v2/sink/DB2.md
index 4e77a986be..5018734234 100644
--- a/docs/zh/connector-v2/sink/DB2.md
+++ b/docs/zh/connector-v2/sink/DB2.md
@@ -69,7 +69,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| database | String | No | - |
使用这个 `database` 和 `table-name` 自动生成sql并接收上游输入数据写入数据库.<br/>此选项与 `query`
互斥,具有更高的优先级.
|
| table | String | No | - |
使用数据库和此表名自动生成sql并接收上游输入数据写入数据库.<br/>此选项与 `query` 互斥,具有更高的优先级.
|
| primary_keys | Array | No | - |
此选项用于在自动生成sql时支持 `insert`, `delete`, 和 `update` 等操作.
|
-| support_upsert_by_query_primary_key_exist | Boolean | No | false |
选择使用INSERT sql、UPDATE sql根据查询主键是否存在来处理更新事件(INSERT, UPDATE_AFTER).
此配置仅在数据库不支持升级语法时使用. **注**: 此方法性能低
|
| connection_check_timeout_sec | Int | No | 30 |
等待用于验证连接的数据库操作完成的时间(秒).
|
| max_retries | Int | No | 0 |
提交失败的重试次数 (执行批处理)
|
| batch_size | Int | No | 1000 |
对于批量写入,当缓冲记录的数量达到 `batch_size` 的数量或时间达到 `checkpoint.interval` 时<br/>,
数据将被刷新到数据库中
|
diff --git a/docs/zh/connector-v2/sink/Jdbc.md
b/docs/zh/connector-v2/sink/Jdbc.md
index 053d48aa55..962d73d8a3 100644
--- a/docs/zh/connector-v2/sink/Jdbc.md
+++ b/docs/zh/connector-v2/sink/Jdbc.md
@@ -41,7 +41,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| 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
|
@@ -139,12 +138,6 @@ Tip: 如果目标数据库有 SCHEMA 的概念,则表参数必须写成 `xxx.x
该选项用于辅助生成 insert、delete、update 等 sql 语句。设置了该选项,将会根据该选项生成对应的 sql 语句
-### support_upsert_by_query_primary_key_exist [boolean]
-
-根据查询主键是否存在来选择使用 INSERT sql、UPDATE sql 来处理变更事件(INSERT、UPDATE_AFTER)。仅当数据库不支持
upsert
-语法时才使用此配置
-**注意**:该方法性能较低
-
### connection_check_timeout_sec [int]
用于验证数据库连接的有效性时等待数据库操作完成所需的时间,单位是秒
@@ -352,7 +345,6 @@ sink {
compatible_mode="postgresLow"
database = "sink_database"
table = "sink_table"
- support_upsert_by_query_primary_key_exist = true
generate_sink_sql = true
primary_keys = ["key1", "key2", ...]
}
diff --git a/docs/zh/connector-v2/sink/Mysql.md
b/docs/zh/connector-v2/sink/Mysql.md
index d8e8e1c012..02c380c890 100644
--- a/docs/zh/connector-v2/sink/Mysql.md
+++ b/docs/zh/connector-v2/sink/Mysql.md
@@ -76,7 +76,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| 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/>时,数据将被刷新到数据库中
|
diff --git a/docs/zh/connector-v2/sink/OceanBase.md
b/docs/zh/connector-v2/sink/OceanBase.md
index 172a9a978c..0076aa9e62 100644
--- a/docs/zh/connector-v2/sink/OceanBase.md
+++ b/docs/zh/connector-v2/sink/OceanBase.md
@@ -80,7 +80,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| database | String | 否 | - |
使用这个“database”和“table-name”自动生成sql并接收上游输入数据写入数据库<br/>此选项与“query”互斥,具有更高的优先级。
|
| table | String | 否 | - |
使用数据库和此表名自动生成sql并接收上游输入数据写入数据库<br/>此选项与“query”互斥,并且具有更高的 priority.
|
| primary_keys | Array | 否 | - |
此选项用于在自动生成sql时支持“insert”、“delete”和“update”等操作。
|
-| 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/>时,数据将被刷新到数据库中
|
diff --git a/docs/zh/connector-v2/sink/Oracle.md
b/docs/zh/connector-v2/sink/Oracle.md
index ba5027d1a5..689e70c826 100644
--- a/docs/zh/connector-v2/sink/Oracle.md
+++ b/docs/zh/connector-v2/sink/Oracle.md
@@ -74,7 +74,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| 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/>时,数据将被刷新到数据库中。
|
diff --git a/docs/zh/connector-v2/sink/PostgreSql.md
b/docs/zh/connector-v2/sink/PostgreSql.md
index 8654db5905..a9023187ac 100644
--- a/docs/zh/connector-v2/sink/PostgreSql.md
+++ b/docs/zh/connector-v2/sink/PostgreSql.md
@@ -79,7 +79,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| database | String | 否 | -
| 使用此 `database` 和 `table-name` 自动生成 SQL,并接收上游输入数据写入数据库。<br/>此选项与
`query` 互斥,并具有更高的优先级。
[...]
| table | String | 否 | -
| 使用数据库和此表名自动生成 SQL,并接收上游输入数据写入数据库。<br/>此选项与 `query`
互斥,并具有更高的优先级。表参数可以填写一个不想的表的名称,最终将作为创建表的表名,并支持变量(`${table_name}`,`${schema_name}`)。替换规则:
`${schema_name}` 将替换为传递给目标端的 SCHEMA 名称,`${table_name}` 将替换为传递给目标端的表名称。 |
| 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`<br/>时,数据将刷新到数据库。
[...]
diff --git a/docs/zh/connector-v2/sink/Snowflake.md
b/docs/zh/connector-v2/sink/Snowflake.md
index 21437c9e02..c0e5e8fb67 100644
--- a/docs/zh/connector-v2/sink/Snowflake.md
+++ b/docs/zh/connector-v2/sink/Snowflake.md
@@ -60,7 +60,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| database | String | 否 | - |
使用此`database`和`table-name`自动生成SQL并接收上游输入数据写入数据库。<br/>此选项与`query`互斥,且具有更高的优先级。
|
| table | String | 否 | - |
使用`database`和此`table-name`自动生成SQL并接收上游输入数据写入数据库。<br/>此选项与`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`时,<br/>数据将被刷新到数据库中
|
diff --git a/docs/zh/connector-v2/sink/SqlServer.md
b/docs/zh/connector-v2/sink/SqlServer.md
index dd80c11d62..9b45ee4368 100644
--- a/docs/zh/connector-v2/sink/SqlServer.md
+++ b/docs/zh/connector-v2/sink/SqlServer.md
@@ -75,7 +75,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| 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` 时,数据将被刷新到数据库中。
|
diff --git a/docs/zh/connector-v2/sink/Vertica.md
b/docs/zh/connector-v2/sink/Vertica.md
index e52d466d2a..d1b65052bc 100644
--- a/docs/zh/connector-v2/sink/Vertica.md
+++ b/docs/zh/connector-v2/sink/Vertica.md
@@ -74,7 +74,6 @@ import ChangeLog from '../changelog/connector-jdbc.md';
| 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` 时,数据将被刷新到数据库中。
|
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcOptions.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcOptions.java
index a4734a905a..10b01c154f 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcOptions.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcOptions.java
@@ -149,12 +149,6 @@ public interface JdbcOptions {
Option<List<String>> PRIMARY_KEYS =
Options.key("primary_keys").listType().noDefaultValue().withDescription("primary
keys");
- Option<Boolean> SUPPORT_UPSERT_BY_QUERY_PRIMARY_KEY_EXIST =
- Options.key("support_upsert_by_query_primary_key_exist")
- .booleanType()
- .defaultValue(false)
- .withDescription("support upsert by query primary_key
exist");
-
Option<Boolean> ENABLE_UPSERT =
Options.key("enable_upsert")
.booleanType()
diff --git
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkFactory.java
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkFactory.java
index 5835b38e7b..9292ffb7b7 100644
---
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkFactory.java
+++
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcSinkFactory.java
@@ -70,7 +70,6 @@ import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.
import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.PRIMARY_KEYS;
import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.QUERY;
import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.SCHEMA_SAVE_MODE;
-import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.SUPPORT_UPSERT_BY_QUERY_PRIMARY_KEY_EXIST;
import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.TABLE;
import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.TRANSACTION_TIMEOUT_SEC;
import static
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcOptions.URL;
@@ -268,7 +267,6 @@ public class JdbcSinkFactory implements TableSinkFactory {
IS_EXACTLY_ONCE,
GENERATE_SINK_SQL,
AUTO_COMMIT,
- SUPPORT_UPSERT_BY_QUERY_PRIMARY_KEY_EXIST,
PRIMARY_KEYS,
COMPATIBLE_MODE,
MULTI_TABLE_SINK_REPLICA,
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-http-e2e/src/test/resources/http_streaming_json_to_postgresql.conf
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-http-e2e/src/test/resources/http_streaming_json_to_postgresql.conf
index c565f2460e..6fa869e963 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-http-e2e/src/test/resources/http_streaming_json_to_postgresql.conf
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-http-e2e/src/test/resources/http_streaming_json_to_postgresql.conf
@@ -59,7 +59,6 @@ sink {
database = test
table = "public.sink"
primary_keys = ["c_string"]
- support_upsert_by_query_primary_key_exist = true
batch_size = 1
}
}