- 文档首页
云搜索服务
Logstash 用户指南
管道管理
管道介绍
元数据迁移管道
元数据迁移管道
在 Elasticsearch 或 OpenSearch 实例之间进行数据迁移时,需要迁移所有的索引元数据,包括索引和索引模板。云搜索服务 Logstash 的元数据迁移管道用于迁移元数据。本文介绍元数据迁移管道。
支持将 Elasticsearch 或 OpenSearch 实例的元数据迁移到其他 Elasticsearch 或 OpenSearch 实例,迁移内容包括索引(index)配置和索引模板(_index_template 和 _template)配置,不包括以 . 开头的系统索引。
注意
配置了生命周期策略的索引模板无法迁移,不可包含在 include_template_list 中。
在创建元数据迁移管道时,可引用模板 MetaMigrate-meta_migrate。具体操作,请参见创建管道。MetaMigrate-meta_migrate 模板各字段含义如下。 "hosts": "http://**a**.ivolces.com:9200",
"hosts": "http://**b**.ivolces.com:9200",
"split_index_name_pattern": "%s-index_type-%s",
"include_template_list": [
说明
保存并部署元数据迁移管道后,当 Logstash 实例状态变为运行中时,可在日志中查看元数据迁移状态。如果日志内容中出现 [root]元数据迁移完成(metadata migrate finished),且未出现 ERROR 等级的日志,表示元数据已迁移完成。具体操作,请参见查询日志。 ES 6 -> ES 6&7 , ES 7 -> ES 7
ES 2&5 -> ES 6&7
ES 7&8 -> OpenSearch
OpenSearch -> OpenSearch
ES 6 版本中,单个索引 mapping 只有一个 _type,ES 7 以后版本 mapping 不支持设置 _type,因此索引迁移可以一对一完成。除 input 和 output 外,可不修改其他字段。
在 ES 2 和 ES 5 版本中,单个索引可能有多个 _type 的情况,可以分为三种迁移方式:
- 源索引仅有一个 _type,迁移到同一目标索引。
- 源索引有多个 _type,仅迁移指定 _type 文档到同一目标索引,其余丢弃。
- 迁移源索引所有 _type 数据到同一个目标索引。
注意
当源索引多个或所有 _type 迁移到同一目标索引时,如果不同 _type 的 mapping 不一致或数据含义不一致,会导致脏数据。
- 迁移源索引所有_type 数据到不同的目标索引,目标索引名按照约定风格命名。
如果索引只有单个 _type ,则直接迁移。如果索引有多个 _type 则只迁移 _type 为 t_1 的元信息,且重命名目标所有索引 _type 为 _doc,则修改模版中的如下字段为 t_1 即可,其他字段按需填写。
在使用 Logstash 普通管道迁移数据时,如需丢弃其他 _type 的数据,可增加如下配置。
if [@metadata][_type] != "t_1" {
如果索引只有单个 _type 则直接迁移目标索引名不变。如果索引有多个索引 _type 则目标索引名会根据{源索引名}-index_type-{源索引 type} 划分,且重命名所有目标索引 _type 为 _doc。
"split_index_name_pattern": "%s-index_type-%s",
在使用 Logstash 普通管道迁移数据时,在 output 插件中,index 配置如下。
index => "%{[@metadata][_index]}-index_type-%{[@metadata][_type]}"
ES 7 和 ES 8 不支持设置 _type,故索引迁移可以一对一完成。除 input 和 output 外,可不修改其他字段。
OpenSearch 不支持设置 _type,故索引迁移可以一对一完成。除 input 和 output 外,可不修改其他字段。
最近更新时间:2026.03.31 18:46:03