准备工作
我们先来看下 Flink 从 Kafka topic 中获取数据的 demo,首先你需要安装好了 FLink 和 Kafka 。
运行启动 Flink、Zookepeer、Kafka,
好了,都启动了!
数据库建表
1 2 3 4 5 6 7 8 |
DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(25) COLLATE utf8_bin DEFAULT NULL, `password` varchar(25) COLLATE utf8_bin DEFAULT NULL, `age` int(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; |
实体类
Student.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
package com.zhisheng.flink.model;
/**
* Desc:
* weixin: zhisheng_tian
* blog: http://www.54tianzhisheng.cn/
*/
public class Student {
public int id;
public String name;
public String password;
public int age;
public Student() {
}
public Student(int id, String name, String password, int age) {
this.id = id;
this.name = name;
this.password = password;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'&# |

本文介绍如何自定义 Flink Sink Function 将数据从 Kafka topic 读取并存储到 MySQL 数据库。首先,启动 Flink、Zookeeper 和 Kafka,接着创建数据库表和实体类。然后实现 `SinkToMySQL` 类,继承 `RichSinkFunction` 并重写 `invoke` 方法用于数据插入。Flink 程序中,从 Kafka 读取 JSON 数据,解析为 Student 对象,通过 `SinkToMySQL` 存储到 MySQL。运行程序后,数据库成功插入了 100 条数据,验证了自定义 Sink 的有效性。


最低0.47元/天 解锁文章
1349

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



