当前位置: 首页 > news >正文

FlinkCDC介绍及使用

CDC简介

        什么是CDC?

                cdc是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的

变动(包括数据或数据表的插入,更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件以供其它服务进行订阅及消费

        CDC的种类?

CDC主要分为基于查询基于Binlog两种方式,咱们主要了解一下这两种的区别:

基于查询的CDC

基于Binlog的CDC

开源产品

Sqoop、Kafka JDBC Source

Canal、Maxwell、Debezium

执行模式

Batch

Streaming

是否可以捕获所有数据变化

延迟性

高延迟

低延迟

是否增加数据库压力

FlinkCDC案例实操

        开启MySQL Binlog并重启MySQL

sudo vim/etc/my.cnf

把需要监控的数据库名写入到里面

重启mysql

sudo systemctl restart mysqld

DataStream方式的应用

导入依赖

<properties>

    <maven.compiler.source>8</maven.compiler.source>

    <maven.compiler.target>8</maven.compiler.target>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <flink.version>1.17.1</flink.version>

    <flink-cdc.vesion>2.4.0</flink-cdc.vesion>

    <hadoop.version>3.3.4</hadoop.version>

</properties>

<dependencies>

    <dependency>

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

        <artifactId>flink-clients</artifactId>

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

        <scope>provided</scope>

    </dependency>

    <dependency>

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

        <artifactId>flink-connector-kafka</artifactId>

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

    </dependency>

    <dependency>

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

        <artifactId>flink-json</artifactId>

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

        <scope>provided</scope>

    </dependency>

    <dependency>

        <groupId>com.alibaba</groupId>

        <artifactId>fastjson</artifactId>

        <version>1.2.83</version>

    </dependency>

    <!--如果保存检查点到hdfs上,需要引入此依赖-->

    <dependency>

        <groupId>org.apache.hadoop</groupId>

        <artifactId>hadoop-client-api</artifactId>

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

        <!--<scope>provided</scope>-->

    </dependency>

    <dependency>

        <groupId>org.apache.hadoop</groupId>

        <artifactId>hadoop-client-runtime</artifactId>

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

        <!--<scope>provided</scope>-->

    </dependency>

    <dependency>

        <groupId>org.apache.logging.log4j</groupId>

        <artifactId>log4j-to-slf4j</artifactId>

        <version>2.14.0</version>

        <scope>provided</scope>

    </dependency>

    <dependency>

        <groupId>org.apache.logging.log4j</groupId>

        <artifactId>log4j-api</artifactId>

        <version>2.14.0</version>

    </dependency>

    <dependency>

        <groupId>org.slf4j</groupId>

        <artifactId>slf4j-log4j12</artifactId>

        <version>1.7.36</version>

    </dependency>

    <!--cdc 依赖-->

    <dependency>

        <groupId>com.ververica</groupId>

        <artifactId>flink-connector-mysql-cdc</artifactId>

        <version>${flink-cdc.vesion}</version>

    </dependency>

    <!--   flink sql 相关的依赖: 使用 cdc 必须导入 sql 依赖-->

    <dependency>

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

        <artifactId>flink-table-api-java-bridge</artifactId>

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

        <scope>provided</scope>

    </dependency>

    <dependency>

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

        <artifactId>flink-table-planner-loader</artifactId>

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

        <scope>provided</scope>

    </dependency>

    <dependency>

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

        <artifactId>flink-table-runtime</artifactId>

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

        <scope>provided</scope>

    </dependency>

</dependencies>

编写代码

相关文章:

  • 【论文速读】|对BusyBox进行模糊测试:利用大语言模型和崩溃重用挖掘嵌入式系统中的漏洞
  • Ubuntu 22.04.1 安装ubuntu有道词典时错误发生
  • 2352.相等行列对
  • Jmeter性能 之 “查看结果树” 界面功能介绍
  • 各种开发语言运行时占用内存情况比较
  • 视频智能分析平台LntonAIServer安防监控视频平台行人入侵检测算法核心特点及其应用价值
  • 网络与协议安全复习 - 电子邮件安全
  • Java宝藏实验资源库(4)对象数组
  • redis-基础篇(1)
  • ubuntu server 22.04安装 fdfs
  • 上海国际嵌入式展 - 基于树莓派5和CODESYS的16轴运动控制解决方案
  • <Python><paddleocr>基于python使用百度paddleocr实现图片文字识别与替换
  • 前后端分离的后台管理系统源码,快速开发OA、CMS网站后台管理、毕业设计项目
  • android 一个manifest 可以有 多个 hal 吗 ?
  • Leetcode211. 添加与搜索单词 - 数据结构设计
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017年终总结、随想
  • AWS实战 - 利用IAM对S3做访问控制
  • Docker入门(二) - Dockerfile
  • exif信息对照
  • happypack两次报错的问题
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Javascript Math对象和Date对象常用方法详解
  • MySQL几个简单SQL的优化
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Odoo domain写法及运用
  • Unix命令
  • 产品三维模型在线预览
  • 翻译--Thinking in React
  • 浮现式设计
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 力扣(LeetCode)21
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #DBA杂记1
  • #QT(智能家居界面-界面切换)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.each()与$(selector).each()
  • (7)STL算法之交换赋值
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)shell调试方法
  • (转)大型网站架构演变和知识体系
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .Net 8.0 新的变化
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .net mvc部分视图
  • .Net mvc总结
  • .Net6使用WebSocket与前端进行通信
  • .net访问oracle数据库性能问题
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter