第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

一鏡到底 ElasticSearch 數(shù)據(jù)遷移同步技術(shù)

標(biāo)簽:
Java MySQL

简介

CloudCanal 对于 Elasticsearch 的支持经历了很多轮迭代,版本一路从 6.x,7.x 支持到 8.x 版本,也适配了其纷繁多样的 API。

因为 Elasticsearch 是一个相当流行的、实时的、并且具备一定不可替代能力的搜索引擎,所以很有必要对比下市面上我们能够比较容易获得的、免费的数据迁移同步工具,让大家落地实时数据搜索和分析更加有信心。

本文即从一个比较窄但是应用广泛的场景 - MySQL 到 Elasticsearch 数据同步技术 - 切入,比较不同技术的优劣和相关技术细节,最后给到一些展望。

Elasticsearch 数据迁移同步技术对比

目前能够比较容易获得的、免费的、并且有一定应用范围的数据迁移同步工具有:Logstash 和 FlinkCDC,CloudCanal 也算其中之一。

一些对比如下表(如有错误,可联系笔者进行修改)。

Logstash FlinkCDC CloudCanal
产品化 基础 基础 完备
高可用
任务创建 配置文件 配置文件 + 代码 可视化
监控告警 基础 基础 完备
索引(结构)迁移
全量迁移
实时同步
数据校验
索引结构同步(DDL) 有限(加列)
索引定义依赖
数据源插件(原厂) 一般 一般 丰富
数据源插件(社区) 丰富 一般
供应商 原厂 第三方 第三方
获取方式 开源 开源 免费社区版

综合来看,各个产品各有特点,并且有自己的局限性。

Logstash 和 FlinkCDC 更多偏向社区,但是他们背后庞大的商业产品体系(分别对应 ElasticSearch 和 阿里云 MaxCompute & Dataworks)注定两者定位仅仅是支撑工具。

CloudCanal 更加偏商业化些,但是背后公司以此谋生。

CloudCanal Elasticsearch 迁移同步技术介绍

基于 index mapping(索引结构)

因为 CloudCanal 最初支持从结构化数据库 - MySQL、Postgres、TiDB 等迁移同步数据到 Elasticsearch ,所以采用基于 mapping 方式构建目标数据。

具体展开,即在迁移同步数据到 Elasticsearch 前,CloudCanal 读取源端表结构,自动生成对应的 Elasticsearch 映射定义,并在对端创建,即结构迁移。

全量迁移和增量同步中,CloudCanal 会强依赖目标端的 mapping 结构进行数据构建。

基于 index mapping 方式构建目标数据带来的额外好处是:在 Elasticseach 上保持源端所有字段高速可查特性,叠加其对字符串字段基于倒排索引所带来的模糊查询能力。

处理 mapping 的变化 (DDL)

在关系型数据库同步到 Elasticsearch 过程中,源端表结构可能会动态变更,例如添加新字段等 DDL 操作。

对于 index 的 dynamic 参数设置为 false 后,Elasticsearch 将无法自动更新该结构变更,这将导致新的字段数据无法基于索引进行检索。

为了解决这一问题,CloudCanal 支持同步源端 DDL 加列的变更操作 - DDL 语句转换成 Elasticsearch 操作,动态更新到 index 的 mapping 中。

动态更新 mapping 的好处在于:

  • 保证两端结构一致,满足业务的动态变更需求
  • 无需用户手动干预构建索引,方便用户直接利用最新字段进行查询分析
  • 有效弥补了 Elasticsearch 映射静态的限制

客户端 API 选择与得失

CloudCanal 依赖 Elasticsearch Java SDK 进行结构和数据操作,没有使用其基础 REST API 进行新的封装和调用。

这样做带来的好处是更少的工作量和更好的性能,坏处是 Java SDK 随着 Elasticsearch 版本升级变化极大,导致 CloudCanal 需要做较多的驱动隔离工作。

从 CloudCanal 架构设计原则上来看 - 不直接依赖开源/商业的业务组件,依赖数据库官方驱动 - 我们应该做了正确的事情。

CloudCanal Elasticsearch 数据迁移同步展望

丰富源端数据源

目前 CloudCanal 支持 MySQL (或 MySQL 包装产品)、Postgres、TiDB、Kafka 同步到 Elasticsearch。

后续支持更多的源端数据源是一项非常重要的工作,且不仅限于结构化数据源,更有半结构化(mongodb)、非结构化数据源(redis、text file 等)作为源端的迁移同步,而后者对于基于 index mapping 的数据迁移同步带来很大的挑战。

Elasticsearch 源端数据同步

CloudCanal 尚未实现对 Elasticsearch 进行源端数据同步功能,但是我们收到了蛮多社区用户和商业用户此类需求。

当前类似 Logstash 实现的也仅仅是全量数据迁移(使用 logstash-input-elasticsearch 插件),增量同步尚无合适方案,基于 trigger(如有)或定时基于时间戳增量扫描可能是解决方式。

基于 store 构建目标数据

CloudCanal 后续将支持基于 store 构建目标数据,即直接将 doc 写入目标端的存储文件中,不再依赖索引的 mapping 结构。

基于 store 构建目标数据好处在于:

  • 支持同步非结构化数据,实现对各类数据源的通用同步
  • 用户可以自行决定索引的构建和查询逻辑,更轻松实现各类数据分析场景
點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消