FLINK 1.12.2 jdbc读写mysql

本文介绍了如何在FLINK 1.12.2中使用DDL方式连接和操作MySQL数据库,包括添加依赖、创建源表和目标表、执行Flink读写MySQL的代码示例以及测试结果,强调了这种方式的流批统一性和简易程度。
摘要由CSDN通过智能技术生成

FLINK读写MySQL的方式有三种,一种是直接使用flink自带的JDBCInputFormat和JDBCOutputFormat,另一种是自定义source和sink,第三种是通过DDL连接MySQL进行读写。第二种针对每个源表都要写自定义的source和sink类,不够灵活;第一种是通过DataSet API实现的;考虑到官网一直强调Table API的流批统一性,以及代码的简易程度,这里选择第三种方式DDL链接jdbc来读写mysql。

目录

1.添加依赖

2.实现过程

2.1创建源表和目标表

2.2Flink读写MYSQL

3 测试结果

4 一点说明


1.添加依赖

参照官网需要添加如下两个jar包mysql-connector-java.jar和flink-connector-jdbc_2.11.jar,在代码中引入依赖:

<dependency>

    <groupId>org.apache.flink</groupId>

    <artifactId>flink-connector-jdbc_2.11</artifactId>

    <version>${flink.version}</version>

</dependency>

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>5.1.49</version>

</dependency>

并将这两个jar包添加到到flink 的lib目录下,重启flink集群

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Flink SQL中读取MySQL的多个表,可以使用FlinkJDBC Connector。首先,需要在Flink的依赖中添加以下依赖项: ``` <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-jdbc_2.11</artifactId> <version>${flink.version}</version> </dependency> ``` 然后,需要在Flink的SQL客户端中创建一个外部表,用于读取MySQL中的数据。可以使用类似下面的语句创建一个外部表: ``` CREATE TABLE my_table ( id BIGINT, name STRING, age INT, address STRING ) WITH ( 'connector.type' = 'jdbc', 'connector.url' = 'jdbc:mysql://localhost:3306/my_db', 'connector.table' = 'my_table', 'connector.driver' = 'com.mysql.jdbc.Driver', 'connector.username' = 'my_user', 'connector.password' = 'my_password' ) ``` 这里的`my_table`是MySQL中的一个表,`my_db`是这个表所在的数据库,`my_user`和`my_password`是连接MySQL所需要的用户名和密码。 如果需要读取多个表,可以在Flink SQL中创建多个外部表,然后使用JOIN等操作将它们合并在一起。例如: ``` CREATE TABLE my_table1 ( id BIGINT, name STRING, age INT, address STRING ) WITH ( 'connector.type' = 'jdbc', 'connector.url' = 'jdbc:mysql://localhost:3306/my_db', 'connector.table' = 'my_table1', 'connector.driver' = 'com.mysql.jdbc.Driver', 'connector.username' = 'my_user', 'connector.password' = 'my_password' ); CREATE TABLE my_table2 ( id BIGINT, job STRING, salary DOUBLE ) WITH ( 'connector.type' = 'jdbc', 'connector.url' = 'jdbc:mysql://localhost:3306/my_db', 'connector.table' = 'my_table2', 'connector.driver' = 'com.mysql.jdbc.Driver', 'connector.username' = 'my_user', 'connector.password' = 'my_password' ); SELECT t1.id, t1.name, t2.job, t2.salary FROM my_table1 t1 JOIN my_table2 t2 ON t1.id = t2.id; ``` 这里使用了JOIN操作将`my_table1`和`my_table2`合并在一起,并且只选择了需要的列。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值