最近团队考虑用flink + clickhouse做一些事情,然后由我负责做一些调研工作。
我们大数据平台提供的flink最新是1.10版本的,看了官网,还没有支持clickhouse的connector,但可以通过JDBC方法访问。看了一圈,flink写clickhouse可以通过JDBCAppendTableSink这个类,不能直接使用flink sql。而且这个类有一点缺陷,就是没有提供时间间隔配置flush数据。要是能像flink sql连接mysql那样就好了。基于这样的目的,就研究了flink-jdbc的源码。flink1.10并不提供其他JDBC的外部系统的扩展类,要想flink sql支持clickhouse,需要修改源码,添加clinkhouse的类型:
/**
* Default Jdbc dialects.
*/
public final class JDBCDialects {
private static final List<JDBCDialect> DIALECTS = Arrays.asList(
new DerbyDialect()<