Add multi-table IoTDB source support
Extended the existing IoTDB source with `tables_configs`, independent schemas, catalog-aware splits and rows, and optional non-overlapping time partitions while retaining the legacy single-table path.
apache/seatunnel · #12246
Time-series connector feature
One SeaTunnel IoTDB source can now read multiple queries and schemas, route rows by table identity, and partition selected time ranges safely.
Problem
Every IoTDB query and schema required a separate source definition. Multi-table support also had to preserve table identity through parallel splits and restored checkpoints, reject unsafe query rewrites, and remain compatible with serialized state from the earlier single-table implementation.
Approach
Adds per-table SQL, schema, and partition settings with shared connection options; carries table IDs through enumeration, reading, and emitted rows; rejects duplicate identities and unsafe partitioned SQL shapes before connecting; and preserves the existing constructors and split serialization contract.
Impact and scope
- Allows several IoTDB measurements or schemas to be ingested and routed from one SeaTunnel source definition.
- Supports parallel, inclusive time-range reads without gaps or duplicate timestamps across generated partitions.
- Protects running single-table jobs through tested legacy checkpoint deserialization and explicit rejection of incompatible configuration changes.
Validation
- All 40 connector tests passed on Java 8 and Java 11, covering validation, routing, partition boundaries, serialization, reordered restore, and legacy compatibility.
- Real IoTDB 0.13.1 integration passed on both JDKs with distinct schemas, 101 nonduplicated partitioned rows, and legacy reads; the Zeta E2E fixture passed with parallel readers and per-table assertions.
- A SeaTunnel maintainer approved the feature with explicit recognition, and the GitHub-verified merge commit credits Goutam Adwant. The full engine matrix was not run locally, and GH-10425 remains open as the multi-connector umbrella.