关系经济人类预测化学自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

FlinkCDC入门之数据同步和故障恢复

8月8日 溷元楼投稿
  前言
  FlinkCDC是一款基于ChangeDataCapture(CDC)技术的数据同步工具,可以用于将关系型数据库中的数据实时同步到Flink流处理中进行实时计算和分析,下图来自官网的介绍。
  下图1是FlinkCDC与其它常见开源CDC方案的对比:
  可以看见的是相比于其它开源产品,FlinkCDC不仅支持增量同步,还支持全量全量增量的同步,同时FlinkCDC还支持故障恢复(基于检查点机制实现),能够快速恢复数据同步的进度,并且支持的数据源也很丰富〔2〔(在2。3版本已支持MongoDB、MySQL、OceanBase、Oracle、PostgressSQL、SQLServer、TiDB、Db2等数据源)。
  本文将介绍FlinkCDC在数据同步和故障恢复等方面的内容(以MySQL和Oracle为例),同时完整代码也已上传到GitHub。效果展示MySQL
  Oracle(相比MySQL延迟会稍高)
  数据库配置MySQL(5。7)
  修改my。cnf配置文件(Windows下是my。ini文件),增加以下配置内容:〔mysqld〕开启binloglogbinmysqlbin选择ROW模式binlogformatROW对于MySQL集群,不同节点的serverid必须不同serverid1过期时间expirelogsdays30
  Tips:修改完成后需要重启MySQL服务
  建库建表:建库建表createtableflink。user(idbigint(20)notnull,usernamevarchar(20)defaultnull,passwordvarchar(63)defaultnull,statusint(2)defaultnull,createtimedatetimedefaultnull,primarykey(id))ENGINEInnoDBdefaultCHARSETutf8mb4;
  创建用户并授权:创建用户flinkCREATEUSERflinkIDENTIFIEDBY授权GRANTSELECT,RELOAD,SHOWDATABASES,REPLICATIONSLAVE,REPLICATIONCLIENTON。TO将flink库的所有权限授权给flink用户GRANTALLPRIVILEGESONflink。TO刷新权限FLUSHPRIVILEGES;Oracle(11g)
  以DBA身份连接:SID需要根据实际情况进行设置,比如:XE。exportORACLESIDSIDsqlplusnologCONNECTsysmanagerASSYSDBA
  配置日志:altersystemsetdbrecoveryfiledestsize20G;日志文件的地址可以根据自己的情况进行设置
  确认是否配置成功:
  创建用户并授权:CREATEUSERflinkIDENTIFIEDBYGRANTCREATESESSIONTOGRANTFLASHBACKANYTABLETOGRANTSELECTANYTABLETOGRANTSELECTCATALOGROLETOGRANTEXECUTECATALOGROLETOGRANTSELECTANYTRANSACTIONTOGRANTCREATETABLETO
  建表并增加日志记录:建表CREATETABLEflink。user(idNUMBERNOTNULL,usernameVARCHAR2(20),passwordVARCHAR2(63),statusINTEGER,createtimeTIMESTAMP,PRIMARYKEY(id));日志配置ALTERTABLEflink。userADDSUPPLEMENTALLOGDATA(ALL)COLUMNS;代码配置运行环境
  依赖
  版本
  Java
  17hrflinkconnector
  2。1。0
  flink
  1。13。0
  maven
  3。6。2连接配置flinkcdc:datasource:默认类型为MySQLaddr:localhost:3306database:flinkusername:flinkpassword:flinktablelist:user
  Tips:关于数据源的连接完整配置属性可参考DataSourceProperties。java文件,关于检查点的配置可参考CheckPointProperties。java文件恢复点配置
  为了实现故障恢复(应用停止运行过程中数据库有增删改操作的情况)的情况,需要在代码中进行恢复点的相关配置:获取配置的恢复点路径,首次运行不存在会默认进行创建varsaveDircheckPointProperties。getSaveDir();varfoldernewFile(saveDir);if(!folder。exists()!folder。isDirectory()){if(!folder。mkdirs()){thrownewIllegalStateException(文件夹创建失败);}}vardataSourceTypedataSourceProperties。getType()。name()。toLowerCase();vardataSourceSaveDirsaveDirFile。separatordataSourceTvarsavepointDirSavepointUtils。getSavepointRestore(dataSourceSaveDir);varconfigurationnewConfiguration();if(savepointDir!null){设置恢复点路径varsavepointRestoreSettingsSavepointRestoreSettings。forPath(savepointDir);SavepointRestoreSettings。toConfiguration(savepointRestoreSettings,configuration);}启用检查点并设置检查点的保存路径varenvStreamExecutionEnvironment。getExecutionEnvironment(configuration);env。enableCheckpointing(checkPointProperties。getInterval(),CheckpointingMode。EXACTLYONCE);varcheckpointConfigenv。getCheckpointConfig();checkpointConfig。setCheckpointStorage(checkPointProperties。getStorageType()。getPrefix()dataSourceSaveDir);通用注意点
  为了避免数值类型显示是一堆字符串,需要增加以下配置:详见https:github。comververicaflinkcdcconnectorswikiFAQ(ZH)E9809AE794A8faqQ5prop。setProperty(bigint。unsigned。handling。mode,long);prop。setProperty(decimal。handling。mode,double);ORACLE配置注意点
  为了避免日志增长过快以及读取日志满的问题,需要增加以下配置:详见https:github。comververicaflinkcdcconnectorswikiFAQ(ZH)oraclecdcfaqQ1prop。setProperty(log。mining。strategy,onlinecatalog);prop。setProperty(log。mining。continuous。mine,true);
  对于Oracle11g,连接配置中需要增加:详见https:github。comververicaflinkcdcconnectorswikiFAQ(ZH)oraclecdcfaqQ2prop。setProperty(database。tablename。case。insensitive,false);项目运行及使用介绍下载代码
  由于本人将博客相关的示例代码都集中到了一个仓库,因此如果不想拉取整个仓库,推荐使用GitZipforgithub这个插件,就可以只下载部分的文件(选中指定文件后点击右下角的下载按钮):
  使用介绍
  对于需要监控的表,只需要创建相应的实体类,并新建一个类继承AbstractMessageListener(可重写其中的create、delete、update、read等方法处理相应的事件)即可,其中FlickCdcMessageListener注解内的参数填相应的表名即可监听相应的表变更事件(同时需要在yaml文件中tableList中增加要监听的表,如果是Oracle数据库还需要增加日志配置):importcn。butterfly。flinkcdc。annotation。FlickCdcMessageLimportcn。butterfly。flinkcdc。pojo。Uimportlombok。extern。slf4j。Slf4j;importorg。springframework。stereotype。C用户表消息监听器authorzjwdate20230314Slf4jComponentFlickCdcMessageListener(user)publicclassUserMessageListenerextendsAbstractMessageListenerUser{Overridepublicvoidcreate(Useruser){log。info(新增用户:{},user);}}其它注意点FlinkCDC默认的同步策略是第一次运行先进行全量同步,后续即可进行增量读取,因此表数据量比较大的时候,重写AbstractMessageListenerread方法时需要特别注意处理大量数据的情况。由于FlinkCDC是根据数据库的事务日志来获取数据更改的,如果恢复点之后发生了数据更改,那么在恢复点之后的数据将被重复读取,因此需要考虑重复读取的情况。总结
  本文简单介绍了FlinkCDC的数据同步和故障恢复方面的内容,对相关基础知识进行了省略
