专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

分布式dataXCDC与关系图(neo4j)增量同步(完整版

  1。背景
  数据增量同步是ETL关键功能,在全量同步后,持续增量同步,保证数据的完整,正确和时效,通常有两种方式实现,双写和CDC
  双写优点,实现简单,写入源库同时写入目标库;缺点,代码侵入,影响正常业务
  CDC优点,无侵入,读取数据库log,获取数据变更;缺点,复杂,需要引入CDC组件,从数据变更(表行字段变更)到目标增量变更(通常是DTO)需要复杂的映射
  Cdc组件本身通用设计,支持扩展redis,elasticsearch等数据库同步
  本文包括两部分,cdc同步框架和基于cdc同步框架的关系图增量同步设计2。参考和术语
  CDCchangedatacapture数据变更抓获
  RBT基于规则的转换组件
  《分布式datax架构设计》
  《分布式datax详细(落地)设计》
  《分布式时间槽设计》3。SETL介绍
  下图介绍SETL逻辑架构和规划
  setlrbt全量同步组件,datax组件,接入分布式调度,实现高性能的全量同步
  setlcdccdc增量同步datax组件,接入分布式时间槽实现高可靠增量,后续规划接入kafkaconnect
  setlstream规划中,流式etl,引入kafkaconnect,实现高吞吐低延时的增量同步
  configcenter配置中心,datax原生使用本地文件配置,配置中心摆脱本地文件限制,实现分布式系统的必要基础设施
  rbtransformer基于规则引擎的转换器组件,针对dataxrecord
  seltdata相当于springdata,数据读写4。DebeziumCDC原理
  Debeziumcdc组件,支持多种关系数据库,如sqlserver,db2,oracle,mysql等,也支持newsqlnosql,如Cassandra,mangodb,抽取并解释数据库日志获取数据变更,支持以事件监听模式消费事件,debezium支持ack机制,实现事件消费的可靠性
  下图是dbz主要模块
  Apidbz引擎定义,目前只有一个实现,EmbeddedEngine
  Embeddeddbz引擎的实现,顾名思义,可以嵌入到用户的代码,轻量级的,称为api方式
  Serverdbz预置的事件分发服务,开箱即用,实现分发变更事件到redis,plusar和其他云消息服务,称为dbzengineserver方式,但其依赖Quarkus,一个对标springcloud框架,如果你已使用springcloud构建你的服务,可能对该方式不是很感兴趣
  connector官方推荐的deploy方式,如下图,接入kafkaconnect,connector作为kafkaconnect的source,捕获源数据库变更,以事件方式推动到kafka,订阅事件的sink,写入到目标库,该方式充分利用kafka特性
  前2种方式没有接入kafka,使用的是相同的connector,但也依赖kafka类,如事件,消费接口等
  5。setldatacdc开发框架
  上图是setlcdcsdk,虚线框是dbz的类,其他属于estldatacdc组件
  DbzEngineClientConfiguration构建和初始化dbz引擎客户端,支持读取本地配置文件,配置中心
  DebeziumEngineClientdbz引擎客户端,负责启动停止dbz引擎
  DispatchChangeEventConsumerImplcdc事件消费实现,接收原生事件,负责批量ack
  DispatchChangeEventListenerImplChangEventListenersetlcdc组件
  1)接收原生变更事件,读取和解释到RowDataBean,使用内部模型,如,操作类型,数据的before和after,解耦对dbz的依赖,也更方便后续使用
  2)分类变更事件,目前只有行数据(row)事件,过滤掉query操作,分发给ChangeEventRowListener
  BinlogSyncChangeEventRowListener实现,实现订阅服务,依据ChangeEventHandler设置感兴趣的db。table和增删改类型调用处理器
  开发人员实现自己的同步业务只需实现ChangeEventHandler即可,sdk隔离dbzcdc的内部机制6。关系图(neo4j)增量同步设计
  增量同步是cdc开发框架应用,cdc告诉我们哪个库哪个表哪行哪些字段变更,但增量同步的目标库,如,neo4j,elasticsearch存储相当于dto,因此需要映射计算框架,从表行字段的变更映射为变更的dto
  配置和执行
  上图是CDC模型,包括CDC定义,映射Action设计,属于rbtransformer模块
  CDCcdc配置模型,同时负责选择和执行适用cdc动作
  CdcActioncdc动作,数据变更映射到目标库变更的逻辑实现
  CdcRulecdc动作是否适用数据变更,CdcRule返回布尔值
  CDCRunningContextcdc运行上下文
  dataxreader
  Cdc动作和变更事件处理器datax实现,该实现接入到dataxreader,使用datax的readertransformwriter机制,cdc发出数据变更事件,cdc动作负责映射为目标变更,transform规则转换,最后到writer,目标变更写入目标库
  同步实现时序
  同步实现时序展示数据变更事件分发,CDCAction执行
  关键步骤:
  1。21。21ChangeConsumer负责批量ack
  1。31。4解释变更事件,并转化为内部RowDataBean对象,解耦dbz
  1。5BinlogSync是ChangeEventRowListener实现,从这开始进入同步业务
  1。61。7查找对表变更感兴趣的cdc,表粒度较大,初步筛选,1。12精确筛选
  1。121。16onConditional通过规则返回action是否适用(RowDataBean),若适用执行
  1。15CdcReaderAction依据RowDataBean,源数据变更映射为目标变更,同步到目标库
  关系图CDC配置示例
  1)场景
  上图cdc示例schema,覆盖3类场景
  1。连接表关系变更filmfilmcategorycategory
  2。外键关系变更customerstore
  3。主从表多对一变更storeaddress对应图库的store顶点
  2)配置示例解释
  Cdc挂在rbt转换下,两者并无直接关系,这样设计主要方便cdc编写时参考
  Tables标签该cdc相关的表,可设置多个表
  Insertupdatedelete标签分别对应增删改分类的cdc动作,实际上,insert的事件可以产生update的action,该分类只是管理维度
  Action标签数据变更对应的动作,映射源变更为目标变更
  上图展示源customer表insert引起目标图库两个动作
  1)新增的customer顶点
  2)如果新增customer带有store外键,新增customerstore关系,适用规则
  r。afterField(storeid)!null,插入数据storeid不为空
  上图源customer变更引起目标变更,
  规则!(r。updates()。size()2r。isUpdate(storeid))
  判断数据变更除了storeid还有其他字段变更才出发,storeid变更,引起后面两个动作,删除旧关系,新增新关系,关系rule是一样的,参数来源不一样,删除的storeid来源于before,新增来源于after
  数据行lastUpdate必然变更,所以r。updates()。size()2
  上图删除变更映射,customer删除,首先删除关系,再删除节点
  退出策略(TBD)
  Cdc是事件流,事件源源不断产生,认为是永续执行,目前cdc接入datax,定时调度执行,因此需要一个机制退出,待下次定时调度再执行,例如,执行时长,未接收到事件时长等7。数据可靠性可靠channel
  可靠channel,可确认的分布持久的channel,Channel不可靠对于CDC是致命的,丢失数据;但对于全量同步可以接受,全量同步故障转移后,整个分片重新同步即可。可靠channel对于数据量比较大,没有分片的情况也非常有价值,相当于断点续传的能力,但对性能有一定影响
  CDC原生Dataxchannel分析
  整个数据链路包括2部分,
  第一段,CDC变更事件推送到reader,reader写到Exchanger(Channel)成功后ackCDC
  第二段,writer从Exchanger拉取数据变更,同步到目标存储
  另外,Channel承担流量统计和流控的职责
  可以看到,第二段是不可靠的,MemoryChannel底层使用内存ArrayBlockingQueue存放数据,datax节点崩溃,故障转移后,原节点Channel的数据将丢失
  Buffered类型Exchanger缓存Record,批量提交,存在丢失可能,reader需要非bufferedExchange配合,writer可以适用buffered或非buffered
  可靠channel设计原理和实现
  1)实现方案推模式
  数据链路同样的两个阶段,不同的是第二阶段,channel引入mq作为持久存储,提供可确认,方案改变原数据链路,数据从mq获取,writer依赖mq,从而也改变了writer开发模型,6。16。2只是激活pull统计,获取的数据并不使用。6。16。2放在57之间,是为了pull统计更准确
  2)实现方案拉模式
  同方案1,引入mq,不同的是,mq作为本地queue持久存储,Channel封装起来,writer不需要依赖mq,数据链路与原生一样,主动获取mq消息。本方案保持数据链路形态,即writer通过RecordReceiver获取Record。缺点,ExchangerChannel增加ack方法,主动消费,涉及消费异步ack问题
  推模式下channel统计
  推模式下,旁路读取record,读取record通过消息引擎,需要通知channel读取了record,channel计算record的大小,发起统计
  RecordReceiver接口增加byPassReader方法
  publicvoidbyPassReader(Recordrecord);7分布式dataXCDC
  分布式dataXCDC有两种可选方式,分布式作业和分布式时间槽
  分布式作业在《分布式dataX详细(落地)设计》介绍过,dataXCDC单分片,使用分布式作业,只有一个worker作业工作,其他worker作业备用状态,资源利用率不高,因此,分布式时间槽比较合适
  技术架构
  下面介绍分布式dataXCDC的技术架构,下图是分布式datax和分布式dataxCDC技术架构对比,前者使用分布式作业,后者分布式时间槽,通过对比更好了解分布式dataXCDC
  上为分布式dataXCDC,使用分布式时间槽模式;下为分布式dataX,使用分布式作业模式
  1。作业节点
  dataXCDC:分布式作业分片对应dataX作业,是standalone模式的dataxengine
  dataX:作业(worker)节点分片是dataX作业分片,是任务组模式的dataxengine
  2。Client
  dataXCDC:管理台api写入分片,没有专用client
  dataX:专用的client,作业模式下DataxEngine,使用分布式调度器,负责分片和分配分片
  3。配置中心
  dataXCDC:配置放入配置中心,避免每个节点存放,影响动态伸缩和维护,当然也支持本地配置文件,每个worker节点配置所有的dataXCDC作业,用于failover
  dataX:作业配置直接写入分片的config节点,其他配置也可使用配置中心
  4。作业任务租统计
  dataXCDC:任务组的统计也是作业统计,因此不需要聚合为作业统计,直接拉取复制到prefix,latestprefix按设定的时间段计算速率;cdc没有最终summary,持久库保存多个summary,设定保存时限自动删除
  dataX:设计比较复杂,参考《分布式datax详细(落地)设计》
  5。分片策略
  dataXCDC:eager模式,一次分配完分片,尽可能早地执行所有分片,达成用户触发时间要求
  dataX:ondemand模式,按需分配工作量,获得更小的总体执行时间
  6。故障转移
  两者故障转移机制一致,节点下线,其他节点接替分片,不同的有两点,
  6。1CDC处理事件流,事件流经channel,需要可靠channel,节点切换后继续执行未ack的channel内的事件,作业整个分片重新处理;
  6。2cdc持续运行,需要保证一定的空闲节点数,需监控告警空闲节点数
  动态分片新增和撤销
  分布式时间槽支持cancel分片,设置cancel标志,待下次重启删除cancel分片,但cdc一直运行,该功能不能生效,因此目前未有动态分片新增和撤销
  znode结构
  setlcdc根节点,可以看成一个用户域,用户定义
  cdcwatcher观测节点,一个域只需一个观测者,其分片与域内所有作业的所有分片一一对应,用户定义
  cdc1001逻辑作业,其分片是dataxCDC作业,job模式的dataxEngine,这里有两个作业概念,分布式作业和dataX作业,域内可有多个作业,每个不同作业类型,上图两个分片对应两个dataXCDC作业,分片名称userId作业名称;
  作业分片的配置
  观测分片配置是任务组统计的reidskey前缀
  dataXCDC作业配置,dataX作业jobId,作业配置,下图配置是本地文件,若使用配置中心,url以cc:开始
  8架构质量设计
  可靠性数据变更事件不丢失,数据变更事件至少消费一次,但允许重复处理
  依赖可靠channel,只有事件处理完毕ack,源头事件偏移更新,否则,事件重发,事件处理器需保证幂等性
  高可用变更事件处理是按顺序,只能单个线程按顺序处理,高可用是主备架构,处理节点失效,备用节点激活无缝接上失效节点
  这里涉及两个关键点,处理状态恢复,包括debezium位点存储文件和数据库schema文件;处理节点失效发现,备用节点激活
  dataxwriter数据变更事件允许重复处理,writer需要考虑幂等性附录Dbz引擎配置示例
  几个重要的配置
  connector。class数据源,mysql,oracle等
  offset。storage。file。filename偏移存储文件位置,通常多个CDC作业,需启动多个debezium引擎,文件路径要区分,同样,databases。history。file。filaname数据库schema文件位置
  database。server。name每个引擎配置不同的名称,否则出现异常:
  javax。management。InstanceAlreadyExistsException:debezium。mysql:typeconnectormetrics,contextschemahistory,serverlocalhost

