在前一篇博客中 【Flink入门】Flink读取Kafka数据Demo 已经简单介绍了Flink读取Kafka数据并通过Demo进行实践,这篇博客简单介绍Flink通过自定义Source读取MySQL数据并通过Demo进行演练。
首先我们来简单了解下SourceFunction 接口,它是所有 stream source 的根接口,它继承自一个标记接口(空接口)Function。
在IDEA中打开SourceFunction,按下图右击鼠标,选择Diagrams–>show Diagrams

SourceFunction 定义了两个接口方法:

1、run : 启动一个 source,即对接一个外部数据源然后 emit 元素形成 stream(大部分情况下会通过在该方法里运行一个 while 循环的形式来产生 stream)。
2、cancel : 取消一个 source,也即将 run 中的循环 emit 元素的行为终止。
正常情况下,一个 SourceFunction 实现这两个接口方法就可以了。其实这两个接口方法也固定了一种实现模板。
接下来通过Demo实现
首先 pom.xml 中添加 MySQL 依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
MySQL数据库建表
drop table if exists user_order_count;
create table user_order_count (
user_id varchar(25) NOT NULL,
count int(11),
primary key (user_id)
) engine=innodb default charset=utf8 collate=utf8_bin;
导入模拟数据
insert into user_order_count values ('16935394', 6), ('16374609', 4), ('16570065', 4),

此博客承接前作,介绍Flink通过自定义Source读取MySQL数据并进行Demo演练。先介绍SourceFunction接口及其两个方法run和cancel,固定了实现模板。接着通过Demo实现,包括在pom.xml添加MySQL依赖、建表、导入数据、新建实体类和Source类,最后给出Flink主程序及运行结果。

6762

被折叠的 条评论
为什么被折叠?