投诉 评论 转载

迷人的老祖宗,秦始皇留下的未解之谜,有多少?导语:秦始皇被西方人士称之为东方的拿破仑,他是实至名归的千古一帝,但是围绕在秦始皇身边有很多的评论,除了歌颂他功德的,更多的还是抨击他的暴行。因秦始皇完成祖国大一统,所以……春光正好,乡村旅游提质升级再出发湖北省宜昌市秭归县西陵峡村景色。新华社发四川省崇州市道明镇,一名小游客在油菜花田中玩耍。新华社发吉林省永吉县北大湖镇五里河村一家民宿,工作人员在整理房间。新华社发……1940年,她18岁,不幸沦为慰安妇,20年后,这个伤疤被揭1940年,在武汉的一栋两层木楼前,一大堆日本兵挤在一起。他们手里拿着几块钱,一边交谈,一边对着楼房指指点点。木楼有很多个独立的房间,每个房间门口挂着一张木牌。从半掩的房……FlinkCDC入门之数据同步和故障恢复前言FlinkCDC是一款基于ChangeDataCapture(CDC)技术的数据同步工具,可以用于将关系型数据库中的数据实时同步到Flink流处理中进行实时计算和分析……长征开始时,中央红军十二主力师,师长有四位开国上将经过一年的艰苦作战后,中央红军被迫战略转移,开始长征。长征开始时,中央红军主要有军委第一、第二野战纵队及红一、红三、红五、红八、红九军团等共八万六千多人,其中主力为五大军团十二……两会热点提案,哪些呼声最高?哪些招来骂声?哪些老百姓最关心?2023年两会的召开,全国人民都在关注着,大家都希望那些代表能够从实际出发,提出一些好的提案,其中有些提案赢得了很多个的相声,有些提案遭到了一片骂声,还有一些是老百姓最关心的提……到底是穷人养活富人还是富人养活了穷人?富人的财富是穷人们给他们创造的,如果不是穷人为了自己求生存而去替富人们拼命地创造,绝大多数富人不会富起来,更不可能富上加富,当然有一夜暴富的情况除外,但也是劳动人民曾经的积累。……泰山球迷,你凭什么骂徐新?骂的是上港,骂的是孙祥,骂的是程序猿我是泰山球迷,我没有骂徐新,球员都有自己选择的权力,徐新的离开,对于泰山队来说,问题不大。旧的不去新的不来,走了徐新,还会有更强……让你印象深刻的一道美食是什么?感谢邀请!个人最喜欢的美食就是豆腐!豆腐制做的原材料是大豆,经过制浆、凝固后形成含有大量水分的凝胶体,即为豆腐!豆腐生产加工不受季节影响,在全国南北区域均广泛覆盖!南豆腐……孩子今年刚上一年级,在班上最小没上过学前班,之前公立幼儿园,我曾经教过一年级,来跟家长们普及一下,到底该不该在上一年级之前,让孩子提前打下一定的学习基础。事实最具有说服力,拿我曾经教过的一年级举例来说。当时我教的是一所普通的……助听器可以给听障人士带来什么好处?助听器可以实现人与人的沟通没有障碍,让人听的清楚一点可以让听障人士听得更清楚,助听器无法让您的听力恢复正常,但可以显著改善听的效果。首先,将听得更清楚,助听器……地产已经越来越乏力了,未来什么行业会取代它?地产已经乏力,目前开两个行业,前景一定不错的,1。新能源车,估计2030年,燃油车停售,2050年,全面新能源车,目前,市场主流是,电池,氢能源,太阳能板,核能,目前,电……
真正能毁掉婚姻的大多是女人的过度抱怨怎样化妆好看狗用舌头舔水真的能喝到嘴里吗德牧发说说的情感句子年会战袍怎么穿?看这一篇就够了!我喜欢的布娃娃万里归途居然把演出机会给了这三个人!结果他们的表现有多好界面晚报北京7年来首次在12月发布沙尘预警春运机票预订量环比这就是绩效考核指导老师同事夸夸我的同学测试宝宝智力水平的好方法怎样求婚最浪漫帮你赢得美人归
红楼梦中玉钏是谁的丫鬟玉钏是怎样的人19分12帽!辽篮争议内线展现天赋,3年终开窍,他比朱荣振更 小升初满分作文爬山的乐趣诺瓦半自动咖啡机如何使用诺瓦半自动咖啡机使用方法详解15岁网红周楚娜自曝后悔整容,隔天就自己打脸,网友满嘴谎言张同学为什么这么火,张同学是什么人文明演讲稿高效人士工作计划的七步分析法:知止定静安。。。故宫彩妆系列故宫真的进军彩妆界了哪个驾校好些(资阳哪个驾校好些)人际交往十大黄金法则穿越火线之见面(一)

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州