Flink_CDC搭建及简单使用_只是喜欢玩大数据的博客-CSDN博客_flinkcdc


本站和网页 https://blog.csdn.net/weixin_43914798/article/details/121361949 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Flink_CDC搭建及简单使用_只是喜欢玩大数据的博客-CSDN博客_flinkcdc
Flink_CDC搭建及简单使用
只是喜欢玩大数据
已于 2022-09-30 09:40:50 修改
13418
收藏
30
分类专栏:
数据同步
文章标签:
flink
mysql
同步
于 2021-11-16 18:26:51 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43914798/article/details/121361949
版权
数据同步
专栏收录该内容
8 篇文章
0 订阅
订阅专栏
Flink_CDC搭建及简单使用
1.CDC简介:
​ CDC (Change Data Capture) ,在广义的概念上,只要能捕获数据变更的技术,都可以称为 CDC 。但通常我们说的CDC 技术主要面向数据库(包括常见的mysql,Oracle, MongoDB等)的变更,是一种用于捕获数据库中数据变更的技术。
​ 目前市面上的CDC技术非常多,常见的主要包括Flink CDC,DataX,Canal,Sqoop,Kettle,Oracle Goldengate,Debezium等。DataX,Sqoop和kettle的CDC实现技术主要是基于查询的方式实现的,通过离线调度查询作业,实现批处理请求。这种作业方式无法保证数据的一致性,实时性也较差。Flink CDC,Canal,Debezium和Oracle Goldengate是基于日志的CDC技术。这种技术,利用流处理的方式,实时处理日志数据,保证了数据的一致性,为其他服务提供了实时数据。
2.Flink_CDC简介:
​ 目前公司主要是通过canal监控mysql的binlog日志,然后将日志数据实时发送到kafka中,通过flink程序,将日志数据实时下发到其他服务中。这种方式,数据链路长,实时性效果较差,运维也比较复杂。
Flink_CDC技术的出现,解决了传统数据库实时同步的痛点。Flink_CDC通过伪装成mysql的slave节点,实时读取master节点全量和增量数据,它能够捕获所有数据的变化,捕获完整的变更记录,无需像查询CDC那样发起全表的扫描过滤,高效且无需入侵代码,完全与业务解耦,运维及其简单。
3.Flink_CDC部署:
3.1 依赖版本
环境:Linux(Centos7)
Flink : 1.31.1
Flink_CDC: flink-sql-connector-mysql-cdc-2.1.0.jar
mysql版本:8.0.13
mysql驱动包:mysql-connector-java-8.0.13.jar
3.2环境搭建
3.2.1安装java环境(不再赘述);
3.2.2安装数据库(不在赘述);
3.2.3搭建Flink环境(单机模式);
1.获取flink版本。
cd /home
wget https://archive.apache.org/dist/flink/flink-1.9.0/flink-1.13.1-bin-scala_2.11.tgz
2.解压flink:
tar -zxvf flink-1.13.1-bin-scala_2.11.tgz
3.编辑flink配置文件,配置java环境
cd flink-1.13.1
vim conf/flink-conf.yaml
添加配置:env.java.home=/home/jdk/jdk1.8.0_291
4.上传flink_CDC驱动包和mysql驱动包:
cd flink-1.13.1/lib
上传:
flink-sql-connector-mysql-cdc-2.1.0.jar
mysql-connector-java-8.0.13.jar
5.启动flink集群:
/bin/start-cluster.sh
3.3创建mysql表:
CREATE TABLE `products` (
`id` int NOT NULL,
`name` varchar(45) DEFAULT NULL,
`description` varchar(45) DEFAULT NULL,
`weight` decimal(10,3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
3.4启动flink-sql-client
​ 本次主要是通过flink的sql客户端来测试的。
./flink-1.13.1/bin/sql-client.sh
3.5创建Flink_CDC虚拟表:
CREATE TABLE `products_cdc` (
id INT NOT NULL,
name varchar(32),
description varchar(45),
weight DECIMAL(10,3)
) WITH (
'scan.incremental.snapshot.enabled' = 'false',
'connector' = 'mysql-cdc',
'hostname' = '0.0.0.0',
'port' = '3306',
'username' = 'root',
'password' = '123456',
'database-name' = 'test_db',
'table-name' = 'products'
);
###如果未设置'scan.incremental.snapshot.enabled' = 'false',会报错:
Caused by: org.apache.flink.table.api.ValidationException: The primary key is necessary when enable 'Key: 'scan.incremental.snapshot.enabled' , default: true (fallback keys: [])' to 'true'
at com.alibaba.ververica.cdc.connectors.mysql.table.MySqlTableSourceFactory.validatePrimaryKeyIfEnableParallel(MySqlTableSourceFactory.java:186)
at com.alibaba.ververica.cdc.connectors.mysql.table.MySqlTableSourceFactory.createDynamicTableSource(MySqlTableSourceFactory.java:85)
at org.apache.flink.table.factories.FactoryUtil.createTableSource(FactoryUtil.java:134)
... 30 more
###报错原因:
MySQL CDC源表在Flink 1.13版本会进行语法检查,在MySQL CDC DDL WITH参数中,未设置主键(Primary Key)信息。因为Flink 1.13版本,新增支持按PK分片,进行多并发读取数据的功能。
###解决方案:
如果在Flink 1.13版本,您需要多并发读取MySQL数据,则在DDL中添加PK信息。
如果在Flink 1.13版本,您不需要多并发读取MySQL数据,则在DDL中添加scan.incremental.snapshot.enabled 参数,且把该参数值设置为false,无需设置PK信息。
3.6查询CDC表数据:
3.6.1 查看表数据 select * from products_cdc; 3.6.2 在数据库中新增一条数据: insert into products(id,name,description,weight) values(5,‘gg’,‘haha’,60); 3.6.3观察products_cdc表数据变化;
到此,通过flink-sql-client来增量获取mysql全量和增量数据变化的样例已结束。
只是喜欢玩大数据
关注
关注
点赞
30
收藏
打赏
11
评论
Flink_CDC搭建及简单使用
Flink_CDC搭建及简单使用1.CDC简介:​ CDC (Change Data Capture) ,在广义的概念上,只要能捕获数据变更的技术,都可以称为 CDC 。但通常我们说的CDC 技术主要面向数据库(包括常见的mysql,Oracle, MongoDB等)的变更,是一种用于捕获数据库中数据变更的技术。​ 目前市面上的CDC技术非常多,常见的主要包括Flink CDC,DataX,Canal,Sqoop,Kettle,Oracle Goldengate,Debezi
复制链接
扫一扫
专栏目录
flink-cdc-connectors:更改Apache Flink的数据捕获(CDC)连接器
02-05
Flink CDC连接器
Flink CDC连接器是Apache Flink的一组源连接器,使用更改数据捕获(CDC)从不同的数据库中提取更改。 Flink CDC连接器将Debezium集成为引擎来捕获数据更改。 因此,它可以充分利用Debezium的功能。 进一步了解什么是 。
本自述文件旨在简要介绍Flink CDC连接器的核心功能。 有关详细文档,请参阅。
支持(经过测试)的连接器
数据库
MySQL
数据库:5.7,8.0.x JDBC驱动程序:8.0.16
PostgreSQL
数据库:9.6,10,11,12 JDBC驱动程序:42.2.12
产品特点
支持读取数据库快
FlinkCDC部署
最新发布
ArYe
12-10
739
FLINK-CDC
FlinkCDC
评论 11
您还未登录,请先
登录
后发表或查看评论
Flink CDC2.0快速上手demo示例(Jar对接,非SQL)
北鹤M的代码手账
10-31
4844
重要!
Flink CDC 这个名字带着Flink,但是注意!!!我们本地搭建简易demo的时候不需要下载flink环境就可以本地跑起来。
FlinkCDC本质就是一个jar包,引入后写个main方法即可展现它的简单功能。(因为需要Canal切FlinkCDC,小白的我把FlinkCDC当成了类似于ik分词的插件,居然先去下载了Flink...)
准备工作
您需要会使用maven
≤FlinkCDC 1.4.0版本可以用MySQL5.6+,FlinkCDC必须5.7+
F...
flink-cdc初体验
gsw的博客
11-12
740
flink-cdc是一款专用于数据库增量数据监控的插件。基于flink计算引擎提供的高性能,高可用性,高扩展性的数据监控功能。当前flink-cdc支持读取例如mysql,oracle,mongodb,tidb,postgres等常见的数据库类型
「轻阅读」基于 Flink SQL CDC的实时数据同步方案,附视频教程
zhenghhgz的博客
11-02
3692
IT实战联盟博客:http://blog.100boot.cn
整理:陈政羽(Flink 社区志愿者)原文:https://mp.weixin.qq.com/s/QNJlacBUlkMT7ksKKSNa5Q
Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的数据同步方案,基于 Flink CDC 同步的解决方案以及更多的应用场景和 CDC 未来开发规划等方面进行
flink+mysql+connector_flink cdc connector简单案例
weixin_29189363的博客
01-27
1513
参考文档安装下载jar包org.apache.flinkflink-connector-jdbc_2.111.11.0com.alibaba.ververicaflink-connector-mysql-cdc1.1.0将jar包放到flink集群flink/lib下注意这里需要放置flink-cdc-connectors和flink-jdbc-connectors重启集群案例:MySQLSour...
Flink SQL CDC 上线!我们总结了 13 条生产实践经验
Ververica的博客
09-04
1万+
摘要:7月,Flink 1.11 新版发布,在生态及易用性上有大幅提升,其中 Table & SQL 开始支持 Change Data Capture(CDC)。CDC 被广泛使...
【Flink基础】-- Flink CDC介绍
余额不足
03-25
1万+
一、Flink CDC 是什么?
2020年 Flink cdc 首次在 Flink forward 大会上官宣,由Jark Wu & Qingsheng Ren 两位大佬介绍,原始 blog 点击链接。
Flink CDC connector 可以捕获在一个或多个表中发生的所有变更。该模式通常有一个前记录和一个后记录。Flink CDC connector 可以直接在Flink中以非约束模式(流)使用,而不需要使用类似 kafka 之类的中间件中转数据。
...
flink cdc笔记(一):flink cdc简介
YiRan_Zhao的博客
09-20
3108
flink cdc
【Flink】Flink CDC介绍和原理概述
一个写湿的程序猿
09-18
2万+
Flink CDC概述和原理什么是CDC?基于查询的CDC 和 基于日志的CDCFlink CDCFlink CDC原理简述基于 Flink SQL CDC 的数据同步方案实践
什么是CDC?
CDC是(Change Data Capture 变更数据获取)的简称。
核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的插入INSERT、更新UPDATE、删除DELETE等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。
基于查询的CDC 和 基于日志的CDC
CD
FlinkCDC简介
m0_61607827的博客
02-26
1850
目录
一. Flink CDC介绍
二.Flink CDC 实操
2.1 MySQL配置
2.2 pom文件
2.3 Java代码
2.4 测试结果
一. Flink CDC介绍
CDC主要分为基于查询和基于Binlog两种方式,我们主要了解一下这两种之间的区别:
FlinkCDC其实和canal差不多,只不过就是flink社区开发的组件,用起来更方便一些。
  Flink在1.11版本中新增了CDC的特性,简称 改变数据捕获。名称来看有点乱,我们先从之前的数据架构来看CDC的内容
Flink CDC介绍和简单实用
MyNameIsWangYi的博客
08-09
1089
CDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。...............
Flink示例——Flink-CDC
蒋含竹的博客
09-18
1万+
Flink示例——Flink-CDC
版本信息
Mavan依赖
主从同步配置、数据准备
使用Flink-CDC
简单的测试
Flink示例——Flink-CDC
版本信息
产品版本
Flink1.11.1
flink-cdc-connectors1.1.0
Java1.8.0_231
MySQL5.7.16
注意:官方说目前支持MySQL-5.7和8,但笔者还简单测试过mariadb-10.0.38(对应MySQL-5.6)。包括增加、删除、更新、聚合,目前皆可用,但不排除未知问题。
Mavan
flink教程-详解flink 1.11 中的CDC (Change Data Capture)
热门推荐
公众号[大数据技术与应用实战],分享大数据实战案例
07-27
2万+
文章目录CDC简介CanalCanalJson反序列化源码解析
CDC简介
CDC,Change Data Capture,变更数据获取的简称,使用CDC我们可以从数据库中获取已提交的更改并将这些更改发送到下游,供下游使用。这些变更可以包括INSERT,DELETE,UPDATE等,
用户可以在以下的场景下使用CDC:
使用flink sql进行数据同步,可以将数据从一个数据同步到其他的地方,比如mysql、elasticsearch等。
可以在源数据库上实时的物化一个聚合视图
因为只是增量同步,所以可以
实时计算之Flink CDC
u010739163的博客
07-15
531
#### 什么是CDC
CDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。
#### CDC的种类
CDC主要分为基于查询和基于Binlog两种方式,我们主要了解一下这两种之间的区别:
||基于查询的CDC |基于Binlog的CDC|
|--|--|--|
|开源产品| Sqoop、Kafka JDBC Source...
Flink cdc 2.1.0发布测试
qq_31866793的博客
11-17
2052
1,最简单的代码:
package com.ververica.cdc.connectors.mysql.source;
import org.apache.flink.api.common.eventtime.WatermarkStrategy;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import com.ververica.cdc.connectors.mysql.testu..
Flink CDC 系列(1)—— 什么是 Flink CDC
白月蓝山
02-21
3301
本文介绍了什么是 Flink CDC, 支持的数据源,Flink CDC 的特性,以及 Flink CDC 与 Flink 的版本对应关系
Flink CDC 2.x 让一切变得美好
penriver的博客
09-28
2457
本文基于阿里巴巴高级开发工程师徐榜江 (雪尽) 7 月 10 日在北京站 Flink Meetup 分享的《详解 Flink-CDC》整理。
《详解 Flink-CDC》深入讲解了最新发布的 Flink CDC 2.0.0 版本带来的核心特性,包括:全量数据的并发读取、checkpoint、无锁读取等重大改进。
项目地址
文档地址
详解Flink-CDC PPT
CDC
什么是CDC
CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 C
Flink CDC详细教程(介绍、原理、代码样例)
少说,多做
06-24
7658
CDC 是变更数据捕获(Change Data Capture)技术的缩写,它可以将源数据库(Source)的增量变动记录,同步到一个或多个数据目的(Sink)。在同步过程中,还可以对数据进行一定的处理,例如分组(GROUP BY)、多表的关联(JOIN)等。例如对于电商平台,用户的订单会实时写入到某个源数据库;A 部门需要将每分钟的实时数据简单聚合处理后保存到 Redis 中以供查询,B 部门需要将当天的数据暂存到 Elasticsearch 一份来做报表展示,C 部门也需要一份数据到 ClickHous
[基础架构] [Flink] Flink/Flink-CDC的部署和配置
OxYGC
07-05
2213
Flink 以及 Flink -CDC 部署与配置
大数据技术-FlinkCDC学习笔记
xiaoyixiao_的博客
01-03
5011
大数据技术-FlinkCDC学习笔记
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
只是喜欢玩大数据
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
35
原创
31万+
周排名
3万+
总排名
10万+
访问
等级
432
积分
23
粉丝
28
获赞
31
评论
134
收藏
私信
关注
热门文章
国内外快递公司名称一览表
19689
Flink_CDC搭建及简单使用
13411
常用编码说明-GB2312
7660
世界各国英文简写一览表
5947
yum安装mysql5.7教程
5270
分类专栏
Doris
10篇
datax
2篇
数据同步
8篇
prometheus
6篇
运维
5篇
flink
1篇
canal
2篇
数据权限
3篇
积累
2篇
笔记
编码
7篇
环境配置
5篇
启动
1篇
建表
3篇
最新评论
Flink_CDC搭建及简单使用
东吴说书人:
包冲突,就很烦人 调包都能调死人
猿创征文|通过优化Doris表结构(Partitions & bucket数量)提升Doris查询性能
只是喜欢玩大数据:
如果数据量比较大,且数据有明显范围界限,比如一天数据或者一个月数据,且查询条件会带数据范围时,最好建分区表,这样查询效率会有很大提升的。
猿创征文|通过优化Doris表结构(Partitions & bucket数量)提升Doris查询性能
只是喜欢玩大数据:
如果数据量小的话,可以不分区,只分桶
猿创征文|通过优化Doris表结构(Partitions & bucket数量)提升Doris查询性能
九以晗:
博主,想问一下,建表的时候只分桶不分区合理吗(比如1个分区10个分桶)
利用Flink-CDC和flink-doris-connector技术实现Mysql数据全量或增量同步至Doris
HQZYX:
我已经处理了,感谢回复
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Doris内置函数Split_part()性能影响分析测试
Doris(0.15.1-rc09)使用Datax-DorisWrite导致BE固定节点streamLoad任务过多问题排查
监控Doris BE部分重要指标的Prometheus Alert Rule
2022年16篇
2021年7篇
2020年9篇
2019年3篇
目录
目录
分类专栏
Doris
10篇
datax
2篇
数据同步
8篇
prometheus
6篇
运维
5篇
flink
1篇
canal
2篇
数据权限
3篇
积累
2篇
笔记
编码
7篇
环境配置
5篇
启动
1篇
建表
3篇
目录
评论 11
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
只是喜欢玩大数据
装载,请注明出处并打赏
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值