V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jiobanma
V2EX  ›  程序员

关于基础数据服务于 Elasticsearch 选型的问题求助

  •  
  •   jiobanma ·
    banmajio · 2020-07-31 10:40:28 +08:00 · 1614 次点击
    这是一个创建于 1611 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ps:楼主小白,可能存在表述不清楚和认知错误,大佬请不要建议,虚心请教,请求指正!!! 1.公司想做一个基础数据的 springboot 的服务,用来 curd 基础数据,以此降低数据库查询大数据量时带来的耗时和模糊查询时的一些问题。 日志数据量大,如果使用 like 进行模糊查询可能耗时太久。 2.查到了关于数据引擎 Elasticsearch 的使用,大概看了一下网上的资料,有一些不懂的地方如下: a.如何做好数据的同步,是像 redis 那样,对数据库 curd 的同时对 Elasticsearch 进行 curd 操作? b.数据同步插件的选择:查阅资料有两个数据同步的插件:logstash-input-jdbc,go-mysql- elasticsearch 。但是网上说 logstash-input-jdbc 这个插件不能同步删除操作,并且同步最短时间差是 1 分钟,不能满足实时同步; 而 go-mysql-elasticsearch 这个插件可以实现实时同步和 curd 的实时操作,但是需要安装 go 的环境,数据量并没有那么大,如果还要安装这么多环境会不会显得服务体量太大? 3.对于我们的需求有没有更好的实现方式,或者轻量级的搜索引擎可以选择?

    4 条回复    2020-08-01 11:12:13 +08:00
    Mithril
        1
    Mithril  
       2020-07-31 10:55:44 +08:00
    你可以直接在你的服务里维护 ElasticSearch 和数据库的同步。
    但是 ElasticSearch 本身也不是实时的,会有一定的 flush 间隔。不是说你的修改会立刻能检索出来。
    而且你前面说数据量大,后面又说数据量不大,到底大不大?不大的话没必要上 ElasticSearch 。
    jiobanma
        2
    jiobanma  
    OP
       2020-07-31 11:55:02 +08:00
    @Mithril #1 其实是想整个数据都接入 ElasticSearch 。 数据量大的是日志部分,其他的数据量比较小。日志部分也是相对的。
    xuanbg
        3
    xuanbg  
       2020-07-31 13:20:12 +08:00
    不知道你所谓的基础数据是什么数据?日志搞 elk 或 efk 就行了。
    Ministor
        4
    Ministor  
       2020-08-01 11:12:13 +08:00
    1.es 并不一定能满足你 like 的需求,这个是分词效果的
    2.监听 binlog,然后同步到 es 中会是一个不错的效果,一般是 canal2mq,然后消费 mq,只能保证准实时,因为 es 本身是个准实时系统
    3.数据量不大,就 mysql 得了

    题外话,如果碰到多表关联,你还要保证 es 的版本号,很多事情都要亲力亲为
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2671 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:02 · PVG 20:02 · LAX 04:02 · JFK 07:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.