绊脚石乃是进身之阶。

5.X 版本多type 的 es 数据迁移到6.1

Elasticsearch | 作者 juin | 发布于2018年10月26日 | 阅读数:1413

因为生产环境的原因,我没有权限访问装有5.x 版本es的那台机器,
所以考虑使用reindex 进行平滑的数据迁移,但是5.x 是多个type 的,6.x 是只有一个type ,
那这种情况下应该怎么处理呢 
已邀请:

JackGe

赞同来自: rochy juin laoyang360 CarrieJin weizijun

把5.x集群中的索引按不同type拆分reindex到6.x集群索引中,再使用别名
例如5.x集群中有索引IndexA,该索引上有type,typeA和typeB,reindex到6.x集群IndexA_TypeA和IndexB_TypeB,注意reindex语句
POST _reindex
{
"source": {
"index": "IndexA",
"type": "TypeA",
"size": 10000
},
"dest": {
"index": "IndexA_TypeA"
}
}

最后给6.x集群的IndexA_TypeA和IndexB_TypeB添加别名IndexA,用户查询时使用的索引名称就不用变化
POST _aliases  
{
"actions": [
{"add": {"index": "IndexA_TypeA", "alias": "IndexA"}},
{"add": {"index": "IndexA_TypeB", "alias": "IndexA"}}
]
}

rochy - rochy_he

赞同来自: juin

这个推荐你使用 logstash 进行环境迁移
把 _type 也就是 5.x 中的类型,当作 6.x 中的一个字段进行存储即可

zqc0512 - andy zhou

赞同来自: juin

自己写代码从5.x撸出来,再撸到6.x中,根据数据量来。这玩意可以的。有个备份恢复的,也可以试  snapshot
 

要回复问题请先登录注册