Hi, dear community

Recently, I’m thinking to refactor the flink-jdbc connector structure before 
release 1.11. 
After the refactor, in the future,  we can easily introduce unified  pluggable 
JDBC dialect for Table and DataStream, and we can have a better module 
organization and implementations.

So, I propose following changes: 
1) Use `Jdbc` instead of `JDBC` in the new public API and interface name. The 
Datastream API `JdbcSink` which imported in this version has followed this 
standard. 

2) Move all interface and classes from `org.apache.flink.java.io.jdbc`(old 
package) to `org.apache.flink.connector.jdbc`(new package) to follow the base 
connector path in FLIP-27.
I think we can move JDBC TableSource, TableSink and factory from old package to 
new package because TableEnvironment#registerTableSource、 
TableEnvironment#registerTableSink  will be removed in 1.11 ans these classes 
are not exposed to users[1].
We can move Datastream API JdbcSink from old package to new package because 
it’s  introduced in this version.
We will still keep `JDBCInputFormat` and `JDBCOoutoutFormat` in old package and 
deprecate them.
Other classes/interfaces are internal used and we can move to new package 
without breaking compatibility.
3) Rename `flink-jdbc` to `flink-connector-jdbc`. well, this is a compatibility 
broken change but in order to comply with other connectors and it’s real a 
connector rather than a flink-jdc-driver[2] we’d better decide do it ASAP.


What do you think? Any feedback is appreciate.


Best,
Leonard Xu

[1]http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Remove-registration-of-TableSource-TableSink-in-Table-Env-and-ConnectTableDescriptor-td37270.html
 
<http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Remove-registration-of-TableSource-TableSink-in-Table-Env-and-ConnectTableDescriptor-td37270.html>
[2]https://github.com/ververica/flink-jdbc-driver 
<https://github.com/ververica/flink-jdbc-driver>

Reply via email to