首页 文章 精选 留言 我的

精选列表

搜索[Elasticsearch],共4100篇文章
优秀的个人博客,低调大师

ElasticSearch必知必会-Reindex重建索引

作者: 京东物流 康睿 1.重建索引需求背景 1.1 集群版本升级 ES版本兼容性 同一大版本范围内升级,索引读写兼容 不同大版本升级,索引读写不兼容,需要重建索引 1.2 集群迁移 集群索引迁移 集群迁移,索引服务不停机,数据提前迁移 1.3 索引分片数量调整 分片数量变更 原有分片数量太少,重建变多 原有分片数量太多,重建变少 ES索引分片,一旦创建,原索引是不能修改分片数量的 1.4 索引文档结构变更 文档结构变更 字段类型变更,已有索引字段类型是不可以修改的 字段属性变更,历史数据的字段属性是不会刷新的 文档对象结构变更 2.常用重建索引方式 2.1 Reindex初识 索引重建说明 重建是创建新索引,原有索引保留 原有索引_source必须开启,否则找不到原始数据 索引重建建议,严格业务场景,目标索引mapping结构建议先创建好,不使用es动态推测字段类型的方式。 POST_reindex { "source": { "index": "原始索引" }, "dest": { "index": "新目标索引" } } 2.2 Url参数解读 URL参数 refresh,目标索引是否立即刷新 waif_for_active_shards, 重建索引分片响应设置 Scroll, 快照查询时间 slicing, 重建并行任务切片 Max_docs , 单次最大数据量,条数 requests_per_second . 单次执行的重建文档数据量 2.3 Request body参数解读 请求参数 confilicts, 索引数据冲突如何解决,直接覆盖还是中断 source: 原索引配置信息 dest,新索引配置信息 script,脚本处理,修改原索引信息后再写入新索引 2.4 Response 参数解读 响应参数 成功数 更新数 新增数 失败数 2.5 重建索引任务管控 任务管控必要性 重建索引是一个异步任务,由ES后台进程完成调度执行,集群可能有并行其他异步任务,有时需要中断停止或查看进度 任务管控API _tasks,服务端API 3.高级索引重建方式 3.1 单秒数据量阈值控制 单秒数据量控制 requests_per_second 默认1000,设置-1则不限制 生产重建时,建议控制范围500-1000左右 控制重建速度,防止集群瞬间IO过大 3.2人工切片 数据切片应用 人为指定切片数量,并行任务 用于降低索引redinx速度 POST_reindex { "source": { "index": "my-index-000001", "slice": { "id": 0, // 执行下标,从0开始,即0切第一批数据做迁移,1切第二批数据做迁移 "max": 2 // 切分分片数 } }, "dest": { "index": "my-new-index-000001" } } 3.3 自动切片 自动切片 仅需指定自动切片大小即可,后续的调度由es完成 POST_reindex?slices=5&refresh { "source": { "index": "my-index-000001" }, "dest": { "index": "my-new-index-000001" } } 3.4 限制reindex重建数据的范围 3.4.1 query 限制查询条件 基于DEL语言规则编写,可以任意复杂,限制数据范围 POST_reindex { "source": { "index": "my-index-000001", "query": { "term": { "user.id": "kimchy" } } }, "dest": { "index": "my-new-index-000001" } } 3.4.2 max docs 限制数据条数 限制重建数据总条数,默认全部 POST_reindex { "max_docs": 1, "source": { "index": "my-index-000001" }, "dest": { "index": "my-new-index-000001" } } 3.5 多索引重建 多索引重建 ES也支持将多个索引数据合并到一个索引里面去 若多个索引数据ID相同,则会相互覆盖 POST_reindex { "source": { "index": ["my-index-000001", "my-index-000002"] }, "dest": { "index": "my-new-index-000002" } } 3.6 限制重建索引数据字段 限制重建索引数据字段 source filter 原有数据字段过多,需要限制筛选部分进行重建 POST_reindex { "source": { "index": "my-index-000001", "_source": ["user.id", "_doc"] }, "dest": { "index": "my-new-index-000001" } } 3.7 字段重命名 字段名重命名 原有的数据字段名称不合理,重新按照新字段命名 基于脚本机制修改 ES字段名称原始是不允许修改的,但通过脚本可以操作 3.8 修改原始文档数据 修改原始文档数据 基于脚本 4.跨集群索引重建 跨集群操作 基于集群通信,类同远程机制 需设置跨集群白名单,配置在dist集群 5.索引重建注意事项 5.1 数据量阈值控制 控制好索引重建速率,防止过快 5.2 索引访问交叉影响 建议先新建好dist索引

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册