Kylin already supports JDBC source, but it takes much efforts to develop an implementation to a new source engine, like supporting metadata sync, cube build and query pushdown. It’s mainly because the SQL dialects and jdbc implementations between source engines are quite different.
We propose to develop a data source sdk, which provides APIs to help developers handle these dialect differences and easily implement an adaptor for one source engine. With this SDK, users can achieve followings from a JDBC source:
- synchronize metadata and data from jdbc source.
- Build cube from jdbc source.
- query pushdown to jdbc source engine when cube is unmatched.
The SDK will define some interfaces of adaptors. To implement a new source, developers only need to implement an adaptor for the source.
To keep compatibly, we will keep the existing JDBC source module, and implement a new JDBC source module as the caller of the SDK. Besides, we will also provide a pushdown implementation class as the caller of SDK for pushdown scenarios.