什么应用场景下 Elasticsearch 可以代替 mongodb 作为一个 NoSQL 数据库使用? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
piapia123
V2EX    Elasticsearch

什么应用场景下 Elasticsearch 可以代替 mongodb 作为一个 NoSQL 数据库使用?

  •  1
     
  •   piapia123 2020-03-20 11:20:03 +08:00 6680 次点击
    这是一个创建于 2031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2020-04-28 21:32:14 +08:00
    qiyuey
        1
    qiyuey  
       2020-03-20 11:27:48 +08:00
    不要这样做,ES 安心做搜索引擎就好
    Livid
        2
    Livid  
    MOD
    PRO
       2020-03-20 11:52:47 +08:00
    是否可以把你的问题理解为:如果只用 Elasticsearch 作为主要的文档数据库使用会有什么问题?
    piapia123
        3
    piapia123  
    OP
       2020-03-20 12:02:35 +08:00
    @Livid 嗯,可以这么理解。

    近期的工作是清洗存储大量的日志,我一直也有 1 楼的想法,数据存 mongo,再用 ES 做索引,然而实际使用日志结果时,我发现我几乎用不到 mongo,于是开始思考 mongo 在我的使用场景中的意义是什么,如果只存 ES 会有哪些问题?
    iConnect
        4
    iConnect  
       2020-03-20 12:23:40 +08:00 via Android   1
    es 时间久了会产生大量冗余数据,影响检索销量,这个时候可以 reindex,甚至从源一次,这个情况只有 es 就麻烦了
    ddup
        5
    ddup  
       2020-03-20 12:27:53 +08:00   1
    确实有项目数据库和搜索都用的 ES,比如 Exceptionless
    dtsdao
        6
    dtsdao  
       2020-03-20 12:48:47 +08:00   1
    我觉得直接存 ES 就挺好,数据迁入迁出好麻烦的
    chendy
        7
    chendy  
       2020-03-20 13:35:32 +08:00   1
    去年尝试过,感觉 es 的数据更新 api 比较难受,批量操作也难受,还是只做搜索吧
    最后回到了 mongodb,订阅 change-stream 同步进 es 就舒服多了
    sadfQED2
        8
    sadfQED2  
       2020-03-20 13:45:48 +08:00   1
    如果你项目没有强实时性的要求,可以把 es 当成 nosql 来用。我们公司目前就有这样用,亿级别数据,也没任何问题。但是!有个前提,es 有索引更新延时,也就是说,你新数据在索引没更新前,是搜索不到的。如果你业务对没有要求,完全可以拿 es 存。

    但是 only es 的话,可能开发过程中偶尔遇到强实时性的要求的时候,程序会非常麻烦
    sadfQED2
        9
    sadfQED2  
       2020-03-20 13:46:44 +08:00
    最推荐的架构还是 DB 同步 ES,或者 DB ES 双写,ES 只做搜索功能
    Mithril
        10
    Mithril  
       2020-03-20 13:49:42 +08:00   1
    官方并不建议这么做。
    之前看过官方的说法:确实有很多人把 ES 作为主要数据存储,而且他们也做了很多工作保证数据不会丢失,但是 ES 本身设计并不是为了持久化数据用的。
    多加个 MongoDB 只是为了保险,用不用其实取决于你的数据有没有那么重要。日志这种东西个人觉得没那么重要,直接 ES 就好了。
    如果觉得担心,你可以直接把数据存文件,顺序写入性能不会差的。
    optional
        11
    optional  
       2020-03-20 13:54:39 +08:00   1
    都不建议,es 的快全靠内存,内存可金贵了,最好只存索引数据
    mutoulbj
        12
    mutoulbj  
       2020-03-20 13:58:24 +08:00   1
    假设你之前用的 ES 2,想要升级到 ES 7,感受下...
    cocowind
        13
    cocowind  
       2020-03-20 15:16:46 +08:00
    @mutoulbj ....可以直接提离职了
    zhuzhiqiang
        14
    zhuzhiqiang  
       2020-03-20 15:22:57 +08:00
    建议数据写库 es 只做列表或者搜索
    Tn5ohB1Yecdk3qCK
        15
    Tn5ohB1Yecdk3qCK  
       2020-03-20 15:31:07 +08:00
    最好双写
    Encloud
        16
    Encloud  
       2020-03-20 18:09:16 +08:00
    xcstream
        17
    xcstream  
       2020-03-20 18:28:02 +08:00
    可靠性多少个 9 可以维护么 出错了删库了好恢复么
    Navee
        18
    Navee  
       2020-04-28 21:32:14 +08:00
    非常的不建议
    如#8 所说,es 是一个搜索引擎,他查询的结果是准实时的
    对一个文档的变更时,es 先把内容写到内存,此时内容是不生效的,当达到 refresh 要求时,内存中的数据将生成一个 segment 加入到当前的 index,当完成 refresh 操作时你的变更才会体现到查询结果中
    所以你就会面临 2 个选择
    1. 变更时实时 refresh,这样会有非常大的性能损耗,因为 es 会生成非常多的 segment
    2. 等 index 配置策略自动 refresh,那么你的变更将会有延迟
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1165 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:38 PVG 01:38 LAX 10:38 JFK 13:38
    Do have faith in what you're doing.
    /div>
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86