更新时间:2022-07-12 GMT+08:00

userDefined源表

功能描述

您可通过编写代码实现从云生态或者开源生态获取数据,再把获取到的数据作为Flink作业的输入数据。

前提条件

自定义source类需要继承类RichParallelSourceFunction,并指定数据类型为Row。

例如自定义类MySource:public class MySource extends RichParallelSourceFunction<Row>{},重点实现其中的open、run、close和cancel函数。实现完成后将该类编译打在jar中,通过sql编辑页的UDF Jar上传。

依赖的pom配置文件内容参考如下:
<dependency>
    <groupId>org.apache.flink</groupId> 
    <artifactId>flink-streaming-java_2.11</artifactId> 
    <version>${flink.version}</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.flink</groupId> 
    <artifactId>flink-core</artifactId> 
    <version>${flink.version}</version> 
    <scope>provided</scope> 
</dependency>

语法格式

create table userDefinedSource (
  attr_name attr_type 
  (',' attr_name attr_type)* 
)
with (
  'connector.type' = 'user-defined',
  'connector.class-name' = ''
);

参数说明

表1 参数说明

参数

是否必选

说明

connector.type

只能为user-defined,表示使用自定义的source。

connector.class-name

source函数的全限定类名。

connector.class-parameter

source函数其构造函数的参数,只支持一个String类型的参数。

注意事项

connector.class-name需要为全限定类名。

示例

create table userDefinedSource (
  attr1 int,
  attr2 int
)
with (
  'connector.type' = 'user-defined',
  'connector.class-name' = 'xx.xx.MySource'
);