JDBC
Description
The JDBC Sink connector writes SeaTunnel rows to databases through a JDBC driver. It supports batch and streaming jobs, parallel writers, generated or custom SQL, multi-table writes, CDC events, and optional exactly-once delivery through XA transactions.
If this is your first JDBC Sink job, start with Choose a write mode and the Quick start. The complete option reference follows those sections.
Using Dependency
Install the connector-jdbc plugin first:
--seatunnel-connectors--
connector-jdbc
--end--
cd "${SEATUNNEL_HOME}"
sh bin/install-plugin.sh
JDBC driver licenses and redistribution terms vary by database vendor, and the driver version must also be compatible with your database and Java runtime. SeaTunnel therefore does not bundle every JDBC driver. Download the appropriate driver yourself and place its JAR in the engine-specific directory below before starting the job.
Spark and Flink engines
Place the JDBC driver in ${SEATUNNEL_HOME}/plugins/Jdbc/lib/ on every node that runs SeaTunnel.
Zeta engine
Place the JDBC driver in ${SEATUNNEL_HOME}/lib/ on every SeaTunnel node, then restart the affected SeaTunnel processes so the driver is loaded.
See the driver reference for common driver class names and download locations.
Choose a write mode
JDBC Sink has two mutually exclusive write modes. Choose one before configuring the remaining options.
| Use case | Required configuration | Behavior |
|---|---|---|
| SeaTunnel generates SQL | generate_sink_sql = true, database, and normally table | Recommended for most jobs. SeaTunnel can generate INSERT, database-native UPSERT, UPDATE, and DELETE statements from the upstream schema and row kind. Save modes and automatic table creation are available. |
| You provide SQL | query = "INSERT ... VALUES (?, ...)" | Use when the target statement must be fully controlled. The ? parameters are bound in upstream field order. Save mode options are not executed in this mode. |
Do not configure both modes. generate_sink_sql defaults to false, so a job without generate_sink_sql = true must provide query.
For generated SQL, configure primary_keys when the target needs upsert, update, or delete behavior. If it is omitted, SeaTunnel tries to inherit a primary key, then the first unique key, from upstream catalog metadata. Without any usable key, generated SQL falls back to plain INSERT.
Quick start: PostgreSQL
This beginner example uses generated SQL and a pre-created target table. The configuration and expected result below have been verified against PostgreSQL 14, including the inserted rows and their final database values.
Put a compatible PostgreSQL JDBC driver in the directory described in Using Dependency.
Create the target table:
CREATE TABLE public.orders (
id BIGINT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL,
amount DECIMAL(10, 2) NOT NULL
);
- Save the following job as
${SEATUNNEL_HOME}/config/jdbc-sink-quick-start.conf. Replace the host, credentials, and database name for your environment.
env {
parallelism = 1
job.mode = "BATCH"
}
source {
FakeSource {
row.num = 3
schema = {
fields {
id = bigint
customer_name = string
amount = "decimal(10, 2)"
}
}
rows = [
{ kind = INSERT, fields = [1, "Alice", 120.50] }
{ kind = INSERT, fields = [2, "Bob", 80.00] }
{ kind = INSERT, fields = [3, "Carol", 42.00] }
]
}
}
sink {
Jdbc {
url = "jdbc:postgresql://localhost:5432/sales"
driver = "org.postgresql.Driver"
username = "postgres"
password = "change_me"
generate_sink_sql = true
database = "sales"
table = "public.orders"
primary_keys = ["id"]
schema_save_mode = "ERROR_WHEN_SCHEMA_NOT_EXIST"
data_save_mode = "APPEND_DATA"
}
}
- Run the job:
cd "${SEATUNNEL_HOME}"
./bin/seatunnel.sh --config ./config/jdbc-sink-quick-start.conf -m local
- Verify the result:
SELECT id, customer_name, amount
FROM public.orders
ORDER BY id;
Expected rows:
| id | customer_name | amount |
|---|---|---|
| 1 | Alice | 120.50 |
| 2 | Bob | 80.00 |
| 3 | Carol | 42.00 |
If the job fails before writing, check Troubleshooting first.
Key Features
Exactly-once delivery uses XA transactions and therefore requires XA support from both the database and its JDBC driver. See Exactly-once prerequisites.
- cdc
- support multiple table write
- timer flush (Zeta engine only)
Options
url, driver, schema_save_mode, and data_save_mode are always required by the connector option rule. The two save mode options have defaults, so they can normally be omitted from job files. Other options become required according to the selected write mode:
- Generated SQL: set
generate_sink_sql = trueand configuredatabase; configuretableunless upstream metadata supplies the target table dynamically. - Custom SQL: leave
generate_sink_sql = falseand configurequery. - Exactly-once: set
is_exactly_once = true,xa_data_source_class_name, andmax_retries = 0.
| Name | Type | Required | Default |
|---|---|---|---|
| url | String | Yes | - |
| driver | String | Yes | - |
| username | String | No | - |
| password | String | No | - |
| query | String | No | - |
| compatible_mode | String | No | - |
| dialect | String | No | - |
| database | String | No | - |
| table | String | No | - |
| tablePrefix | String | No | - |
| tableSuffix | String | No | - |
| primary_keys | Array | No | - |
| connection_check_timeout_sec | Int | No | 30 |
| connect_timeout_ms | Int | No | 86400000 |
| socket_timeout_ms | Int | No | 86400000 |
| max_retries | Int | No | 0 |
| batch_size | Int | No | 1000 |
| batch_interval_ms | Long | No | 0 |
| is_exactly_once | Boolean | No | false |
| generate_sink_sql | Boolean | No | false |
| xa_data_source_class_name | String | No | - |
| max_commit_attempts | Int | No | 3 |
| transaction_timeout_sec | Int | No | -1 |
| auto_commit | Boolean | No | true |
| field_ide | String | No | - |
| properties | Map | No | - |
| common-options | No | - | |
| schema_save_mode | Enum | No | CREATE_SCHEMA_WHEN_NOT_EXIST |
| data_save_mode | Enum | No | APPEND_DATA |
| custom_sql | String | No | - |
| enable_upsert | Boolean | No | true |
| is_primary_key_updated | Boolean | No | true |
| support_upsert_by_insert_only | Boolean | No | false |
| table_options | Map | No | - |
| use_copy_statement | Boolean | No | false |
| oracle_insert_mode | Enum | No | CONVENTIONAL |
| create_index | Boolean | No | true |
| use_kerberos | Boolean | No | false |
| kerberos_principal | String | No | - |
| kerberos_keytab_path | String | No | - |
| krb5_path | String | No | /etc/krb5.conf |
| access_key_id | String | No | |
| secret_access_key | String | No | |
| region | String | No |
driver [string]
The jdbc class name used to connect to the remote data source, if you use MySQL the value is com.mysql.cj.jdbc.Driver.
username [string]
The database login name. username is the canonical option. The legacy key user is still accepted as a fallback when username is not set.
password [string]
password
url [string]
The URL of the JDBC connection. Refer to a case: jdbc:postgresql://localhost/test
query [string]
The parameterized SQL statement used to write each upstream row, for example INSERT INTO target(id, name) VALUES (?, ?). SeaTunnel binds the ? parameters in upstream field order. Use this option only in custom SQL mode; do not combine it with generate_sink_sql = true.
Current limitation: when sink query is configured (custom write SQL), JDBC sink does not apply save mode handling. schema_save_mode, data_save_mode, and custom_sql are not executed in this mode. If you need save mode handling, use generate_sink_sql = true with database and table.
compatible_mode [string]
The compatible mode of database, required when the database supports multiple compatible modes.
For example, when using OceanBase database, you need to set it to 'mysql' or 'oracle'. when using StarRocks, you need set it to starrocks.
Postgres 9.5 version or below,please set it to postgresLow to support cdc
dialect [string]
The appointed dialect, if it does not exist, is still obtained according to the url, and the priority is higher than the url. For example,when using starrocks, you need set it to starrocks. Similarly, when using mysql, you need to set its value to mysql.
If one dialect not supported by SeaTunnel, it will use the default dialect GenericDialect. Just make sure the driver you provided support the database you want to connect.
dialect list
| Dialect Name | ||
|---|---|---|
| Greenplum | DB2 | Dameng |
| Gbase8a | HIVE | KingBase |
| MySQL | StarRocks | Oracle |
| Phoenix | Postgres | Redshift |
| SapHana | Snowflake | Sqlite |
| SqlServer | Tablestore | Teradata |
| Vertica | OceanBase | XUGU |
| IRIS | Inceptor | Highgo |
| DSQL | ||
| YashanDB |
database [string]
The target database or catalog used in generated SQL mode. This option is required when generate_sink_sql = true and must not be combined with query.
table [string]
The target table used in generated SQL mode. Do not combine it with query.
The table parameter can fill in the target table name, which will eventually be used as the created or written table name, and supports variables (${table_name}, ${schema_name}). Replacement rules: ${schema_name} will replace the SCHEMA name passed to the target side, and ${table_name} will replace the table name passed to the target side.
mysql sink for example:
- test${schema_name}${table_name}_test
- sink_sinktable
- ss_${table_name}
pgsql (Oracle Sqlserver ...) Sink for example:
- ${schema_name}.${table_name}_test
- dbo.tt_${table_name}_sink
- public.sink_table
Tip: If the target database has the concept of SCHEMA, the table parameter must be written as xxx.xxx
tablePrefix [string]
Deprecated. Use table with table placeholders instead. For example, use table = "prefix_${table_name}_suffix" instead of configuring tablePrefix and tableSuffix.
tableSuffix [string]
Deprecated. Use table with table placeholders instead. For example, use table = "prefix_${table_name}_suffix" instead of configuring tablePrefix and tableSuffix.
primary_keys [array]
The target key columns used to generate database-native UPSERT, UPDATE, and DELETE statements. If omitted, SeaTunnel attempts to inherit a primary key or the first unique key from upstream catalog metadata. If no key is available, generated SQL uses plain INSERT.
connection_check_timeout_sec [int]
The time in seconds to wait for the database operation used to validate the connection to complete.
connect_timeout_ms [int]
Connection timeout in milliseconds when establishing the JDBC connection. The default is 24 hours. Set it to 0 to disable the timeout.
socket_timeout_ms [int]
Socket read timeout in milliseconds after the JDBC connection is established. The default is 24 hours. Set it to 0 to disable the timeout.
max_retries [int]
The number of retries after a failed JDBC executeBatch. Exactly-once mode requires this option to be 0; retrying a failed XA batch can violate transaction guarantees.
batch_size [int]
The maximum number of buffered rows per batch. The sink flushes when the buffer reaches batch_size, when a checkpoint prepares a commit, or when the writer closes. A larger value can improve throughput but uses more memory and increases the amount of work retried after a failure.
batch_interval_ms [long]
The flush interval in milliseconds. When set to a value greater than 0, if the elapsed time since the last flush exceeds this interval, the next writeRecord call will trigger a synchronous flush, even if batch_size has not been reached. Default value is 0 (disabled). This is a write-triggered time check, not a background timer — if no new records arrive (idle partition), no time-based flush occurs; buffered data is flushed at the next prepareCommit (checkpoint) or close. Note that when auto_commit = false, flushed rows are not visible to other transactions until the next commit (e.g. at checkpoint).
is_exactly_once [boolean]
Enables exactly-once delivery through XA transactions. This requires xa_data_source_class_name, max_retries = 0, and XA support from the database and driver. Timer flush is not supported in this mode.
generate_sink_sql [boolean]
When true, SeaTunnel generates write statements from the upstream schema and row kind. Configure database and normally table; do not configure query. The default is false, which means query is required.
xa_data_source_class_name [string]
The xa data source class name of the database Driver, for example, mysql is com.mysql.cj.jdbc.MysqlXADataSource, and
please refer to appendix for other data sources
max_commit_attempts [int]
The number of retries for transaction commit failures
transaction_timeout_sec [int]
The timeout after the transaction is opened, the default is -1 (never timeout). Note that setting the timeout may affect exactly-once semantics
auto_commit [boolean]
Automatic transaction commit is enabled by default
field_ide [String]
The field "field_ide" is used to identify whether the field needs to be converted to uppercase or lowercase when synchronizing from the source to the sink. "ORIGINAL" indicates no conversion is needed, "UPPERCASE" indicates conversion to uppercase, and "LOWERCASE" indicates conversion to lowercase.
properties
Additional connection configuration parameters,when properties and URL have the same parameters, the priority is determined by the
specific implementation of the driver. For example, in MySQL, properties take precedence over the URL.
common options
Sink plugin common parameters, please refer to Sink Common Options for details
schema_save_mode [Enum]
Before the synchronous task is turned on, different treatment schemes are selected for the existing surface structure of the target side.
Option introduction:
RECREATE_SCHEMA :Will create when the table does not exist, delete and rebuild when the table is saved
CREATE_SCHEMA_WHEN_NOT_EXIST :Will Created when the table does not exist, skipped when the table is saved
ERROR_WHEN_SCHEMA_NOT_EXIST :Error will be reported when the table does not exist
IGNORE :Ignore the treatment of the table
data_save_mode [Enum]
Before the synchronous task is turned on, different processing schemes are selected for data existing data on the target side.
Option introduction:
DROP_DATA: Preserve database structure and delete data
APPEND_DATA:Preserve database structure, preserve data
CUSTOM_PROCESSING:User defined processing
ERROR_WHEN_DATA_EXISTS:When there is data, an error is reported
custom_sql [String]
When data_save_mode selects CUSTOM_PROCESSING, you should fill in the CUSTOM_SQL parameter. This parameter usually fills in a SQL that can be executed. SQL will be executed before synchronization tasks.
Note: in sink query mode, custom_sql is not executed. This behavior is a current limitation of JDBC sink.
table_options [Map]
Sink-specific table options applied when SaveMode creates the target table (DDL phase). They take effect only when schema_save_mode triggers table creation, such as CREATE_SCHEMA_WHEN_NOT_EXIST or RECREATE_SCHEMA. They do not affect INSERT/UPSERT at runtime and do not run ALTER TABLE on existing tables.
Current support:
| Dialect | Supported | Allowed keys |
|---|---|---|
| MySQL | Yes | engine, charset, collate |
| TiDB | Yes | engine, charset, collate (via MySQL JDBC protocol and jdbc:mysql://) |
| OceanBase (MySQL mode) | Yes | engine, charset, collate |
| PostgreSQL | Yes | tablespace, fillfactor |
| Other JDBC dialects | No | Non-empty table_options fails validation at job submission |
Invalid or unsupported keys are validated early via JdbcSinkFactory option rules (--check and job submission), not only at runtime DDL.
Dialect notes:
- MySQL:
engine,charset, andcollateare appended toCREATE TABLEand take effect. - TiDB: When connected via
jdbc:mysql://with a MySQL JDBC driver, TiDB shares the same key whitelist and DDL merge path as MySQL.charsetandcollatetake effect;engineis accepted for MySQL syntax compatibility but is ignored by TiDB (storage engine is not configurable). - OceanBase (MySQL mode): Supported for
jdbc:oceanbase://when not using Oracle-compatible mode.charsetandcollatemust be values supported by your OceanBase version (typically a MySQL-compatible subset; useSHOW CHARSET/SHOW COLLATIONon the target). Unsupported values fail whenCREATE TABLEruns, not at job submission. OceanBase Oracle-compatible mode does not supporttable_options; a non-empty map fails at job submission. - PostgreSQL:
fillfactoris emitted asWITH (fillfactor=<n>)and must be an integer in[10, 100];tablespaceis emitted asTABLESPACE "..."using the configured name literally (not rewritten byfieldIde). Blank values and illegal characters intablespace(for example") are rejected at job submission. Only these curated keys are accepted (arbitraryWITHparameters are not supported). OpenGauss and HighGo inherit the same validation and DDL path via Postgres catalog/dialect.
SeaTunnel validates the key whitelist at submission time for all dialects that support table_options. For PostgreSQL (and OpenGauss / HighGo via the same path), it also validates blank values and the fillfactor numeric range. Other dialects (for example MySQL) do not verify whether each value is supported by the target database beyond the key whitelist.
Example (MySQL auto-create with engine and charset):
sink {
Jdbc {
url = "jdbc:mysql://localhost:3307/mydb"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "password"
database = "mydb"
table = "orders"
generate_sink_sql = true
schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
primary_keys = ["id"]
table_options = {
"engine" = "InnoDB"
"charset" = "utf8mb4"
"collate" = "utf8mb4_general_ci"
}
}
}
The generated CREATE TABLE statement appends ENGINE, DEFAULT CHARSET, and COLLATE clauses. Keys outside the dialect whitelist (for example bucket_num) fail during job submission.
Example (PostgreSQL auto-create with tablespace and fillfactor):
sink {
Jdbc {
url = "jdbc:postgresql://localhost:5432/mydb"
driver = "org.postgresql.Driver"
username = "postgres"
password = "password"
database = "mydb"
table = "public.orders"
generate_sink_sql = true
schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
primary_keys = ["id"]
table_options = {
"tablespace" = "pg_default"
"fillfactor" = "70"
}
}
}
enable_upsert [boolean]
Enable upsert by primary_keys exist, If the task has no key duplicate data, setting this parameter to false can speed up data import
is_primary_key_updated [boolean]
Whether primary key fields are included when generating update statements. Keep the default unless your target database requires primary key columns to be skipped during updates.
support_upsert_by_insert_only [boolean]
Whether to support upsert behavior through insert-only statements for compatible dialects. This is an advanced compatibility option and is disabled by default.
use_copy_statement [boolean]
Use COPY ${table} FROM STDIN statement to import data. Only drivers with getCopyAPI() method connections are supported. e.g.: Postgresql driver org.postgresql.Driver.
NOTICE: MAP, ARRAY, ROW types are not supported.
oracle_insert_mode [Enum]
Oracle insert mode. The default value is CONVENTIONAL, which keeps the existing JDBC insert behavior.
When set to APPEND_VALUES, SeaTunnel adds the Oracle APPEND_VALUES hint to generated insert SQL:
INSERT /*+ APPEND_VALUES */ INTO ...
This option is only supported for Oracle JDBC sink insert-only writes. It requires generate_sink_sql = true, auto_commit = true, no custom query, no primary_keys, is_exactly_once = false, and support_upsert_by_insert_only = false.
create_index [boolean]
Create the index(contains primary key and any other indexes) or not when auto-create table. You can use this option to improve the performance of jdbc writes when migrating large tables.
Notice: Note that this will sacrifice read performance, so you'll need to manually create indexes after the table migration to improve read performance
use_kerberos [boolean]
Whether to enable Kerberos authentication for JDBC connections. When enabled, also configure kerberos_principal, kerberos_keytab_path, and krb5_path as required by your environment.
access_key_id [String]
The access_key_id in AWS authentication. Only valid for dialect="dsql"
secret_access_key [String]
The secret_access_key in AWS authentication. Only valid for dialect="dsql"
region [String]
The area where Amazon Aurora DSQL is located. Only valid for dialect="dsql"
Exactly-once prerequisites
When is_exactly_once = true, JDBC Sink uses XA transactions. Before enabling it:
- Set
max_retries = 0and configure the correctxa_data_source_class_namefor the installed driver. - PostgreSQL must allow prepared transactions. Set
max_prepared_transactionsto a positive value large enough for the expected concurrent transactions, then restart PostgreSQL if the server requires it. - MySQL requires a server and Connector/J combination that supports the XA operations used by the sink. Accounts that perform XA recovery may also require the
XA_RECOVER_ADMINprivilege; check the requirements for your MySQL version. - Do not configure
sink.flush.interval; XA transaction boundaries are controlled by checkpoints.
For MySQL non-XA batch jobs, adding rewriteBatchedStatements=true to the JDBC URL can improve throughput. Validate the effect with your driver version and workload.
Driver reference
The following values are starting points. Confirm the driver artifact and version against the database vendor's compatibility matrix.
| datasource | driver | url | xa_data_source_class_name | maven |
|---|---|---|---|---|
| MySQL | com.mysql.cj.jdbc.Driver | jdbc:mysql://localhost:3306/test | com.mysql.cj.jdbc.MysqlXADataSource | https://mvnrepository.com/artifact/mysql/mysql-connector-java |
| PostgreSQL | org.postgresql.Driver | jdbc:postgresql://localhost:5432/postgres | org.postgresql.xa.PGXADataSource | https://mvnrepository.com/artifact/org.postgresql/postgresql |
| DM | dm.jdbc.driver.DmDriver | jdbc:dm://localhost:5236 | dm.jdbc.driver.DmdbXADataSource | https://mvnrepository.com/artifact/com.dameng/DmJdbcDriver18 |
| Phoenix | org.apache.phoenix.queryserver.client.Driver | jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF | / | https://mvnrepository.com/artifact/com.aliyun.phoenix/ali-phoenix-shaded-thin-client |
| SQL Server | com.microsoft.sqlserver.jdbc.SQLServerDriver | jdbc:sqlserver://localhost:1433 | com.microsoft.sqlserver.jdbc.SQLServerXADataSource | https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc |
| Oracle | oracle.jdbc.OracleDriver | jdbc:oracle:thin:@localhost:1521/xepdb1 | oracle.jdbc.xa.OracleXADataSource | https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 |
| sqlite | org.sqlite.JDBC | jdbc:sqlite:test.db | / | https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc |
| GBase8a | com.gbase.jdbc.Driver | jdbc:gbase://localhost:5258/test | / | https://cdn.gbase.cn/products/30/p5CiVwXBKQYIUGN8ecHvk/gbase-connector-java-9.5.0.7-build1-bin.jar |
| StarRocks | com.mysql.cj.jdbc.Driver | jdbc:mysql://localhost:3306/test | / | https://mvnrepository.com/artifact/mysql/mysql-connector-java |
| db2 | com.ibm.db2.jcc.DB2Driver | jdbc:db2://localhost:50000/testdb | com.ibm.db2.jcc.DB2XADataSource | https://mvnrepository.com/artifact/com.ibm.db2.jcc/db2jcc/db2jcc4 |
| saphana | com.sap.db.jdbc.Driver | jdbc:sap://localhost:39015 | / | https://mvnrepository.com/artifact/com.sap.cloud.db.jdbc/ngdbc |
| Doris | com.mysql.cj.jdbc.Driver | jdbc:mysql://localhost:3306/test | / | https://mvnrepository.com/artifact/mysql/mysql-connector-java |
| teradata | com.teradata.jdbc.TeraDriver | jdbc:teradata://localhost/DBS_PORT=1025,DATABASE=test | / | https://mvnrepository.com/artifact/com.teradata.jdbc/terajdbc |
| Redshift | com.amazon.redshift.jdbc42.Driver | jdbc:redshift://localhost:5439/testdb | com.amazon.redshift.xa.RedshiftXADataSource | https://mvnrepository.com/artifact/com.amazon.redshift/redshift-jdbc42 |
| Snowflake | net.snowflake.client.jdbc.SnowflakeDriver | jdbc:snowflake://<account_name>.snowflakecomputing.com | / | https://mvnrepository.com/artifact/net.snowflake/snowflake-jdbc |
| Vertica | com.vertica.jdbc.Driver | jdbc:vertica://localhost:5433 | / | https://repo1.maven.org/maven2/com/vertica/jdbc/vertica-jdbc/12.0.3-0/vertica-jdbc-12.0.3-0.jar |
| Kingbase | com.kingbase8.Driver | jdbc:kingbase8://localhost:54321/db_test | / | https://repo1.maven.org/maven2/cn/com/kingbase/kingbase8/8.6.0/kingbase8-8.6.0.jar |
| OceanBase | com.oceanbase.jdbc.Driver | jdbc:oceanbase://localhost:2881 | / | https://repo1.maven.org/maven2/com/oceanbase/oceanbase-client/2.4.12/oceanbase-client-2.4.12.jar |
| xugu | com.xugu.cloudjdbc.Driver | jdbc:xugu://localhost:5138 | / | https://repo1.maven.org/maven2/com/xugudb/xugu-jdbc/12.2.0/xugu-jdbc-12.2.0.jar |
| InterSystems IRIS | com.intersystems.jdbc.IRISDriver | jdbc:IRIS://localhost:1972/%SYS | / | https://raw.githubusercontent.com/intersystems-community/iris-driver-distribution/main/JDBC/JDK18/intersystems-jdbc-3.8.4.jar |
| opengauss | org.opengauss.Driver | jdbc:opengauss://localhost:5432/postgres | / | https://repo1.maven.org/maven2/org/opengauss/opengauss-jdbc/5.1.0-og/opengauss-jdbc-5.1.0-og.jar |
| Highgo | com.highgo.jdbc.Driver | jdbc:highgo://localhost:5866/highgo | / | https://repo1.maven.org/maven2/com/highgo/HgdbJdbc/6.2.3/HgdbJdbc-6.2.3.jar |
| Dsql | org.postgresql.Driver | jdbc:postgresql://Amazon Aurora DSQL Cluster Endpoint:5432/postgres | org.postgresql.xa.PGXADataSource | https://mvnrepository.com/artifact/org.postgresql/postgresql |
| YashanDB | com.yashandb.jdbc.Driver | jdbc:yasdb://localhost:1688/SYS | / | https://mvnrepository.com/artifact/com.yashandb/yashandb-jdbc |
Common patterns
Custom SQL
jdbc {
url = "jdbc:mysql://localhost:3306/test"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "123456"
query = "insert into test_table(name,age) values(?,?)"
}
Exactly-once with custom SQL
Turn on exact one-time semantics by setting is_exactly_once
jdbc {
url = "jdbc:mysql://localhost:3306/test"
driver = "com.mysql.cj.jdbc.Driver"
max_retries = 0
username = "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"
}
Timer flush on Zeta
This engine-level feature is supported only by Zeta. Spark and Flink do not inject FlushSignal records, so sink.flush.interval does not enable timer flush on those engines. On Zeta, configure sink.flush.interval in the env block. The engine periodically injects a FlushSignal into the record stream, and JDBC Sink flushes all buffered records immediately, regardless of whether batch_size has been reached.
Timer flush is not supported when is_exactly_once = true. In exactly-once mode the sink uses XA transactions whose boundaries are managed by checkpoints; a timer-triggered flush would break transactional guarantees.
env {
job.mode = "STREAMING"
checkpoint.interval = 30000
sink.flush.interval = 5000
}
sink {
jdbc {
url = "jdbc:mysql://localhost:3306/test"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "123456"
database = "sink_database"
table = "sink_table"
generate_sink_sql = true
primary_keys = ["id"]
batch_size = 10000
}
}
Change data capture events
jdbc receive CDC example
sink {
jdbc {
url = "jdbc:mysql://localhost:3306"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "123456"
database = "sink_database"
table = "sink_table"
generate_sink_sql = true
primary_keys = ["key1", "key2"]
}
}
Create a missing target table
To facilitate the creation of tables when they do not already exist, set the schema_save_mode to CREATE_SCHEMA_WHEN_NOT_EXIST.
sink {
jdbc {
url = "jdbc:mysql://localhost:3306"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "123456"
generate_sink_sql = true
database = "sink_database"
table = "sink_table"
primary_keys = ["key1", "key2"]
schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
data_save_mode = "APPEND_DATA"
}
}
PostgreSQL 9.5 and earlier CDC compatibility
For PostgreSQL versions 9.5 and below, setting compatible_mode to postgresLow to enable support for PostgreSQL Change Data Capture (CDC) operations.
sink {
jdbc {
url = "jdbc:postgresql://localhost:5432"
driver = "org.postgresql.Driver"
username = "root"
password = "123456"
compatible_mode = "postgresLow"
database = "sink_database"
table = "sink_table"
generate_sink_sql = true
primary_keys = ["key1", "key2"]
}
}
Multiple tables
MySQL CDC source
env {
parallelism = 1
job.mode = "STREAMING"
checkpoint.interval = 5000
}
source {
Mysql-CDC {
url = "jdbc:mysql://127.0.0.1:3306/seatunnel"
username = "root"
password = "******"
table-names = ["seatunnel.role","seatunnel.user","galileo.Bucket"]
}
}
transform {
}
sink {
jdbc {
url = "jdbc:mysql://localhost:3306"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "123456"
generate_sink_sql = true
database = "${database_name}_test"
table = "${table_name}_test"
primary_keys = ["${primary_key}"]
}
}
JDBC source
env {
parallelism = 1
job.mode = "BATCH"
}
source {
Jdbc {
driver = oracle.jdbc.driver.OracleDriver
url = "jdbc:oracle:thin:@localhost:1521/XE"
username = testUser
password = testPassword
table_list = [
{
table_path = "TESTSCHEMA.TABLE_1"
},
{
table_path = "TESTSCHEMA.TABLE_2"
}
]
}
}
transform {
}
sink {
jdbc {
url = "jdbc:mysql://localhost:3306"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "123456"
generate_sink_sql = true
database = "${schema_name}_test"
table = "${table_name}_test"
primary_keys = ["${primary_key}"]
}
}
Amazon Aurora DSQL
env {
parallelism = 1
job.mode = "BATCH"
}
source {
Jdbc {
driver = oracle.jdbc.driver.OracleDriver
url = "jdbc:oracle:thin:@localhost:1521/XE"
username = testUser
password = testPassword
table_list = [
{
table_path = "TESTSCHEMA.TABLE_1"
},
{
table_path = "TESTSCHEMA.TABLE_2"
}
]
}
}
transform {
}
sink {
Jdbc {
dialect="Dsql"
driver = "org.postgresql.Driver"
url="jdbc:postgresql://ixxxxxxxxxxxxx.dsql.us-east-1.on.aws:5432/postgres"
username = "admin"
access_key_id = "ACCESSKEYIDEXAMPLE"
secret_access_key = "SECRETACCESSKEYEXAMPLE"
region = "us-east-1"
database = "postgres"
generate_sink_sql = true
primary_keys = ["id"]
max_retries = 3
batch_size = 1000
}
}
Troubleshooting
Does JDBC Sink support automatic table creation?
Yes. Use schema_save_mode to control table creation behavior:
CREATE_SCHEMA_WHEN_NOT_EXIST: Creates the table only if it does not exist.RECREATE_SCHEMA: Drops and recreates the table on every job start.ERROR_WHEN_SCHEMA_NOT_EXIST: Throws an error if the table is missing.IGNORE: Skips all table creation logic.
Use generate_sink_sql = true together with database and table for automatic INSERT/UPSERT SQL generation.
How do I enable exactly-once semantics with JDBC Sink?
JDBC Sink supports exactly-once via XA transactions. Enable it with:
sink {
jdbc {
url = "jdbc:mysql://localhost:3306/mydb"
driver = "com.mysql.cj.jdbc.Driver"
username = "root"
password = "password"
max_retries = 0
is_exactly_once = true
xa_data_source_class_name = "com.mysql.cj.jdbc.MysqlXADataSource"
generate_sink_sql = true
database = "mydb"
table = "target_table"
primary_keys = ["id"]
}
}
Not all databases support XA transactions. Verify that your database and JDBC driver both support XA before enabling this option.
How do I configure upsert (INSERT or UPDATE) behavior?
SeaTunnel only enters the upsert / update path after it has a final key set. That key can come from explicit primary_keys, or, when primary_keys is omitted, from upstream catalog metadata. If no primary key is available, SeaTunnel also tries to inherit the first unique key.
When a final key set exists and enable_upsert = true, SeaTunnel prefers the database-native upsert statement provided by the target dialect. For example, PostgreSQL generates INSERT ... ON CONFLICT (...) DO UPDATE (or DO NOTHING when every column is part of the key and there is nothing left to update):
sink {
jdbc {
url = "jdbc:postgresql://localhost:5432/sales"
driver = "org.postgresql.Driver"
username = "postgres"
password = "password"
generate_sink_sql = true
database = "sales"
table = "public.orders"
primary_keys = ["id"]
}
}
When a final key set exists but enable_upsert = false, SeaTunnel stops using native database upsert SQL and falls back to the row-kind-driven insert/update path:
INSERTrows are written as plain INSERTs- CDC
UPDATE_AFTERrows are written as UPDATEs - CDC
DELETErows are written as DELETEs
As a result, enable_upsert = false is not appropriate for ordinary batch imports that rely on duplicate-key overwrite behavior.
What happens if I do not configure primary_keys?
If primary_keys is not configured, SeaTunnel first tries to inherit the primary key from upstream catalog metadata. If there is no primary key, it then tries the first unique key.
JDBC Sink falls back to plain INSERT only when there is no explicit key and nothing usable can be inherited from upstream metadata. In that keyless mode, no database-native upsert SQL is generated, and the sink no longer uses row-kind-aware UPDATE / DELETE executors. For CDC inputs, the write path therefore effectively degrades to plain INSERT batching, and duplicate-key behavior depends entirely on the target table constraints.
When should I enable use_copy_statement?
use_copy_statement = true makes JDBC Sink prefer the COPY <table> (...) FROM STDIN WITH CSV path instead of regular INSERT / UPSERT SQL. This happens before the normal primary-key-based write path, so COPY is still chosen even if primary_keys is configured.
This option is mainly for high-volume PostgreSQL imports, and it has three important constraints:
- the JDBC driver connection must expose
getCopyAPI(), otherwise the job fails and tells you to switchuse_copy_statementback tofalse - it is not a replacement for
ON CONFLICT, so it does not provide duplicate-key overwrite semantics MAP,ARRAY, andROWtypes are not supported
How do I write to multiple tables in a single job?
Use table = "${table_name}" and database = "${schema_name}" as placeholders. SeaTunnel resolves these from the upstream record's metadata when used with CDC sources or multi-table configurations. Pair with generate_sink_sql = true for fully automatic SQL generation.
Why is my JDBC driver not found?
SeaTunnel does not bundle all JDBC drivers. For Spark and Flink, place the JAR in ${SEATUNNEL_HOME}/plugins/Jdbc/lib/ on every execution node. For Zeta, place it in ${SEATUNNEL_HOME}/lib/ on every SeaTunnel node and restart the affected processes. Common driver file names include:
- MySQL:
mysql-connector-j-8.x.x.jar - PostgreSQL:
postgresql-42.x.x.jar - Oracle:
ojdbc8.jar - SQL Server:
mssql-jdbc-12.x.x.jre11.jar
Changelog
Change Log
| Change | Commit | Version |
|---|---|---|
| [Fix][Connector-xugu] Fix several bugs in the xugu connector (#9820) | https://github.com/apache/seatunnel/commit/75c9adb280 | dev |
[Feature][Transform-V2] Support AT TIME ZONE statement for sql transform (#9784) | https://github.com/apache/seatunnel/commit/ad5278c5bb | dev |
| [Feature][Transform-V2] Support vector series sql function (#9765) | https://github.com/apache/seatunnel/commit/a40114cf7a | 2.3.12 |
| [Chore] fix typos filed -> field (#9757) | https://github.com/apache/seatunnel/commit/e3e1c67d29 | 2.3.12 |
| [Feature][Core] Add plugin directory support for each connector (#9650) | https://github.com/apache/seatunnel/commit/4beb2b9336 | 2.3.12 |
| [Improve][Core] Update apache common to apache common lang3 (#9694) | https://github.com/apache/seatunnel/commit/6e5737c1ec | 2.3.12 |
| [Improve][API] Optimize the enumerator API semantics and reduce lock calls at the connector level (#9671) | https://github.com/apache/seatunnel/commit/9212a77140 | 2.3.12 |
| [Fix][connector-jdbc] prevent precision loss in Float to BigDecimal conversion (#9670) | https://github.com/apache/seatunnel/commit/6e11285bf6 | 2.3.12 |
| [Fix][Connector-Jdbc] Supports reading and writing Postgres network dress types (#9618) | https://github.com/apache/seatunnel/commit/3dc79c1ddf | 2.3.12 |
| [improve] jdbc options (#9541) | https://github.com/apache/seatunnel/commit/d041e5fb32 | 2.3.12 |
| [Fix][Connector-Jdbc]Fixed Vertica data source cannot upsert data. (#9607) | https://github.com/apache/seatunnel/commit/7b4d05171b | 2.3.12 |
[Fix][Connectors-Jdbc] Postgres supports streaming and batch reading and writing of the interval data type (#9590) | https://github.com/apache/seatunnel/commit/58ab917024 | 2.3.12 |
| [Feature][Connectors-v2] Optimize the size of CDC JAR Files (#9546) | https://github.com/apache/seatunnel/commit/1dd19c6823 | 2.3.12 |
| [improve][Connector-jdbc] add comments when schema not include all columns (#9559) | https://github.com/apache/seatunnel/commit/02d2b69d85 | 2.3.12 |
| [Hotfix][Connector-Jdbc] Write MySQL to support set collection data type (#9553) | https://github.com/apache/seatunnel/commit/3836c97a62 | 2.3.12 |
| [Feature][Jdbc] Support read multiple tables by regular expressions (#9380) | https://github.com/apache/seatunnel/commit/670a52a918 | 2.3.12 |
| [bugfix][Connector-V2] Fixed the load driver inaccurate situation (#9468) | https://github.com/apache/seatunnel/commit/c6639e81fe | 2.3.12 |
| [Fix][Connector-V2] Fix OceanBase Oracle create unsupported data type (#9383) | https://github.com/apache/seatunnel/commit/f4178c72f1 | 2.3.12 |
| [improve][Connector-V2] delete jdbc param support_upsert_by_query_primary_key_exist (#9408) | https://github.com/apache/seatunnel/commit/d247fe1d8d | 2.3.12 |
| [Feature][Connector-V2] Jdbc mysql support read tinyint(1) to byte(tinyint) (#9373) | https://github.com/apache/seatunnel/commit/7b87aa6f12 | 2.3.12 |
| [Improve] JdbcInputFormat nextRecord Exception throw TableId (#9374) | https://github.com/apache/seatunnel/commit/484aef593d | 2.3.12 |
| [Feature][Connector-V2][JDBC] Add presto/trino dialect (#9388) | https://github.com/apache/seatunnel/commit/3cac2bd126 | 2.3.12 |
| [Feature][Connector-JDBC] Supprot read Oracle BLOB data as string instead of bytes (#9305) | https://github.com/apache/seatunnel/commit/454a88f81a | 2.3.11 |
| [Fix][Connector-jdbc] Fix postgresql sink trying to update unique key (#9293) (#9298) | https://github.com/apache/seatunnel/commit/d0c1de8357 | 2.3.11 |
| [Fix][Connector-V2] Fix oceanbase mysql jdbc sink create statement error (#9267) | https://github.com/apache/seatunnel/commit/79f8125ea6 | 2.3.11 |
| [Feature][Transform] Support define sink column type (#9114) | https://github.com/apache/seatunnel/commit/ab7119e507 | 2.3.11 |
| [Feature][Checkpoint] Add check script for source/sink state class serialVersionUID missing (#9118) | https://github.com/apache/seatunnel/commit/4f5adeb1c7 | 2.3.11 |
[Fix][API] Fixed not invoke the SinkAggregatedCommitter's init method (#9070) | https://github.com/apache/seatunnel/commit/df0d11d632 | 2.3.11 |
| [Fix][Connector-V2] Fix SqlServer create table when database with dot (#9007) | https://github.com/apache/seatunnel/commit/e09445c789 | 2.3.11 |
| [Fix][Connector-V2][OceanBase] oceanbase vector support simple vector index (#9072) | https://github.com/apache/seatunnel/commit/4140cd1d8f | 2.3.11 |
| [Improve][Connector-V2] Optimize dialect selection in jdbc (#8820) | https://github.com/apache/seatunnel/commit/92c62c5e63 | 2.3.11 |
| [Fix][JDBC] fix jdbc default connection parameter invalid (#8185) | https://github.com/apache/seatunnel/commit/f85eb78b37 | 2.3.11 |
| [Hotfix][Jdbc] Fix mysql tinyint(1) type mapping for TypeMapper (#9012) | https://github.com/apache/seatunnel/commit/5f85d7668a | 2.3.11 |
| [Feature][Jdbc] Add String type column split Support by charset-based splitting algorithm (#9002) | https://github.com/apache/seatunnel/commit/dbe41e74cd | 2.3.11 |
| [Fix][Paimon] nullable and comment attribute was lost during automatic table creation (#9020) | https://github.com/apache/seatunnel/commit/eb54fdd52c | 2.3.11 |
| [Fix][Connector-JDBC] Fix JDBC driver selection for data source connections (#8986) | https://github.com/apache/seatunnel/commit/a5aafa7301 | 2.3.11 |
| [Improve][Jdbc] Upgrade sap-hana driver from 2.14.7 to 2.23.10 (#9013) | https://github.com/apache/seatunnel/commit/9ba9f169be | 2.3.11 |
| [Feature][Jdbc] Support sink ddl for sqlserver #8114 (#8936) | https://github.com/apache/seatunnel/commit/30aa485b38 | 2.3.10 |
| [Fix][Connector-V2] Fix parse SqlServer JDBC Url error (#8784) | https://github.com/apache/seatunnel/commit/373d2162d3 | 2.3.10 |
| [Improve][Jdbc] Support upsert for opengauss (#8627) | https://github.com/apache/seatunnel/commit/56110bf392 | 2.3.10 |
| [Improve][Jdbc] Remove useless utils. (#8793) | https://github.com/apache/seatunnel/commit/36a7533e85 | 2.3.10 |
| [Improve][Jdbc] Improve catalog connection cache (#8626) | https://github.com/apache/seatunnel/commit/6205065b25 | 2.3.10 |
| [Fix][Connector-V2] Fix jdbc sink statement buffer wrong time to clear (#8653) | https://github.com/apache/seatunnel/commit/cf35eecdfc | 2.3.10 |
| [Feature][Jdbc] Support sink ddl for dameng (#8380) | https://github.com/apache/seatunnel/commit/5ff3427428 | 2.3.10 |
| [Improve] restruct connector common options (#8634) | https://github.com/apache/seatunnel/commit/f3499a6eeb | 2.3.10 |
| [Improve][Jdbc] Remove oracle 'v$database' query (#8571) | https://github.com/apache/seatunnel/commit/3cf09f61ca | 2.3.10 |
| [Fix][Connector-V2] Postgres support for multiple primary keys (#8526) | https://github.com/apache/seatunnel/commit/04db40d973 | 2.3.10 |
| [Feature][JDBC source] pg support char types (#8420) | https://github.com/apache/seatunnel/commit/776ac94478 | 2.3.9 |
| [Feature][Jdbc] Support sink ddl for postgresql (#8276) | https://github.com/apache/seatunnel/commit/353bbd21a1 | 2.3.9 |
| [Feature][Connector-V2] Support the jdbc connector for highgo db (#8282) | https://github.com/apache/seatunnel/commit/aa381cbfb4 | 2.3.9 |
| [Improve][Jdbc] Support nvarchar in dm (#8270) | https://github.com/apache/seatunnel/commit/2f1c54ee2e | 2.3.9 |
| [Improve][Connector-v2] Use regex to match filedName placeholders in jdbc sink (#8222) | https://github.com/apache/seatunnel/commit/c02d4fed36 | 2.3.9 |
| [Improve][Connector-V2] Support read comment when jdbc dialect without catalog (#8196) | https://github.com/apache/seatunnel/commit/567cd54de5 | 2.3.9 |
| [Improve][Connector-V2] The interface supports jdbc respects the target database field type (#8031) | https://github.com/apache/seatunnel/commit/1de056a9a4 | 2.3.9 |
| [Improve][dist]add shade check rule (#8136) | https://github.com/apache/seatunnel/commit/51ef800016 | 2.3.9 |
| [Improve][Jdbc] Improve ddl write validate (#8158) | https://github.com/apache/seatunnel/commit/9cdaacddd9 | 2.3.9 |
| [Feature][Jdbc] Add Jdbc default dialect for all jdbc series database without dialect (#8132) | https://github.com/apache/seatunnel/commit/399eabcd3f | 2.3.9 |
| [Improve][Jdbc] Refactor ddl change (#8134) | https://github.com/apache/seatunnel/commit/e1f0a238f7 | 2.3.9 |
[Feature][Core] Rename result_table_name/source_table_name to plugin_input/plugin_output (#8072) | https://github.com/apache/seatunnel/commit/c7bbd322db | 2.3.9 |
| [Improve][Connector-V2] Improve schema evolution on column insert after for mysql-jdbc (#8017) | https://github.com/apache/seatunnel/commit/3fb05da365 | 2.3.9 |
| [Feature][Core] Support cdc task ddl restore for zeta (#7463) | https://github.com/apache/seatunnel/commit/8e322281ed | 2.3.9 |
| [Feature][transform] transform support explode (#7928) | https://github.com/apache/seatunnel/commit/132278c06a | 2.3.9 |
| [Feature][Connector-v2] Support schema evolution for Oracle connector (#7908) | https://github.com/apache/seatunnel/commit/79406bcc2f | 2.3.9 |
| [Improve][Connector-V2] Improve jdbc merge table from path and query when type is decimal (#7917) | https://github.com/apache/seatunnel/commit/8baa012ced | 2.3.9 |
| [Fix][Connector-V2] Fix hana type loss of precision (#7912) | https://github.com/apache/seatunnel/commit/18dcca36cd | 2.3.9 |
| [Feature][Connector-V2] Jdbc DB2 support upsert SQL (#7879) | https://github.com/apache/seatunnel/commit/139919334d | 2.3.9 |
| [Improve][Jdbc] Optimize index name conflicts when create table for postgresql (#7875) | https://github.com/apache/seatunnel/commit/312ee866fb | 2.3.9 |
| [Improve][Jdbc] Support postgresql inet type. (#7820) | https://github.com/apache/seatunnel/commit/25b68b3623 | 2.3.9 |
| [Fix][Connector-V2]Oceanbase vector database is added as the source server (#7832) | https://github.com/apache/seatunnel/commit/258f931765 | 2.3.9 |
| [Feature][connector-v2]Support opengauss jdbc connnector using opengauss driver. (#7622) | https://github.com/apache/seatunnel/commit/bbf643772e | 2.3.9 |
| [Improve][Jdbc] Support save mode for the sink of jdbc-dm (#7814) | https://github.com/apache/seatunnel/commit/b87d732c81 | 2.3.9 |
| [Feature][Restapi] Allow metrics information to be associated to logical plan nodes (#7786) | https://github.com/apache/seatunnel/commit/6b7c53d03c | 2.3.9 |
| [Feature][Connector-V2] SqlServer support user-defined type (#7706) | https://github.com/apache/seatunnel/commit/fb89033273 | 2.3.8 |
| [Hotfix][CDC] Fix ddl duplicate execution error when config multi_table_sink_replica (#7634) | https://github.com/apache/seatunnel/commit/23ab3edbbb | 2.3.8 |
| [Feature][Connector-Paimon] Support dynamic bucket splitting improves Paimon writing efficiency (#7335) | https://github.com/apache/seatunnel/commit/bc0326cba8 | 2.3.8 |
| [Fix][Connector-V2] Fix jdbc test case failed (#7690) | https://github.com/apache/seatunnel/commit/4f5d27f625 | 2.3.8 |
| [Improve][Jdbc] Jdbc truncate table should check table not database (#7654) | https://github.com/apache/seatunnel/commit/0c0eb7e41b | 2.3.8 |
| [Feature][Connector-V2] jdbc saphana source tablepath support view and synonym (#7670) | https://github.com/apache/seatunnel/commit/7e0c20a488 | 2.3.8 |
| [Fix][Connector-v2] Throw Exception in sql query for JdbcCatalog in table or db exists query (#7651) | https://github.com/apache/seatunnel/commit/70ec59ce0e | 2.3.8 |
| [Fix][JDBC] Fix starrocks jdbc dialect catalog conflict with starrocks connector (#7578) | https://github.com/apache/seatunnel/commit/020aab422e | 2.3.8 |
| [Feature] Support tidb cdc connector source #7199 (#7477) | https://github.com/apache/seatunnel/commit/87ec786bd6 | 2.3.8 |
| [bugfix] fix oracle query table length (#7627) | https://github.com/apache/seatunnel/commit/2e002ce09b | 2.3.8 |
| [Hotfix][Connector-v2] Fix the NullPointerException for jdbc oracle which used the table_list (#7544) | https://github.com/apache/seatunnel/commit/555028217a | 2.3.8 |
| [Improve][Connector-v2] Support mysql 8.1/8.2/8.3 for jdbc (#7530) | https://github.com/apache/seatunnel/commit/657fe69b26 | 2.3.8 |
| [Improve][Connector-v2] Release resource in closeStatements even exception occurred in executeBatch (#7533) | https://github.com/apache/seatunnel/commit/590f7d110d | 2.3.8 |
| [Fix][Connector-V2] Fix jdbc query sql can not get table path (#7484) | https://github.com/apache/seatunnel/commit/8e0ca8f725 | 2.3.8 |
[Feature][Connector-V2] Add decimal_type_narrowing option in jdbc (#7461) | https://github.com/apache/seatunnel/commit/696f2948fa | 2.3.8 |
| [Improve][Connector-V2] update vectorType (#7446) | https://github.com/apache/seatunnel/commit/1bba72385b | 2.3.8 |
| [Improve][API] Move catalog open to SaveModeHandler (#7439) | https://github.com/apache/seatunnel/commit/8c2c5c79a1 | 2.3.8 |
| [FIX][E2E]Modify the OceanBase test case to the latest imageChange image (#7452) | https://github.com/apache/seatunnel/commit/6abb83deab | 2.3.8 |
| [Feature][Connector-V2][OceanBase] Support vector types on OceanBase (#7375) | https://github.com/apache/seatunnel/commit/a6b188d552 | 2.3.8 |
| [Improve][Connector-V2] Remove system table limit (#7391) | https://github.com/apache/seatunnel/commit/adf888e008 | 2.3.8 |
| [Fix] Fix oracle sample data from column error (#7340) | https://github.com/apache/seatunnel/commit/2130e0d5ad | 2.3.8 |
| [Improve][Connector-V2] Close all ResultSet after used (#7389) | https://github.com/apache/seatunnel/commit/853e973212 | 2.3.8 |
| [Hotifx][Jdbc] Fix MySQL unsupport 'ZEROFILL' column type (#7407) | https://github.com/apache/seatunnel/commit/7130382123 | 2.3.8 |
| [Improvement] add starrocks jdbc dialect (#7294) | https://github.com/apache/seatunnel/commit/b5140f598e | 2.3.8 |
| [Hotfix][Connector] Fix jdbc compile error (#7359) | https://github.com/apache/seatunnel/commit/2769ed5029 | 2.3.7 |
| [Fix][Connector-V2][OceanBase] Remove OceanBase catalog's dependency on mysql driver (#7311) | https://github.com/apache/seatunnel/commit/3130ae089e | 2.3.7 |
| [Improve][Jdbc] Skip all index when auto create table to improve performance of write (#7288) | https://github.com/apache/seatunnel/commit/dc3c23981b | 2.3.7 |
| [Improve][Jdbc] Remove MysqlType references in JdbcDialect (#7333) | https://github.com/apache/seatunnel/commit/16eeb1c123 | 2.3.7 |
| [Improve][Jdbc] Merge user config primary key when create table (#7313) | https://github.com/apache/seatunnel/commit/819c685651 | 2.3.7 |
| [Improve][Connector-v2] Optimize the way of databases and tables are checked for existence (#7261) | https://github.com/apache/seatunnel/commit/f012b2a6f0 | 2.3.7 |
| [Feature][Jdbc] Support hive compatibleMode add inceptor dialect (#7262) | https://github.com/apache/seatunnel/commit/31e59cdf82 | 2.3.6 |
| [Improve][Connector-v2] Optimize the count table rows for jdbc-oracle and oracle-cdc (#7248) | https://github.com/apache/seatunnel/commit/0d08b20061 | 2.3.6 |
| [Feature][Core] Support using upstream table placeholders in sink options and auto replacement (#7131) | https://github.com/apache/seatunnel/commit/c4ca74122c | 2.3.6 |
| [Fix] Fix Hana type converter decimal scale is 0 convert to int error (#7167) | https://github.com/apache/seatunnel/commit/6e33a97c86 | 2.3.6 |
| [Improve][Jdbc] Support write unicode text into sqlserver (#7159) | https://github.com/apache/seatunnel/commit/e44e8b93bc | 2.3.6 |
| [Improve][Jdbc] Remove user info in catalog-table options (#7178) | https://github.com/apache/seatunnel/commit/4e001be25c | 2.3.6 |
| [Improve][connector-v2-jdbc-mysql] Add support for MySQL 8.4 (#7151) | https://github.com/apache/seatunnel/commit/dbdbdf015b | 2.3.6 |
| [Feature][Connector-V2] Support jdbc hana catalog and type convertor (#6950) | https://github.com/apache/seatunnel/commit/d663398739 | 2.3.6 |
| [Improve] Change catalog table log to debug level (#7136) | https://github.com/apache/seatunnel/commit/b111d2f843 | 2.3.6 |
| [Improve][Connector-V2] Support schema evolution for mysql-cdc and mysql-jdbc (#6929) | https://github.com/apache/seatunnel/commit/cf91e51fc7 | 2.3.6 |
| [connector-jdbc][bugfix] fix sqlServer create table comment special string bug (#7024) | https://github.com/apache/seatunnel/commit/403564db13 | 2.3.6 |
| [bugfix] fix pgsql create table comment special string bug (#7022) | https://github.com/apache/seatunnel/commit/9fe844f62a | 2.3.6 |
| [connector-jdbc][bugfix] fix oracle create table comment special string bug (#7012) | https://github.com/apache/seatunnel/commit/a9e0f67873 | 2.3.6 |
| [bugfix] fix mysql create table comment special string bug (#6998) | https://github.com/apache/seatunnel/commit/904e9cf785 | 2.3.6 |
| [Improve][Jdbc]sink sql support custom field.(#6515) (#6525) | https://github.com/apache/seatunnel/commit/ef3e61dbc4 | 2.3.6 |
| [Feature][Jdbc] Support redshift catalog (#6992) | https://github.com/apache/seatunnel/commit/8d5cbcee74 | 2.3.6 |
| [Improve][Connector-V2] Clean key name in catalog table (#6942) | https://github.com/apache/seatunnel/commit/a399ef48c6 | 2.3.6 |
| [Improve][Zeta] Move SaveMode behavior to master (#6843) | https://github.com/apache/seatunnel/commit/80cf91318d | 2.3.6 |
| [Improve][Jdbc] Quotes the identifier for table path (#6951) | https://github.com/apache/seatunnel/commit/d70ec61f35 | 2.3.6 |
| [Hotfix][Jdbc] Fix oracle savemode create table (#6651) | https://github.com/apache/seatunnel/commit/4b6c13e8fc | 2.3.6 |
| [Improve][JDBC Source] Fix Split can not be cancel (#6825) | https://github.com/apache/seatunnel/commit/ee3b7c3723 | 2.3.6 |
| [Feature][Doris] Add Doris type converter (#6354) | https://github.com/apache/seatunnel/commit/5189991843 | 2.3.6 |
| [Hotfix][Jdbc/CDC] Fix postgresql uuid type in jdbc read (#6684) | https://github.com/apache/seatunnel/commit/868ba4d7c7 | 2.3.6 |
| [Improve][Connector] Add some sqlserver IDENTITY type for catalog (#6822) | https://github.com/apache/seatunnel/commit/f698396555 | 2.3.6 |
| [Feature][Jdbc] Support the jdbc connector for InterSystems IRIS (#6797) | https://github.com/apache/seatunnel/commit/46600969bb | 2.3.6 |
| [Fix][MySQL]: Fix MySqlTypeConverter could not be instantiated (#6781) | https://github.com/apache/seatunnel/commit/a5609d600e | 2.3.6 |
| [Hotfix][Jdbc] Fix table/query columns order merge for jdbc catalog (#6771) | https://github.com/apache/seatunnel/commit/df1954d520 | 2.3.6 |
| [Fix] Fix Oracle type converter handle negative scale in number type (#6758) | https://github.com/apache/seatunnel/commit/6d710690c5 | 2.3.6 |
| [Improve][mysql-cdc] Support mysql 5.5 versions (#6710) | https://github.com/apache/seatunnel/commit/058f5594a3 | 2.3.6 |
| [Improve][Jdbc] Add quote identifier for sql (#6669) | https://github.com/apache/seatunnel/commit/849d748d3d | 2.3.5 |
| [Improve][Jdbc] Increase tyepe converter when auto creating tables (#6617) | https://github.com/apache/seatunnel/commit/cc660206d8 | 2.3.5 |
| [feature][connector-v2] add xugudb connector (#6561) | https://github.com/apache/seatunnel/commit/80f392afbb | 2.3.5 |
| [Hotfix] Fix DEFAULT TABLE problem (#6352) | https://github.com/apache/seatunnel/commit/cdb1856e84 | 2.3.5 |
| [Improve] Improve MultiTableSinkWriter prepare commit performance (#6495) | https://github.com/apache/seatunnel/commit/2086b0e8a6 | 2.3.5 |
| [Improve][JDBC] Optimized code style for getting jdbc field types (#6583) | https://github.com/apache/seatunnel/commit/ddca95f32c | 2.3.5 |
| [Improve] Add SaveMode log of process detail (#6375) | https://github.com/apache/seatunnel/commit/b0d70ce224 | 2.3.5 |
| [Improve][Jdbc] Support custom case-sensitive config for dameng (#6510) | https://github.com/apache/seatunnel/commit/d6dcb03bf3 | 2.3.5 |
| feat: jdbc support copy in statement. (#6443) | https://github.com/apache/seatunnel/commit/ca4a65fc00 | 2.3.5 |
| [Improve][Jdbc] Using varchar2 datatype store string in oracle (#6392) | https://github.com/apache/seatunnel/commit/14405fa8d4 | 2.3.5 |
| [Improve][API] Unify type system api(data & type) (#5872) | https://github.com/apache/seatunnel/commit/b38c7edcc9 | 2.3.5 |
| Fix Jdbc sink target table name error (#6269) | https://github.com/apache/seatunnel/commit/2f62235e38 | 2.3.4 |
| [Improve][JDBC] Use PreparedStatement to sample data from column (#6242) | https://github.com/apache/seatunnel/commit/bd0e66d533 | 2.3.4 |
| [Improve][JDBC-sink] Improve query Approximate Total Row Count of a Table (#5972) | https://github.com/apache/seatunnel/commit/8156036a2f | 2.3.4 |
| [Feature][JDBC、CDC] Support Short and Byte Type in spliter (#6027) | https://github.com/apache/seatunnel/commit/6f8d0a5040 | 2.3.4 |
[Improve] Support int identity type in sql server (#6186) | https://github.com/apache/seatunnel/commit/1a8da1c843 | 2.3.4 |
| [Bugfix][JDBC、CDC] Fix Spliter Error in Case of Extensive Duplicate Data (#6026) | https://github.com/apache/seatunnel/commit/635c24e8b2 | 2.3.4 |
| [Feature][Connector-V2][Postgres-cdc]Support for Postgres cdc (#5986) | https://github.com/apache/seatunnel/commit/97438b9402 | 2.3.4 |
| Add date type and float type column split support (#6160) | https://github.com/apache/seatunnel/commit/b9a62e5c3f | 2.3.4 |
[Improve] Extend SupportResourceShare to spark/flink (#5847) | https://github.com/apache/seatunnel/commit/c69da93b87 | 2.3.4 |
[Feature] Support uuid in postgres jdbc (#6185) | https://github.com/apache/seatunnel/commit/f56855098b | 2.3.4 |
| [Feature][Connector-V2][Oracle-cdc]Support for oracle cdc (#5196) | https://github.com/apache/seatunnel/commit/aaef22b31b | 2.3.4 |
| [Feature][Connector] update pgsql catalog for save mode (#6080) | https://github.com/apache/seatunnel/commit/84ce516929 | 2.3.4 |
| [Hotfix][Jdbc] Fix dameng catalog query table sql (#6141) | https://github.com/apache/seatunnel/commit/413fa74500 | 2.3.4 |
| [improve][catalog-postgres] Improve get column sql compatibility (#5664) | https://github.com/apache/seatunnel/commit/23ce592ad2 | 2.3.4 |
| [Feature][Connector] update oracle catalog for save mode (#6092) | https://github.com/apache/seatunnel/commit/dfbf92769c | 2.3.4 |
| [Feature][Connectors-V2][Jdbc] Supports Sqlserver Niche Data Types (#6122) | https://github.com/apache/seatunnel/commit/6673f6f771 | 2.3.4 |
| [Improve][Connector-V2][Jdbc] Shade hikari in jdbc connector (#6116) | https://github.com/apache/seatunnel/commit/dd698c95bf | 2.3.4 |
| [Feature][Connector] update sqlserver catalog for save mode (#6086) | https://github.com/apache/seatunnel/commit/edcaacecb1 | 2.3.4 |
| [Feature][Connector-V2][PostgresSql] add JDBC source support string type as partition key (#6079) | https://github.com/apache/seatunnel/commit/3522eb157c | 2.3.4 |
| [Hotfix][Jdbc] Fix jdbc setFetchSize error (#6005) | https://github.com/apache/seatunnel/commit/d41af8a6ed | 2.3.4 |
| Support using multiple hadoop account (#5903) | https://github.com/apache/seatunnel/commit/d69d88d1aa | 2.3.4 |
| [Feature] Add unsupported datatype check for all catalog (#5890) | https://github.com/apache/seatunnel/commit/b9791285a0 | 2.3.4 |
| [Hotfix][Split] Fix split key not support BigInteger type | https://github.com/apache/seatunnel/commit/5adf5d2b9a | 2.3.4 |
| [Improve] Replace SeaTunnelRowType with TableSchema in the JdbcRowConverter | https://github.com/apache/seatunnel/commit/1cc1b1b8cd | 2.3.4 |
| [Hotfix][Jdbc] Fix cdc updates were not filtering same primary key (#5923) | https://github.com/apache/seatunnel/commit/38d3b85814 | 2.3.4 |
| [Improve]Change System.out.println to log output. (#5912) | https://github.com/apache/seatunnel/commit/bbedb07a9c | 2.3.4 |
| [Bug] Fix Hive-Jdbc use krb5 overwrite kerberosKeytabPath (#5891) | https://github.com/apache/seatunnel/commit/f0b6092c15 | 2.3.4 |
| Reduce the time cost of getCatalogTable in jdbc (#5908) | https://github.com/apache/seatunnel/commit/51a3737578 | 2.3.4 |
| [Improve] Improve Jdbc connector error message when datatype unsupported (#5864) | https://github.com/apache/seatunnel/commit/69f79af3a4 | 2.3.4 |
[Improve] Rename getCountSql to getExistDataSql (#5838) | https://github.com/apache/seatunnel/commit/2233b3a381 | 2.3.4 |
| [Fix] Fix read from Oracle Date type value lose time (#5814) | https://github.com/apache/seatunnel/commit/2d704e36bd | 2.3.4 |
| [Improve][JdbcSource] Optimize catalog-table metadata merge logic (#5828) | https://github.com/apache/seatunnel/commit/7d8028a60b | 2.3.4 |
| [Improve][Common] Introduce new error define rule (#5793) | https://github.com/apache/seatunnel/commit/9d1b2582b2 | 2.3.4 |
| [Feature][Hive JDBC Source] Support Hive JDBC Source Connector (#5424) | https://github.com/apache/seatunnel/commit/a64e177d06 | 2.3.4 |
[Improve] Remove use SeaTunnelSink::getConsumedType method and mark it as deprecated (#5755) | https://github.com/apache/seatunnel/commit/8de7408100 | 2.3.4 |
[Improve][Connector] Add field name to DataTypeConvertor to improve error message (#5782) | https://github.com/apache/seatunnel/commit/ab60790f0d | 2.3.4 |
| [Feature][Oracle] Support XMLTYPE data integration #5716 (#5723) | https://github.com/apache/seatunnel/commit/620f081adb | 2.3.4 |
| [Fix] Fix Postgres create table test case failed (#5778) | https://github.com/apache/seatunnel/commit/b98b6bcee3 | 2.3.4 |
| [Improve][Jdbc] Fix database identifier (#5756) | https://github.com/apache/seatunnel/commit/dbfc8a670a | 2.3.4 |
| [Fix] Fix PG will not create index when using auto create table #5721 | https://github.com/apache/seatunnel/commit/e5fd88dbe7 | 2.3.4 |
[Improve] Remove all useless prepare, getProducedType method (#5741) | https://github.com/apache/seatunnel/commit/ed94fffbb9 | 2.3.4 |
| [feature][connector-jdbc]Add Save Mode function and Connector-JDBC (MySQL) connector has been realized (#5663) | https://github.com/apache/seatunnel/commit/eff17ccbe5 | 2.3.4 |
| [Bug][connector-jdbc] Nullable Column source have null data could be unexpected results. (#5560) | https://github.com/apache/seatunnel/commit/3f429e1f0a | 2.3.4 |
[Improve] Add default implement for SeaTunnelSink::setTypeInfo (#5682) | https://github.com/apache/seatunnel/commit/86cba87450 | 2.3.4 |
| [BUG][Connector-V2][Jdbc] support postgresql xml type (#5724) | https://github.com/apache/seatunnel/commit/5f5d4da13f | 2.3.4 |
| [Improve][E2E][Jdbc] Enable IT case for Oceanbase Mysql mode (#5697) | https://github.com/apache/seatunnel/commit/879c2aa07c | 2.3.4 |
| [Feature][Jdbc] Support read multiple tables (#5581) | https://github.com/apache/seatunnel/commit/33fa8ff248 | 2.3.4 |
| [Feature] Support multi-table sink (#5620) | https://github.com/apache/seatunnel/commit/81ac173189 | 2.3.4 |
| [Improve] Remove catalog tag for config file (#5645) | https://github.com/apache/seatunnel/commit/dc509aa080 | 2.3.4 |
| [Feature][Jdbc] Supporting more ways to configure connection parameters. (#5388) | https://github.com/apache/seatunnel/commit/d31e9478f7 | 2.3.4 |
| [Feature][Connector-V2][Jdbc] Add OceanBase catalog (#5439) | https://github.com/apache/seatunnel/commit/cd4b7ff7d2 | 2.3.4 |
| [BUGFIX][Catalog] oracle catalog create table repeat and oracle pg null point (#5517) | https://github.com/apache/seatunnel/commit/103da931f3 | 2.3.4 |
| Support config column/primaryKey/constraintKey in schema (#5564) | https://github.com/apache/seatunnel/commit/eac76b4e50 | 2.3.4 |
[Improve] Refactor CatalogTable and add SeaTunnelSource::getProducedCatalogTables (#5562) | https://github.com/apache/seatunnel/commit/41173357f8 | 2.3.4 |
| [Feature][Jdbc] Add Dameng catalog (#5451) | https://github.com/apache/seatunnel/commit/c23070919c | 2.3.4 |
| [Feature] Add tidb datatype convertor (#5440) | https://github.com/apache/seatunnel/commit/61391bda9f | 2.3.4 |
| [Feature][Connector-V2] jdbc connector supports Kingbase database (#4803) | https://github.com/apache/seatunnel/commit/9538567159 | 2.3.4 |
| [Feature][Catalog] Catalog add Case Conversion Definition (#5328) | https://github.com/apache/seatunnel/commit/7b5b28bdbe | 2.3.4 |
| [Feature][Jdbc] Jdbc database support identifier (#5089) | https://github.com/apache/seatunnel/commit/38b6d6e4bb | 2.3.4 |
| [Improve][Connector-v2][Jdbc] Refactor AbstractJdbcCatalog (#5096) | https://github.com/apache/seatunnel/commit/dde3104f76 | 2.3.4 |
| [Improve][CheckStyle] Remove useless 'SuppressWarnings' annotation of checkstyle. (#5260) | https://github.com/apache/seatunnel/commit/51c0d709ba | 2.3.4 |
| [Hotfix] Fix com.google.common.base.Preconditions to seatunnel shade one (#5284) | https://github.com/apache/seatunnel/commit/ed5eadcf73 | 2.3.3 |
| [bug][jdbc][oracle]Fix the Oracle number type mapping problem (#5209) | https://github.com/apache/seatunnel/commit/9d3c3de90d | 2.3.3 |
| [BUG][Connector-V2][Jdbc] support postgresql json type (#5194) | https://github.com/apache/seatunnel/commit/7a862d14b7 | 2.3.3 |
| [Improve][Connector-V2] Remove scheduler in JDBC sink #4736 (#5168) | https://github.com/apache/seatunnel/commit/3b0a393145 | 2.3.3 |
| [CI] Split updated modules integration test for part 5 (#5208) | https://github.com/apache/seatunnel/commit/18f14d6087 | 2.3.3 |
| [Bug][connector-v2] PostgreSQL versions below 9.5 are compatible use cdc sync problem (#5120) | https://github.com/apache/seatunnel/commit/9af696a1dd | 2.3.3 |
| [Improve][Connector-v2][Jdbc] check url not null throw friendly message (#5097) | https://github.com/apache/seatunnel/commit/b0815f2a95 | 2.3.3 |
| [Feature][Catalog] Add JDBC Catalog auto create table (#4917) | https://github.com/apache/seatunnel/commit/63eb137671 | 2.3.3 |
| [Feature][CDC] Support tables without primary keys (with unique keys) (#163) (#5150) | https://github.com/apache/seatunnel/commit/32b7f2b690 | 2.3.3 |
| [Hotfix][Connector][Jdbc] Fix the problem of JdbcOutputFormat database connection leak (#4802) | https://github.com/apache/seatunnel/commit/4cc10e83e7 | 2.3.3 |
| [Feature][JDBC Sink] Add DM upsert support (#5073) | https://github.com/apache/seatunnel/commit/5e8d982e25 | 2.3.3 |
| [Improve] Improve savemode api (#4767) | https://github.com/apache/seatunnel/commit/4acd370d48 | 2.3.3 |
| [Feature][Connector-V2] JDBC source support string type as partition key (#4947) | https://github.com/apache/seatunnel/commit/d1d2677658 | 2.3.3 |
| [Feature][Connector-V2][Jdbc] Add oceanbase dialect factory (#4989) | https://github.com/apache/seatunnel/commit/7ba11cecdf | 2.3.3 |
| Fix XA Transaction bug (#5020) | https://github.com/apache/seatunnel/commit/852fe104bc | 2.3.3 |
| [Improve][CDC]Remove driver for cdc connector (#4952) | https://github.com/apache/seatunnel/commit/b65f40c3c9 | 2.3.3 |
| [Improve] Documentation and partial word optimization. (#4936) | https://github.com/apache/seatunnel/commit/6e8de0e2a6 | 2.3.3 |
| [Improve][Connector-V2][Jdbc-Source] Support for Decimal types as splict keys (#4634) | https://github.com/apache/seatunnel/commit/d56bb1ba1c | 2.3.3 |
| [Bugfix][zeta] Fix the deadlock issue with JDBC driver loading (#4878) | https://github.com/apache/seatunnel/commit/c30a2a1b1c | 2.3.2 |
| [Hotfix][Jdbc] Fix XA DataSource crash(Oracle/Dameng/SqlServer) (#4866) | https://github.com/apache/seatunnel/commit/bde19b6377 | 2.3.2 |
| [Feature][Connector-v2] Add Snowflake Source&Sink connector (#4470) | https://github.com/apache/seatunnel/commit/06c59a25f3 | 2.3.2 |
| [Hotfix][Connector-V2][Jdbc] Fix the error of extracting primary key column in sink (#4815) | https://github.com/apache/seatunnel/commit/0eff3aeed0 | 2.3.2 |
| [Hotfix][Connector][Jdbc] Fix reconnect throw close statement exception (#4801) | https://github.com/apache/seatunnel/commit/ea3bc1a673 | 2.3.2 |
| [Hotfix][Connector][Jdbc] Fix sqlserver system table case sensitivity (#4806) | https://github.com/apache/seatunnel/commit/2ca7426d22 | 2.3.2 |
| [Hotfix][Jdbc][Oracle] Fix oracle sql table identifier (#4754) | https://github.com/apache/seatunnel/commit/84cb51ff83 | 2.3.2 |
| [Improve][Jdbc] Populate primary key when jdbc sink is created using CatalogTable (#4755) | https://github.com/apache/seatunnel/commit/4af3bf9015 | 2.3.2 |
| [Feature][PostgreSQL-jdbc] Supports GEOMETRY data type for PostgreSQL… (#4673) | https://github.com/apache/seatunnel/commit/a5af4d9b6e | 2.3.2 |
| [Improve][Core] Add check of sink and source config to avoid null pointer exception. (#4734) | https://github.com/apache/seatunnel/commit/8f66ce96cb | 2.3.2 |
| [Hotfix][JDBC-SINK] Fix TiDBCatalog without open (#4718) | https://github.com/apache/seatunnel/commit/34a7f3eaa4 | 2.3.2 |
| [Feature][E2E] Add mysql-cdc e2e testcase (#4639) | https://github.com/apache/seatunnel/commit/87001dfd16 | 2.3.2 |
| [Hotfix][JDBC Sink] Fix JDBC Sink oom bug (#4690) | https://github.com/apache/seatunnel/commit/08b6f992aa | 2.3.2 |
| Improve the option rule for jdbc sink (#4694) | https://github.com/apache/seatunnel/commit/a6b3704414 | 2.3.2 |
| [feature][catalog] Support for multiplexing connections (#4550) | https://github.com/apache/seatunnel/commit/41277d7f78 | 2.3.2 |
| [Bugfix][Jdbc-Mysql Mysql-CDC] Fix MySQL BIT type incorrectly converted to Boolean type (#4671) | https://github.com/apache/seatunnel/commit/89b0099ff4 | 2.3.2 |
| [Hotfix]Jdbc[SqlServer] Fix sqlserver jdbc url parse (#4697) | https://github.com/apache/seatunnel/commit/b24c3226ec | 2.3.2 |
| Revert "[Improve][Catalog] refactor catalog (#4540)" (#4628) | https://github.com/apache/seatunnel/commit/2d1933195d | 2.3.2 |
| [Feature][Connector][Jdbc] Add DataTypeConvertor for JDBC-Postgres (#4575) | https://github.com/apache/seatunnel/commit/91f5125976 | 2.3.2 |
| [Improve][Catalog] refactor catalog (#4540) | https://github.com/apache/seatunnel/commit/b0a701cb83 | 2.3.2 |
| [Bug][JDBC Source] fix split exception when source table is empty (#4570) | https://github.com/apache/seatunnel/commit/c73b9331ce | 2.3.2 |
| [Feature][Connector][Jdbc] Add vertica connector. (#4303) | https://github.com/apache/seatunnel/commit/e6b4f98721 | 2.3.2 |
| [Hotfix][Catalog] Filter out unavailable constrain keys (#4557) | https://github.com/apache/seatunnel/commit/5e5859546a | 2.3.2 |
| [Hotfix][Connector-V2][Jdbc] Simple sql has the highest priority (#4548) | https://github.com/apache/seatunnel/commit/74d4d24858 | 2.3.2 |
| [Improve][Connector-V2][Jdbc] Jdbc source supports factory SPI (#4264) | https://github.com/apache/seatunnel/commit/a97f33797d | 2.3.2 |
| [Jdbc][Chore] improve the exception message when primary key not found in row (#4474) | https://github.com/apache/seatunnel/commit/06fa850da9 | 2.3.2 |
| [hotfix][JDBC] Fix the table name is not automatically obtained when multiple tables (#4514) | https://github.com/apache/seatunnel/commit/c84d6f8d11 | 2.3.2 |
| [Chore][Jdbc] add the log for sql and update some style (#4475) | https://github.com/apache/seatunnel/commit/a9e6503045 | 2.3.2 |
| [Hotfix][Connector-V2][Jdbc] Set default value to false of JdbcOption: generate_sink_sql (#4471) | https://github.com/apache/seatunnel/commit/7da11c2f44 | 2.3.2 |
| [feature][jdbc][TiDB] add TiDB catalog (#4438) | https://github.com/apache/seatunnel/commit/9a32db6fc0 | 2.3.2 |
| [Hotfix][Connector] Fix sqlserver catalog (#4441) | https://github.com/apache/seatunnel/commit/8540c7f9f3 | 2.3.2 |
| [Feature][CDC][SqlServer] Support multi-table read (#4377) | https://github.com/apache/seatunnel/commit/c4e3f2dc03 | 2.3.2 |
| [Improve][JdbcSink]Fix connection failure caused by connection timeout. (#4322) | https://github.com/apache/seatunnel/commit/e1f6d3b3fd | 2.3.2 |
| [Hotfix][Connector-V2][Jdbc] Field aliases are not supported in the query of jdbc source. (#4158) (#4210) | https://github.com/apache/seatunnel/commit/3d7ff831f9 | 2.3.1 |
| Change file type to file_format_type in file source/sink (#4249) | https://github.com/apache/seatunnel/commit/973a2fae3c | 2.3.1 |
| Change redshift type to lowercase (#4248) | https://github.com/apache/seatunnel/commit/10447ae103 | 2.3.1 |
| Add redshift datatype convertor (#4245) | https://github.com/apache/seatunnel/commit/b19011517f | 2.3.1 |
| [improve][zeta] fix zeta bugs | https://github.com/apache/seatunnel/commit/3a82e8b39f | 2.3.1 |
| [Improve] Support MySqlCatalog Use JDBC URL With Custom Suffix | https://github.com/apache/seatunnel/commit/210d0ff1f8 | 2.3.1 |
| [hotfix] fixed jdbc IT error | https://github.com/apache/seatunnel/commit/dd20af0a9e | 2.3.1 |
| Merge branch 'dev' into merge/cdc | https://github.com/apache/seatunnel/commit/4324ee1912 | 2.3.1 |
| [Improve][Project] Code format with spotless plugin. | https://github.com/apache/seatunnel/commit/423b583038 | 2.3.1 |
| [improve][jdbc] use ReadonlyConfig instead of Config (#4236) | https://github.com/apache/seatunnel/commit/c90c58e243 | 2.3.1 |
| [Improve][Jdbc-sink] add database field to sink config (#4199) | https://github.com/apache/seatunnel/commit/ec368902f4 | 2.3.1 |
| [improve][jdbc] Reduce jdbc options configuration (#4218) | https://github.com/apache/seatunnel/commit/ddd8f808b5 | 2.3.1 |
| Fix mysql get default value (#4204) | https://github.com/apache/seatunnel/commit/6848434f2d | 2.3.1 |
| [hotfix][zeta] fix zeta multi-table parser error (#4193) | https://github.com/apache/seatunnel/commit/98f2ad0c19 | 2.3.1 |
| [Improve] Remove AUTO_COMMIT To Optional In JDBC OptionRule (#4194) | https://github.com/apache/seatunnel/commit/9d088017a3 | 2.3.1 |
| [Improve][Connector-V2] [StarRocks] Starrocks Support Auto Create Table (#4177) | https://github.com/apache/seatunnel/commit/7e0008e6fb | 2.3.1 |
| [improve][catalog][jdbc] Add MySQL catalog factory (#4168) | https://github.com/apache/seatunnel/commit/95e3cbf875 | 2.3.1 |
| [Improve][build] Give the maven module a human readable name (#4114) | https://github.com/apache/seatunnel/commit/d7cd601051 | 2.3.1 |
| Add convertor factory (#4119) | https://github.com/apache/seatunnel/commit/cbdea45d95 | 2.3.1 |
| Add ElasticSearch catalog (#4108) | https://github.com/apache/seatunnel/commit/9ee4d8394c | 2.3.1 |
| Add Kafka catalog (#4106) | https://github.com/apache/seatunnel/commit/34f1f21e48 | 2.3.1 |
| [Improve][Project] Code format with spotless plugin. (#4101) | https://github.com/apache/seatunnel/commit/a2ab166561 | 2.3.1 |
| Add DataTypeConvertor in Catalog (#4094) | https://github.com/apache/seatunnel/commit/840c3e5eb4 | 2.3.1 |
| [Feature][Catalog] Support create/drop table, create/drop database in catalog (#4075) | https://github.com/apache/seatunnel/commit/d8a0be84ca | 2.3.1 |
| [Bug][Connector-V2][Jdbc] Fixed no exception throwing problem (#3957) | https://github.com/apache/seatunnel/commit/6ab266e594 | 2.3.1 |
| [Bug][CDC] Fix jdbc sink generate update sql (#3940) | https://github.com/apache/seatunnel/commit/233465d4e4 | 2.3.1 |
| [Improve][JDBC] improve jdbc sink option (#3864) | https://github.com/apache/seatunnel/commit/768a9300e8 | 2.3.1 |
| Fix Source Class Support Parallelism judge & Add UT for it (#3878) | https://github.com/apache/seatunnel/commit/ce85a8c68b | 2.3.1 |
| [Feature][Connector] add get source method to all source connector (#3846) | https://github.com/apache/seatunnel/commit/417178fb84 | 2.3.1 |
| [Feature][Connector-V2] Jdbc connector support SAP HANA. (#3017) | https://github.com/apache/seatunnel/commit/fe0180fab2 | 2.3.1 |
| [Feature][API & Connector & Doc] add parallelism and column projection interface (#3829) | https://github.com/apache/seatunnel/commit/b9164b8ba1 | 2.3.1 |
| [Improve][JDBC Connector]improve option rule (#3802) | https://github.com/apache/seatunnel/commit/139256741a | 2.3.1 |
| [Hotfix][Jdbc Sink] fix xa transaction commit failure on pipeline restore (#3809) | https://github.com/apache/seatunnel/commit/39dae4cfd9 | 2.3.1 |
| [Improve][Connector-V2][JDBC] Add exactly-once for JDBC source connector (#3750) | https://github.com/apache/seatunnel/commit/5328e9d847 | 2.3.1 |
| [Improve][Connector-v2] Remove unused options for jdbc source factory (#3794) | https://github.com/apache/seatunnel/commit/861004d309 | 2.3.1 |
| [Feature][Connector-jdbc] Fix JDBC Connector Throw Exception Error. (#3796) | https://github.com/apache/seatunnel/commit/38646b11b8 | 2.3.1 |
| [hotfix][ST-Engine] fix jdbc connector exactly-once null pointer (#3730) | https://github.com/apache/seatunnel/commit/0c5986fbec | 2.3.0 |
| [Improve][connector-jdbc] Add config item enable upsert by query (#3708) | https://github.com/apache/seatunnel/commit/e1f951f782 | 2.3.0 |
| [Hotfix][connector-v2] fix SemanticXidGenerator#generateXid indexOutOfBounds #3701 (#3705) | https://github.com/apache/seatunnel/commit/f351ceaf4b | 2.3.0 |
| [Hotfix][Connector-V2][jdbc] fix jdbc connection reset bug (#3670) | https://github.com/apache/seatunnel/commit/6fe0e6aece | 2.3.0 |
| [Improve][Connector-V2][JDBC] Unified exception for JDBC source & sink (#3598) | https://github.com/apache/seatunnel/commit/865ca2bba9 | 2.3.0 |
| [Connector][JDBC]Support Redshift sink and source (#3615) | https://github.com/apache/seatunnel/commit/8d9d8638d2 | 2.3.0 |
| [Improve][Connectors-V2][jdbc] Adapts to multiple versions of Flink #3589 | https://github.com/apache/seatunnel/commit/e77fdbbef7 | 2.3.0 |
| [Hotfix][OptionRule] Fix option rule about all connectors (#3592) | https://github.com/apache/seatunnel/commit/226dc6a119 | 2.3.0 |
| [Feature][Connector-V2][Doris]Add Doris Source & Sink connector (#3586) | https://github.com/apache/seatunnel/commit/3d46b79614 | 2.3.0 |
| [Feature][Connector-V2][Teradata] Add Teradata Source And Sink Connector | https://github.com/apache/seatunnel/commit/3a095d30fd | 2.3.0 |
| [Feature][Connector-V2][JDBC] support sqlite Source & Sink (#3089) | https://github.com/apache/seatunnel/commit/a73bb3e714 | 2.3.0 |
| Bump postgresql in /seatunnel-connectors-v2/connector-jdbc (#3559) | https://github.com/apache/seatunnel/commit/c8dfdf3e46 | 2.3.0 |
| [feature][connector][cdc] add SeaTunnelRowDebeziumDeserializeSchema (#3499) | https://github.com/apache/seatunnel/commit/ff44db116e | 2.3.0 |
| [JDBC][ORACLE] Improve Oracle Type to SeaTunnel Type Mapping (#3486) | https://github.com/apache/seatunnel/commit/8fe0dda6e2 | 2.3.0 |
| [JDBC][Config] Add JDBC Fetch Size Config And Custom Postgres PrepareStatement (#3478) | https://github.com/apache/seatunnel/commit/d60a705f5d | 2.3.0 |
| [feature][connector][jdbc] expose configurable options in JDBC (#3410) | https://github.com/apache/seatunnel/commit/72b8a73cab | 2.3.0 |
| [feature][connector][jdbc] Support write cdc changelog event in jdbc sink (#3444) | https://github.com/apache/seatunnel/commit/b12a908f01 | 2.3.0 |
| [Improve][Connector-v2][Jdbc] Add AutoCommit to jdbcConfig (#3453) | https://github.com/apache/seatunnel/commit/cfb1e97853 | 2.3.0 |
| [Improve][Connector-v2] Unset AutoCommit default to true (#3451) | https://github.com/apache/seatunnel/commit/439f686d92 | 2.3.0 |
| [Feature][connector-v2] add tablestore source and sink (#3309) | https://github.com/apache/seatunnel/commit/ebebf0b633 | 2.3.0 |
| Close jdbc connection after use. (#3358) | https://github.com/apache/seatunnel/commit/219fea517c | 2.3.0 |
| [Improve][Engine] Improve Engine performance. (#3216) | https://github.com/apache/seatunnel/commit/7393c47327 | 2.3.0 |
| [Bug][Connector-V2][JDBC]fix jdbc split bug (#3220) | https://github.com/apache/seatunnel/commit/40d67ab902 | 2.3.0 |
| [Feature][Connector-V2][JDBC] Support DB2 Source & Sink (#2410) | https://github.com/apache/seatunnel/commit/bf1ef69e84 | 2.3.0 |
| update org.postgresql:postgresql 42.3.3 to 42.4.1 (#3097) | https://github.com/apache/seatunnel/commit/2852516490 | 2.3.0 |
| [Feature][Connector-V2][Jdbc] support gbase 8a (#3026) | https://github.com/apache/seatunnel/commit/dc6e85d06f | 2.3.0-beta |
| [Bug][sqlserver] timestamp convert exception (#3024) | https://github.com/apache/seatunnel/commit/99ac1a655e | 2.3.0-beta |
| [Feature][Connector-V2] oracle connector (#2550) | https://github.com/apache/seatunnel/commit/384ece1913 | 2.3.0-beta |
| [Improve][Connector-v2][jdbc] Support for specify number of partitions when parallel reading (#2950) | https://github.com/apache/seatunnel/commit/fc284ac32e | 2.3.0-beta |
| [Feature][Connector-V2] add sqlserver connector (#2646) | https://github.com/apache/seatunnel/commit/05d105dea3 | 2.3.0-beta |
| [Improve][e2e] Unified e2e IT for DaMengDB (#2946) | https://github.com/apache/seatunnel/commit/15636bdea1 | 2.3.0-beta |
| [Improve][e2e] modify DM-driver by downLoad and add the value comparison of all columns (#2772) | https://github.com/apache/seatunnel/commit/f3ff39bdfe | 2.3.0-beta |
| [Improve][e2e] Improve jdbc driver management (#2770) | https://github.com/apache/seatunnel/commit/f907927a35 | 2.3.0-beta |
| [hotfix][connector][jdbc] fix JDBC split exception (#2904) | https://github.com/apache/seatunnel/commit/57342c6545 | 2.3.0-beta |
| [Improve][connector-jdbc] Calculate splits only once in JdbcSourceSplitEnumerator (#2900) | https://github.com/apache/seatunnel/commit/7622f28999 | 2.3.0-beta |
| [Feature][Connector-V2 E2E] Add mysql and postgres e2e test and bug fix (#2838) | https://github.com/apache/seatunnel/commit/db434adc15 | 2.2.0-beta |
| fix XAConnection being wrongly submitted (#2805) | https://github.com/apache/seatunnel/commit/d9a6039fd3 | 2.2.0-beta |
| fix spark execute exception is not thrown (#2791) | https://github.com/apache/seatunnel/commit/b1711c984e | 2.2.0-beta |
| [Improve][e2e] Add driver-jar to lib (#2719) | https://github.com/apache/seatunnel/commit/d64d452c86 | 2.2.0-beta |
| [DEV][Api] Replace SeaTunnelContext with JobContext and remove singleton pattern (#2706) | https://github.com/apache/seatunnel/commit/cbf82f755c | 2.2.0-beta |
| [Connector-V2][JDBC-connector] support Jdbc dm (#2377) | https://github.com/apache/seatunnel/commit/7278209ca2 | 2.2.0-beta |
| [#2606]Dependency management split (#2630) | https://github.com/apache/seatunnel/commit/fc047be69b | 2.2.0-beta |
| [Bug][connector-jdbc-v2] Fix transaction force commit when autoCommit is enabled (#2636) | https://github.com/apache/seatunnel/commit/8cd8cf7aa2 | 2.2.0-beta |
| [Feature][Connector-V2] Add phoenix connector sink (#2499) | https://github.com/apache/seatunnel/commit/05ccf9d68c | 2.2.0-beta |
| [Connector-V2][JDBC] Support database: greenplum (#2429) | https://github.com/apache/seatunnel/commit/3561d3878f | 2.2.0-beta |
| Add jdbc connector e2e test (#2321) | https://github.com/apache/seatunnel/commit/5fbcb811c6 | 2.2.0-beta |
StateT of SeaTunnelSource should extend Serializable (#2214) | https://github.com/apache/seatunnel/commit/8c426ef850 | 2.2.0-beta |
| update the condition to 1 = 0 about get table operation (#2186) | https://github.com/apache/seatunnel/commit/7c56d7143b | 2.2.0-beta |
| [SeaTunnel API][Sink] remove useless context field (#2124) | https://github.com/apache/seatunnel/commit/a31fdeedcc | 2.2.0-beta |
| [bugfix] Check isOpen before closing (#2107) | https://github.com/apache/seatunnel/commit/7ec0ada2b9 | 2.2.0-beta |
| [API-DRAFT][MERGE] fix merge error | https://github.com/apache/seatunnel/commit/3c0e984648 | 2.2.0-beta |
| merge dev to api-draft | https://github.com/apache/seatunnel/commit/d265597c64 | 2.2.0-beta |
| [api-draft][Optimize] Optimize module name (#2062) | https://github.com/apache/seatunnel/commit/f79e3112b1 | 2.2.0-beta |