云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战010-DataStream与MySql自定义sink和source(Java版)002
来源:互联网 发布:淘宝护肤品优惠信息 编辑:程序博客网 时间:2024/06/05 17:56
三、自定义source
1.自定义source
package code.book.stream.customsinkandsource.jdbc.java;import org.apache.flink.configuration.Configuration;import org.apache.flink.streaming.api.functions.source.RichSourceFunction;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class StudentSourceFromMysql extends RichSourceFunction<Student> { PreparedStatement ps; private Connection connection; /** * 一、open()方法中建立连接,这样不用每次invoke的时候都要建立连接和释放连接。 */ @Override public void open(Configuration parameters) throws Exception { super.open(parameters); String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://qingcheng11:3306/flinktest"; String username = "root"; String password = "qingcheng"; //1.加载驱动 Class.forName(driver); //2.创建连接 connection = DriverManager.getConnection(url, username, password); //3.获得执行语句 String sql = "select stuid,stuname,stuaddr,stusex from Student;"; ps = connection.prepareStatement(sql); } /** * 二、DataStream调用一次run()方法用来获取数据 */ @Override public void run(SourceContext<Student> sourceContext) throws Exception { try { //4.执行查询,封装数据 ResultSet resultSet = ps.executeQuery(); while (resultSet.next()) { Student student = new Student( resultSet.getInt("stuid"), resultSet.getString("stuname").trim(), resultSet.getString("stuaddr").trim(), resultSet.getString("stusex").trim()); sourceContext.collect(student); } } catch (Exception e) { e.printStackTrace(); } } @Override public void cancel() { } /** * 三、 程序执行完毕就可以进行,关闭连接和释放资源的动作了 */ @Override public void close() throws Exception { //5.关闭连接和释放资源 super.close(); if (connection != null) { connection.close(); } if (ps != null) { ps.close(); } }}
2.source测试程序
package code.book.stream.customsinkandsource.jdbc.java;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;public class StudentSourceFromMysqlTest { public static void main(String[] args) throws Exception { //1.创建流执行环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //2.从自定义source中读取数据 DataStream<Student> students=env.addSource(new StudentSourceFromMysql()); //3.显示结果 students.print(); //4.触发流执行 env.execute(); }}
3.source测试效果
能够正确查询出mysql中的数据。
阅读全文
1 0
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战010-DataStream与MySql自定义sink和source(Java版)002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战009-DataStream与MySql自定义sink和source(Java版)001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战011-DataStream与MySql自定义sink和source(Java版)003
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战007-DataStream与MySql自定义sink和source(Scala版)002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战006-DataStream与MySql自定义sink和source(Scala版)001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战008-DataStream与MySql自定义sink和source(Scala版)003
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战012-Flink在流处理中常见的sink和source001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战013-Flink在流处理中常见的sink和source002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战002-Flink基于流的wordcount示例002
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战004-Flink基于流的window操作002
- 【云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战001-Flink基于流的wordcount示例001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战003-Flink基于流的window操作001
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战005-Flink基于流的window操作003
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战010--DateSet实用API详解010
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战002--DateSet实用API详解002
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink高级特性与高级应用013-Flink在批处理中常见的sink和source001
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink高级特性与高级应用014-Flink在批处理中常见的sink和source002
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战001--DateSet实用API详解001
- 将bios中的boot mode 从uefi改为legacy之后,进不去bios
- max pooling in caffe
- Kotlin-->模仿QQ发送图片进度效果
- 统计学习导论 Chapter2--What Is Statistical Learning?
- java操作es的多条件组合精确查询BoolQuery
- 云星数据---Apache Flink实战系列(精品版)】:Flink流处理API详解与编程实战010-DataStream与MySql自定义sink和source(Java版)002
- 哈希表(散列表)原理详解
- 【结果公布】亲爱的小伙伴你的奖品已送达,请注意查收!下一波送书还有一周到达战场!
- C# 开源框架(整理)
- 全志平台写寄存器.txt
- 电脑windows一直启动
- Oracle数据库dmp文件Dos命令下导入导出
- Spring Cloud构建微服务架构—服务消费(Feign)
- 无线网络覆盖