资讯专栏INFORMATION COLUMN

如何实现 Logstash/Elasticsearch 与MySQL自动同步 更新操作 和 删除操作

X_AirDu / 1152人阅读

摘要:技术背景我们现在的同步是依靠的插件来实现的自动增量更新这个的方案貌似只能增量添加数据而不能修改或者删除数据其实不然我们根据这个插件的一些配置是可以实现我们要的效果的方案原理用一个更新时间的字段来作为每次增量更新的这样每次增量更新就会

技术背景

我们现在的同步, 是依靠 Logstashinput-jdbc-plugin插件来实现的自动增量更新,这个的方案貌似只能 增量 添加数据而不能修改或者删除数据. 其实不然, 我们根据input-jdbc-plugin这个插件的一些配置, 是可以实现我们要的效果的.

方案原理:

用一个更新时间的字段来作为每次Logstash增量更新的tracking column, 这样Logstash每次增量更新就会根据上一次的最后的更新时间来作为标记.
索引的document id必须是 主键, 这样在每次增量更新的时候, 才不会只是增加数据, 之前ID相同的数据就会被覆盖, 从而达到update的效果.
删除是建立在上面更新的原理之上, 就是再加一个删除标记的字段, 也就是数据只能软删除, 不能直接删除.

以上就是这个方案的实现原理, 缺点就是要多加一个更新时间的字段, 并且数据不能直接删除, 只能软删除, 所以这个方案有一定的局限性, 但是对于大部分操作, 应该都是可以妥协的.

实施细节: 第一步: 数据表设计

你的表, 必须要有一个update_time或同样意思的字段, 表明这条数据修改的时间
如果有删除操作的话, 是不可以直接删除数据的, 必须是软删除,就是还得有一个 delete_time或者is_delete或相同意思的字段

第二步: 配置logstash

input 和output

input {
  jdbc {
    ...
    statement => "SELECT * FROM article WHERE update_time > :sql_last_value ORDER BY id ASC"
    tracking_column => "update_time"
    ...
  }
}
output {
  elasticsearch {
    ...
    document_id => "%{id}"
    ...
  }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48498.html

相关文章

  • 如何实现 Logstash/Elasticsearch MySQL自动同步 更新操作 删除操作

    摘要:技术背景我们现在的同步是依靠的插件来实现的自动增量更新这个的方案貌似只能增量添加数据而不能修改或者删除数据其实不然我们根据这个插件的一些配置是可以实现我们要的效果的方案原理用一个更新时间的字段来作为每次增量更新的这样每次增量更新就会 技术背景 我们现在的同步, 是依靠 Logstash的 input-jdbc-plugin插件来实现的自动增量更新,这个的方案貌似只能 增量 添加数据而不...

    SunZhaopeng 评论0 收藏0
  • 移动云平台的基础架构之旅(二)- 云代码篇

    摘要:作为一款优秀的平台系统,其云代码的功能如何,是如何实现的,又有哪些加分项,接下来将为大家一一揭晓。当然为了开发者更快的开始,同时提供了和项目来让开发者更快接触云代码。 云代码的由来 随着MBaaS的发展,取代移动企业应用程序平台的趋势也越来越明显。MBaaS系统为了让企业能方便快捷的开发自己移动应用程序,提供了诸多移动客户端支持,有最通用的REST API,也有方便移动开发者的软件开发...

    Carson 评论0 收藏0
  • Elastic Stack 日志分析平台搭建笔记

    摘要:年月,旧金山举行的第届大会上,公司改名为。在系统上,将指令设置为即可禁用。配置文件中的指令用于将类型转为或。在字符串内部的,是字符串插值语法,官方称之为。同步过来的日志记录全部有条,第条日志的内容是。 原文:http://nullwy.me/2019/01/elas...如果觉得我的文章对你有用,请随意赞赏 Elastic Stack(旧称 ELK Stack))是最受欢迎的开源日志平...

    Imfan 评论0 收藏0
  • Elasticsearch 参考指南(介绍)

    摘要:你运行价格警报平台,允许精通价格的客户指定一条规则,例如我有兴趣购买特定的电子产品,如果小工具的价格在下个月内从任何供应商降至美元以下,我希望收到通知。 介绍 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它允许你快速,近实时地存储,搜索和分析大量数据,它通常用作底层引擎/技术,为具有复杂搜索功能和要求的应用程序提供支持。 以下是Elasticsearch可用于的...

    or0fun 评论0 收藏0
  • UCloud一站式智能大数据平台USDP免费版正式发布!

    摘要:企业微信截图企业微信截图兼容最广的一站式智能大数据平台涵盖了等众多开源大数据组件,支持对这些组件进行运维中台建设数据开发业务可视化等全栈式大数据开发运维管理。通过一站式智能大数据平台支持的等分布式运算框架,可以高效的进行机器学习应用开发。背景在大数据业务系统中,所有技术栈生态均是围绕着存储进行扩展的,目前开源的主流存储技术栈主要包含如下 3 种类型:· HDFS:Hadoop 系列套件,包含...

    Tecode 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<