flink链接mysql_flink 读取mysql并使用flink sql

本文详细介绍了如何使用Flink连接到MySQL数据库,通过编写Java代码配置JDBCInputFormat来读取MySQL表中的数据。接着展示了如何在Flink环境中创建数据源,并利用Flink SQL对数据进行查询操作,过滤出a列大于1的记录。同时,给出了项目依赖的Maven坐标,包括Flink、Scala、MySQL连接器等相关库。

1.mysql连接

//t1只有一列a int型

TypeInformation[] fieldTypes =new TypeInformation[]{

BasicTypeInfo.INT_TYPE_INFO

};

RowTypeInfo rowTypeInfo =new RowTypeInfo(fieldTypes);

JDBCInputFormat jdbcInputFormat = JDBCInputFormat.buildJDBCInputFormat()

.setDrivername("com.mysql.jdbc.Driver")

.setDBUrl("jdbc:mysql://localhost/test1")

.setUsername("root")

.setPassword("123456")

.setQuery("select * from t1")

.setRowTypeInfo(rowTypeInfo)

.finish();

2.flink sql

final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

DataSource s = env.createInput(jdbcInputFormat); //datasource

BatchTableEnvironment tableEnv =new BatchTableEnvironment(env, TableConfig.DEFAULT());

tableEnv.registerDataSet("t2", s, "a");

tableEnv.sqlQuery("select * from t2").printSchema();

Table query = tableEnv.sqlQuery("select * from t2").where("a > 1");

DataSet result = tableEnv.toDataSet(query, Row.class);

result.print();

System.out.println(s.count());

3.dependency

UTF-8

1.7.0

1.8

2.11

${java.version}

${java.version}

org.apache.flink

flink-java

${flink.version}

org.apache.flink

flink-scala_${scala.binary.version}

${flink.version}

org.apache.flink

flink-jdbc_${scala.binary.version}

${flink.version}

org.apache.flink

flink-streaming-java_${scala.binary.version}

${flink.version}

provided

org.apache.flink

flink-table_${scala.binary.version}

1.7.0

org.apache.flink

flink-connector-kafka-0.10_${scala.binary.version}

${flink.version}

mysql

mysql-connector-java

5.1.46

org.slf4j

slf4j-log4j12

1.7.7

runtime

log4j

log4j

1.2.17

runtime

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值