sql server 中有没有类似于阿里canal的功能

sql server 中有没有类似于阿里canal的功能,第1张

早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps 目前内部使用的同步,已经支持mysql5x和oracle部分版本的日志解析

canal配置方式有两种:

spring配置的原理是将整个配置抽象为两部分:

通过spring的PropertyPlaceholderConfigurer通过机制将两部分融合,生成一个instance实例对象,每个instance对应的组件都是相互独立的,互不影响。

properties配置文件分为两部分:

a在canalproperties定义了canaldestinations后,需要在canalconfdir对应的目录下建立同名的文件

比如: canaldestinations = example1,example2 ,这时需要创建example1和example2两个目录,每个目录里各自有一份instanceproperties

ps canal自带了一份instanceproperties demo,可直接复制conf/example目录进行配置修改。

b 如果canalproperties未定义instance列表,但开启了canalautoscan时

目前默认支持的xxx-instancexml有四种:

spring/memory-instancexml介绍:

spring/file-instancexml介绍:

spring/default-instancexml介绍:

spring/group-instancexml介绍:

>

在日常的业务开发场景中,像 一个人有多套房子,多个住址 ,一篇文章中有多个评论这种需求还是非常常见的。当我们使用 Elasticsearch 来进行存储时, ES 的字段类型是 nested 类型 ,虽然这个效率不高。

当我们使用 canal 对数据进行增量同步到 ES 时,canal-adapter 是否是支持 nested 类型呢?

查看 issue 提问

好遗憾。大佬说暂时不支持。

在本想放弃的时候,看到 issue 中有位小伙伴说,配置 object 兼容 nested ,但是并没有给出解决方案。废话不多说,实践一把,走起。

1 数据处理

11 创建 存在 字段类型为 nested 的索引 canal_test

首先创建 elasticsearch的索引名为 canal_test  ,其中 addresses 字段是 nested 类型

创建 两张表 t_address(地址表),t_rk (人口表)。一个人可以有多个地址,一对多的关系

默认已经熟悉 canal 和 canal-adapter 的使用。在同步到 es 中,我们知道需要为每个索引配置一份 yml 的配置文件,下面创建canal_testyml 文件 ,同步配置如下

重点关注

配置中的关键

  获取第 1 步中准备的sql,执行测试数据 sql

canal 执行日志

  3  同步结果

4 搜索验证 

查询结果:

好了 ,今天的实践就到这里。你学废了吗? 

这边格式有点奇怪,有需要可以到公众号看

>

carpal canal名词解释:腕管

由腕横韧带与腕骨沟共同构成的骨筋膜鞘。管内有指浅、深屈肌腱及拇长屈肌腱共9条肌腱、正中神经、桡侧囊、尺侧囊通过。

腕管综合征:一种最常见的周围神经被挤压的疾病,腕管综合征以中年女性多见,男性患者常有职业病史。腕管综合征中双腕发病率为30%以上,其中绝经期女性占双腕发病者的90%。腕管综合征是各种原因引起腕管内压力增高,压迫正中神经,引起感觉异常。

正中神经主要支配拇指、食指、中指、环指的桡侧,因此正中神经受压主要表现为这些部位的感觉异常。腕管综合征的典型症状是正中神经支配区的手指麻木、刺痛、灼热或酸痛,也可伴有其他症状。腕管综合征的治疗方法包括非手术治疗和手术治疗。

腕管综合征不仅可造成手指感觉异常,还可出现手指肌肉萎缩、无力,影响日常生活。预后较好,一般术后6~8周可完全恢复活动。

(屈拇长肌腱,4条屈指浅肌腱,4条屈指深肌腱)。尽管腕管两端是开放的入口和出口,但其内组织液压力却是稳定的。腕管内最狭窄处距离腕管边缘约50px,这种解剖特点与腕管综合症患者切开手术时正中神经形态学表现相符。

正中神经走行在屈肌支持带下方,紧贴屈肌支持带。在屈肌支持带远端,正中神经发出返支,支配拇短展肌,拇短屈肌浅头,和拇对掌肌。其终支是指神经,支配拇、示、中指和环指桡侧半皮肤。

有研究认为过度使用手指,尤其是重复性的活动,如长时间用鼠标或打字等,可造成腕管综合征,但这种观点仍存在争议。腕管综合征还容易出现于孕期和哺乳期妇女,机理不明,有观点认为与雌激素变化导致组织水肿有关,但许多患者在孕期结束后症状仍然未得到缓解。

otter和itour两种一般情况下otter准确一点。

一般来说,我们对于数据库最主要的要求就是:数据不丢。

不管是主从复制,还是使用类似otter+canal这样的数据库同步方案,我们最基本的需求是,在数据不丢失的前提下,尽可能的保证系统的高可用,也就是在某个节点挂掉,或者数据库发生主从切换等情况下,我们的数据同步系统依然能够发挥它的作用_数据同步。

通过阅读文档和源码,我们可以知道,对于一个canalserver,基础的框架包括以下几个部分:MetaManager、EventParser、EventSink和EventStore。其中EventParser的作用就是发送dump命令,从mysql数据库获取binlog文件。发送dump命令,可以指定时间戳或者position,从指定的时间或者位置开始dump。

以上就是关于sql server 中有没有类似于阿里canal的功能全部的内容,包括:sql server 中有没有类似于阿里canal的功能、浅谈:canal配置方式、canal 系列:ES中nested嵌套类型同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9709465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存