【Flink入门】Flink自定义Source读取MySQL数据

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

在前一篇博客中 【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), 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值