前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Elasticsearch系列之八】通过reindex迁移ES数据

【Elasticsearch系列之八】通过reindex迁移ES数据

原创
作者头像
Vicwan
发布2020-04-27 10:58:14
9.2K0
发布2020-04-27 10:58:14
举报

1、reindex

reindex 是 ES 提供的一个 api 接口,可以把数据从源 ES 集群导入到当前 ES 集群,实现集群内部或跨集群同步数据。

但仅限于腾讯云 ES 的实现方式(跨集群迁移需要elasticsearch.yml中加上ip白名单,并重启集群),所以腾讯云ES不支持 reindex 操作。具体见官方文档说明:https://www.elastic.co/guide/en/elasticsearch/reference/7.3/reindex-upgrade-remote.html

下面简单介绍 reindex 接口的使用方法:

1) 配置 elasticsearch.yml中的reindex.remote.whitelist 参数

需要在目标 ES 集群中配置该参数,指明能够 reindex 的远程集群的白名单。

2) 调用 reindex api

以下操作表示从源 ES 集群中查询名为 test1 的索引,查询条件为 title 字段为 elasticsearch,将结果写入当前集群的 test2 索引。

代码语言:txt
复制
POST _reindex
 {
     "source": {
        "remote": {
            "host": "http://172.16.0.39:9200"
        },
        "index": "test1",
        "query": {
            "match": {
                "title": "elasticsearch"
            }
         }
     },
     "dest": {
         "index": "test2"
     }
 }

从源索引中提取文档源,并将文档索引到目标索引中。可以将所有文档复制到目标索引,或为文档的子集重新索引。_reindex获取源索引的快照,但是其目标必须是其他索引,因此不会发生版本冲突。

2、方案对比

以上介绍了elasticsearch-dump、logstash、reindex、snapshot方式进行数据迁移,实际上这几种工具大体上可以分为两类:

  • scroll query + bulk: 批量读取旧集群的数据然后再批量写入新集群,elasticsearch-dump、logstash、reindex都是采用这种方式
  • snapshot: 直接把旧集群的底层的文件进行备份,在新的集群中恢复出来,相比较scroll query + bulk的方式,snapshot的方式迁移速度最快。

elasticsearch-dump

logstash

snapshot

reindex

基本原理

逻辑备份,类似mysqldump将数据一条一条导出后再执行导入

从一个 ES 集群中读取数据然后写入到另一个 ES 集群

从源 ES 集群通过备份api创建数据快照,然后在目标 ES 集群中进行恢复

reindex是Elasticsearch提供的一个api接口,可以把数据从一个集群迁移到另外一个集群

网络要求

网络需要互通

网络需要互通

无网络互通要求

网络需要互通

迁移速度

一般

一般

运维配置复杂度

复杂,索引的分片数量和副本数量需要对每个索引单独进行迁移,或者直接在目标集群提前将索引创建完成,再迁移数据

复杂,需要提前在目标集群创建mapping和setting等,再迁移数据

简单

需要在目标ES集群中配置reindex.remote.whitelist参数,指明能够reindex的远程集群的白名单

适合场景

适用于数据量小的场景

适用于数据量一般,近实时数据传输

适用于数据量大,接受离线数据迁移的场景

本地索引更新Mapping实现索引层面迁移,或者跨集群的索引迁移

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、reindex
  • 2、方案对比
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档