V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lxbu
V2EX  ›  Elasticsearch

有没有 elasticsearch 全量索引和增量索引的方案呢?

  •  
  •   lxbu · 2020-07-29 12:12:55 +08:00 · 4269 次点击
    这是一个创建于 1565 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.业务方本身系统的故障,出现大量数据的丢失 2.业务高速发展产生增减字段或者修改分词算法等相关的需求 3.业务冷启动会有一次性导入大批量数据的需求

    以上情况需要全量索引,我看网上大多数是说通过别名的方式来重建,是不是只能这一种方案呢?

    增量索引可以通过 canal 监听 binlog 日志来完成增量索引,如果全量索引的时候怎么暂停增量索引呢?

    12 条回复    2020-07-29 15:17:53 +08:00
    ty89
        1
    ty89  
       2020-07-29 12:19:55 +08:00
    你的问题到底是什么
    lxbu
        2
    lxbu  
    OP
       2020-07-29 12:30:27 +08:00
    @ty89 #1 就是有哪些全量索引的方案
    tairan2006
        3
    tairan2006  
       2020-07-29 12:43:59 +08:00 via Android
    全量和增量并不矛盾…你加个 update_time 时间戳,更新的时候如果时间戳更大才更新,否则不用更新…
    lxbu
        4
    lxbu  
    OP
       2020-07-29 12:45:13 +08:00
    刚接触 elasticsearch,可能问的问题有点表述不清,大致就是如果 db 和 es 的数据不一致了,我需要全量索引一次,是不是通过别名的方式来完成此次操作
    lxbu
        5
    lxbu  
    OP
       2020-07-29 12:49:29 +08:00
    @tairan2006 #3 好的,明白了,那如果 db 和 es 数据不一致了,怎么处理呢
    lovedebug
        6
    lovedebug  
       2020-07-29 12:50:48 +08:00
    1. 增字段可以,减字段就不合适了
    2. 设置冷热节点
    3. 按月或周建 index,这样可以通过代码切割新旧索引或者 reindex 旧索引
    tairan2006
        7
    tairan2006  
       2020-07-29 12:54:22 +08:00 via Android
    @lxbu 理论上你放 kafka 里消费,数据不可能最终不一致…
    当然如果数据量不是很大,你可以每天夜里周期性把 update_time>昨天 0 点的数据灌进去覆盖掉,虽然这个方法比较粗暴…
    Jackeriss
        8
    Jackeriss  
       2020-07-29 12:54:25 +08:00 via iPhone
    读的时候用别名,写的时候用真名,这样随便你怎么 reindex 都没问题
    lxbu
        9
    lxbu  
    OP
       2020-07-29 13:36:02 +08:00
    @lovedebug #6 好的,明白了,谢谢
    lxbu
        10
    lxbu  
    OP
       2020-07-29 13:36:58 +08:00
    @Jackeriss #8 明白了
    hubqin
        11
    hubqin  
       2020-07-29 14:26:26 +08:00
    引自: https://elasticsearch.cn/question/609
    有几种方法,看着选吧:
    1.在业务系统里做双写

    2.用 elasticsearch-jdbc 之类的工具来做全量和增量同步

    3.用阿里的 canal 来做数据库 binlog->kafka->es 的同步,需要开发,而且依赖比较多,小公司选择还是慎重些吧
    lxbu
        12
    lxbu  
    OP
       2020-07-29 15:17:53 +08:00
    @hubqin #11 好的,感谢,本来想用第三种方式的,我再慎重考虑下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:47 · PVG 14:47 · LAX 22:47 · JFK 01:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.