开发者社区> 问答> 正文

如何将自定义表源和自定义表接收器与SQL客户端集成?

flink小助手 2018-12-10 13:42:39 424

假设我们定义了一个自定义的TableSource和TableSink,那么如何与SQL Client集成?我是否需要手动注册下面的自定义TableSource Sink名称?如果不手动注册,连接器类型custom1 map 如何与custom1TableSource相关?

StreamTableEnvironment tableEnv = TableEnvironment.getTableEnvironment(env);
TableSource custom1TableSource = new custom1TableSource ( );
tableEnv.registerTableSource("custom1", custom1TableSource);
然后配置下面的环境文件?

tables:

  - name: custom1TableSource
    type: Source
    update-mode: append
    connector:
      property-version: 1
      type: ***custom1****

我声明的源和接收器:

package com.abc;
public static class custom1TableSource implements StreamTableSource, DefinedRowtimeAttributes, DefinedProctimeAttribute {

package com.abc;
public static class custom1TableSink implements TableSink, AppendStreamTableSink {
https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/table/sqlClient.html#configuration

更新:

在从源代码检查后,我发现Flink通过实现StreamTableSinkFactory和ServiceLoader创建的Factory创建接收器和源实例,但是如何将接收器和源名称注册到TableSource和TabSink类?

SQL 流计算
分享到
取消 提交回答
全部回答(1)
  • flink小助手
    2019-07-17 23:19:14

    SQL Client和Table&SQL API TableFactory都使用Java的服务提供程序接口(SPI)发现的所谓的s。

    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程