美联储增发天量货币,又无法剪中俄羊毛时会发生什么?美联储,GameOver!一万亿对于绝大部分人来说,都是一个天文级别几乎无法理解的数字,虽然我们经常在媒体政治家和经济学家那里听到数万亿美元的消息。但是,人类的大脑很难理解如此巨大华为Mate50再次被透露外观参数拍摄价格基本清晰了从当下市场的角度来说,华为手机一定会有大的发展,因为在2012年前后转型为独立品牌时,它已经把该作的死,该犯的错都经历过了,并且现在掌握了大量的人才,那么没有几率会失败。加上华为一9。13市场逻辑梳理(一重要信息(一)宏观美国8月未季调CPI同比增长8。3,高于预期美国8月未季调CPI同比增长8。3,预估为8。1,前值为8。5。剔除波动较大的食品和能源成分的核心CPI环比上涨0。OPPOReno9新机型概念图及部分参数被曝光,会是你喜欢的样子吗?OPPO这个手机品牌,说实话,现在的品控和设计都还挺不错的。几年前的OPPO手机,只考虑了女性,如今的OPPO手机,无论男女都兼顾了,也就是说,现在的OPPO旗舰机型,基本男女通用IQOOZ6详细配置参数2022年8月25日ViVO发布了IQOOZ6手机,号称性能续航小超人,售价分别为8128G1699元,8256G1899元和12256G2099元。机身尺寸机身尺寸164。17mHM150均匀梯度磁场亥姆霍兹线圈磁场均匀磁场发生器绵阳力田磁电科技HM150麦克亥姆线圈梯度磁场1。概述梯度磁场已在磁法勘探磁性探伤考古挖掘沉船探测生物磁学,以及军事科研及人体磁场测量等诸多领域中得到广泛的应用。工程上的实验研究,武汉三镇阵中鲁能元素都有谁?曾经的10号核心在列武汉三镇作为中超新军,球员基本都是近几年从其他球队买入的,甚至更是打包了广州恒大的近半个主力阵容。从后防到中场,刘殿座邓涵文高准翼刘奕鸣何超等人都是来自恒大。而三镇队中的鲁能元素也如今控球后卫有多贵?美媒列出2023年收入最高的10名控球后卫现在的顶级后卫基本都是成为了NBA年薪最高的球员,要知道202223赛季斯蒂芬库里是联盟第一高薪,还有威少等人也是拿着四千万美元的年薪。因此,美媒FadeawayWorld列出了2S28新赛季改动总结,想快速上分就先熟悉新版本哈喽各位小伙伴们大家好,王者荣耀S28赛季终于更新了。每个新赛季难免都会出现一些系统小问题,这次是选择孙尚香会在对局加载页面提示资源损坏。新赛季还是上线了很多新内容的,装备的改动,过去现在未来正确养生姿势1从哪来,到哪去?弄清楚,不懂就问,问道,问历史,问佛,问自己,问你,问我,问她!2过去养生中医体质学现在养生中医养生学未来养生黄帝外经3生老病死人一生的完整过程,既要城市副中心服贸会设元宇宙专区,创意虚拟人苏小妹欢迎您北京日报客户端记者陈强在即将开幕的2022年服贸会上,北京城市副中心将在首钢园区文旅服务展区,打造沉浸式数字体验,构建大运河文化旅游景区一区三镇两区建设元宇宙专区和沉浸式演艺五大展
推动中国文化成果的全民共享,央数藏平台正式上线为贯彻落实公共文化数字化建设实施文化产业数字化战略的决策部署,积极应对互联网快速发展给文化建设带来的机遇和挑战,满足人民日益增长的精神文化需要,央视网孵化建立的数字藏品发售平台央数深耕工控二十载,英威腾新能源布局加速,变频器领导者再起航(报告出品方分析师国金证券张哲源姚遥)英威腾变频器及UPS领导者,加速拓展新能源变频器及模块化UPS领先供应商,聚焦工控能源电力。公司前身成立于2002年,聚焦工业自动化与能源电力紫光展锐T310T610T618安卓手机平台功能介绍1AI场景识别和增强AI场景识别的技术点实时智能检测场景,处理速度快,识别准确通过基于深度学习卷积神经网络的图像分类技术,对摄像头捕获到的数据进行分类,判断其所属场景的类别根据视频耶鲁大学心理学家三个常见的思维陷阱,如何避免?根据耶鲁大学心理学家的说法,三个常见的思维陷阱以及如何避免它们头脑是个棘手的东西。它可以让我们相信,即使我们多年没有听过这首歌,我们也可以在卡拉OK上自信地唱出波西米亚狂想曲,或者曲面屏手机进入千元档竞赛,荣耀X40正式发布三湘都市报9月16日讯(全媒体记者朱蓉)9月15日,在荣耀举行的秋季新品发布会上,该品牌发布了荣耀MagicBookV14笔记本2022荣耀X40手机全新荣耀MagicBookX系iPhone14Pro加价两千起,灵动岛还香吗?相信前几天,有很多读者跟小编一样,守在电脑前抢购iPhone14,结果一无所获。很多人排队在抢iPhone不是拿来自用,都是黄牛提前组织好了,抢到一台加价一千回收。九月九号当天,苹iQOO11部分规格曝光2K120Hz三星E6直屏,骁龙8Gen2调度略激进虽说高通的下一代旗舰SoC骁龙8Gen2要在11月才正式发布,不过许多安卓厂商已经开始在为这颗SoC进行深度打磨研究了,近日有消息表示,iQOO的下一代旗舰手机iQOO11系列将会长沙电信大楼火灾后部分设备断电湖南电信网络受影响大皖新闻讯9月16日下午,湖南长沙第二通信楼外立面起火,明火已被扑灭,当天晚上19点03分,中国电信官方微博发布消息称,为防止发生危险,已对大楼部分设备进行断电,目前固网通信和移动工信部5G基站单站址能耗已比2019年商用初期降低超20中新社北京9月16日电(记者刘育英)5G和数据中心是节能降耗重点领域之一。中国工业和信息化部节能与综合利用司司长黄利斌16日表示,目前5G基站单站址能耗已比2019年商用初期降低了2013年,近80岁老人进监狱,警官点名发现不对劲,一查身份吓一跳江西饶州监狱里,犯人们正在篮球场内放风,东一堆人西一群人,一位白发老人正闭着眼睛,惬意地享受着难遇的暖阳。突然,两名狱友来到他的跟前,老人瞬间睁开双眼,警惕地盯着眼前的不速之客。一国庆节朋友圈抖音文案集结,拿走不谢(一)1下辈子还做中国人吗?你上辈子已经问过了。2什么时候觉得情敌越多越好?当他们说我爱中国的时候。3哪里会写三行情诗生于斯,长于斯就是我经历过最浪漫的事4何其有幸,生于华夏,见证百年,
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网