Flink——实战之MySQL Sink

准备工作

Flink自身并没有提供连接MySQL的连接器,需要手动引入:

<!-- mysql connector -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.44</version>
</dependency>

代码实现

核心代码在于:

streaming.addSink(new MyJdbcSink).setParallelism(1)

这里你需要1个参数:

  • MyJdbcSink:自定义的JdbcSink。需要注意的是,实现该方法时要继承RichSinkFunction函数,可利用open()函数初始化JDBC连接、SQL预编译器等运行时环境,也可以利用close()函数做清理工作。若选择继承SinkFunction,会在每次写入一条数据时都会创建一个JDBC连接。源码注解中给出的解释:

Writes the given value to the sink. This function is called for every record.

完整代码如下:

package org.ourhome.streamapi

import java.sql.{
   Connection, DriverManager, PreparedStatement}

import org.apache.flink.streaming.api.scala._
import org.apache.flink.api.java.utils.ParameterTool
import org.apache.flink.configuration.Configuration
import org.apache.flink.runtime.state.filesystem.FsStateBackend
import org.apache.flink.streaming.api.CheckpointingMode
import org.apache
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值