-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[Feature][Connector-V2] add fluss Connector #10121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a new Fluss connector to SeaTunnel, implementing a sink connector to write data to Fluss, a streaming storage system. The implementation includes support for the timestamp_tz (TIMESTAMP_TZ) data type to handle timezone-aware timestamps.
Key changes:
- Adds Fluss sink connector with support for both upsert and append modes
- Implements JSON serialization/deserialization for
OffsetDateTime(TIMESTAMP_TZ type) - Provides E2E tests for single and multi-table scenarios
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/RowToJsonConverters.java |
Adds conversion support for TIMESTAMP_TZ to JSON using ISO_OFFSET_DATE_TIME formatter |
seatunnel-formats/seatunnel-format-json/src/main/java/org/apache/seatunnel/format/json/JsonToRowConverters.java |
Adds conversion support from JSON to OffsetDateTime for TIMESTAMP_TZ type |
seatunnel-formats/seatunnel-format-json/src/test/java/org/apache/seatunnel/format/json/JsonRowDataSerDeSchemaTest.java |
Adds test coverage for TIMESTAMP_TZ serialization/deserialization |
seatunnel-connectors-v2/connector-fluss/src/main/java/org/apache/seatunnel/connectors/seatunnel/fluss/sink/FlussSinkWriter.java |
Implements the core sink writer with type conversion logic including TIMESTAMP_TZ support |
seatunnel-connectors-v2/connector-fluss/src/main/java/org/apache/seatunnel/connectors/seatunnel/fluss/sink/FlussSink.java |
Main sink class implementing multi-table support |
seatunnel-connectors-v2/connector-fluss/src/main/java/org/apache/seatunnel/connectors/seatunnel/fluss/sink/FlussSinkFactory.java |
Factory class for creating Fluss sink instances |
seatunnel-connectors-v2/connector-fluss/src/main/java/org/apache/seatunnel/connectors/seatunnel/fluss/config/FlussBaseOptions.java |
Configuration options for Fluss connector |
seatunnel-connectors-v2/connector-fluss/pom.xml |
Maven dependencies for Fluss connector |
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-fluss-e2e/src/test/java/org/apache/seatunnel/e2e/connector/fluss/FlussSinkIT.java |
E2E integration test for Fluss sink |
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-fluss-e2e/pom.xml |
Maven dependencies for E2E tests |
seatunnel-connectors-v2/pom.xml |
Adds connector-fluss module |
seatunnel-e2e/seatunnel-connector-v2-e2e/pom.xml |
Adds connector-fluss-e2e module |
seatunnel-dist/pom.xml |
Includes connector-fluss in distribution |
plugin-mapping.properties |
Maps Fluss sink to connector-fluss module |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
.../connector-fluss-e2e/src/test/java/org/apache/seatunnel/e2e/connector/fluss/FlussSinkIT.java
Outdated
Show resolved
Hide resolved
...luss/src/main/java/org/apache/seatunnel/connectors/seatunnel/fluss/sink/FlussSinkWriter.java
Show resolved
Hide resolved
...luss/src/main/java/org/apache/seatunnel/connectors/seatunnel/fluss/sink/FlussSinkWriter.java
Show resolved
Hide resolved
|
CI failed, please check |
ci always fail,Could not find stored procedure 'master..xp_sqljdbc_xa_init_e |
Retry the incorrect CI |
ci pass |
thanks |

Purpose of this pull request
#8816 add fluss sink first
Does this PR introduce any user-facing change?
How was this patch tested?
Check list
New License Guide
incompatible-changes.mdto describe the incompatibility caused by this PR.