flink流处理如何访问mysql_FLINK 读取MYSQL数据-通过JDBC方式

本文介绍了如何使用Apache Flink的JDBCInputFormat从MySQL数据库中读取数据。示例代码展示了一个Java批处理程序,配置了连接信息并执行SQL查询,将查询结果转换为Flink的DataSet进行打印。
摘要由CSDN通过智能技术生成

package quickstart.batch;

import org.apache.flink.api.common.typeinfo.BasicTypeInfo;

import org.apache.flink.api.java.DataSet;

import org.apache.flink.api.java.ExecutionEnvironment;

import org.apache.flink.api.java.io.jdbc.JDBCInputFormat;

import org.apache.flink.api.java.operators.DataSource;

import org.apache.flink.api.java.typeutils.RowTypeInfo;

import org.apache.flink.table.api.Table;

import org.apache.flink.table.api.bridge.java.BatchTableEnvironment;

import org.apache.flink.types.Row;

public class ReadFromMysql {

public static void main(String[] args) throws Exception {

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

BatchTableEnvironment tableEnv = BatchTableEnvironment.create(env);

//配置下相关信息,以及取数逻辑

DataSource dataSource = env.createInput(JDBCInputFormat.buildJDBCInputFormat()

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

.setDBUrl("jdbc:mysql://192.168.65.181/mbi_dev")

.setUsername("MobileBI")

.setPassword("ei2musv+@{U4")

.setQuery("select '1','a' from dual")

.setRowTypeInfo(new RowTypeInfo(BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO))

.finish());

//转化输出

Table table1 = tableEnv.fromDataSet(dataSource);

DataSet rowDataSet = tableEnv.toDataSet(table1, new RowTypeInfo(BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO));

rowDataSet.print();

// result.output(JDBCOutputFormat.buildJDBCOutputFormat()

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

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

// .setUsername("root")

// .setPassword("root")

// .setQuery("insert into flink.test (id,type) values (?,?)")

// .setSqlTypes(new int[]{Types.INTEGER, Types.NCHAR})

// .finish());

//

// env.execute("flink-test");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值