flink kafka upsert实现代码解析
概览
本文结合源码分析Kafka upsert的实现
根据flink官方文档提供的DDL SQL解析流程图,实现自定义TableSource(or TableSink)需要做的事有三个:
1、定义可解析catalog的TableSourceFactory(or TableSinkFactory)
2、定义工厂类生产出来的product类(该product类implements DynamicSource(or DynamicSink)接口,用于调用不同数据源的connector)
3、针对不同数据源(或sink端)实现connector,如FlinkKafkaProducer、FlinkKafkaConsumer
代码分析
UpsertKafkaDynamicTableFactory(工厂类)
UpsertKafkaDynamicTableFactory的功能是根据catalog配置解析出product类,所以requiredOptions、validatePKConstraints、createDynamicTableSource等类都会有
下面是带有注释的主要方法