scala版本的flink CDC

监控mysql 一个或者多个库中的 一个或者多个表中的
数据变化(增删改)

首先确定使用的flink 版本:

FlinkCDC 2.0 版本对应  Flink 1.13

在pom文件中添加 FIinkCDC的依赖:

 <dependency>
   <groupId>com.alibaba.ververica</groupId>
   <artifactId>flink-connector-mysql-cdc</artifactId>
   <version>1.1.0</version>
 </dependency>

Demo:

import com.alibaba.ververica.cdc.connectors.mysql.MySQLSource
import com.alibaba.ververica.cdc.debezium.{DebeziumSourceFunction, StringDebeziumDeserializationSchema}
import com.zw.bigdata.qy.logs.config.EnvConfig
import com.zw.bigdata.qy.logs.util.FlinkExecutionEnvUtil
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import  org.apache.flink.api.scala._


object flinkcdcDemo{
  def main(args: Array[String]): Unit = {
//调用程序封装好的创建env对象的类
val checkpointPath=EnvConfig.getConfigValue("flink.checkout.path")
val driverName = EnvConfig.getConfigValue("com.xxx.driverName")
val hostName = EnvConfig.getConfigValue("com.xxx.host")
val userName = EnvConfig.getConfigValue("com.xxx.userName")
val password = EnvConfig.getConfigValue("com.xxx.password")
val dataBase = EnvConfig.getConfigValue("com.xxx.databse")
val orderTableName = EnvConfig.getConfigValue("com.xxx.orderTableName")
//创建流程序入口
val env: StreamExecutionEnvironment = FlinkExecutionEnvUtil.getStreamEnv(checkpointPath)

env.setParallelism(1) //便于测试使用
val sourceFunction: DebeziumSourceFunction[String] = MySQLSource.builder[String]()
  .hostname(hostName)
  .port(3306)
  .username(userName)
  .password(password)
  .databaseList(dataBase)
  .tableList(orderTableName)
  .deserializer(new StringDebeziumDeserializationSchema)
  .build()

 val value = env.addSource(sourceFunction)
value.print()

env.execute("xhna")
  }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值