Elasticsearch reindex 和批量写入调优
假设有这样一个index。
我们发现 latency的类型声明错了,但是在es中,类型是不允许修改的。
这时候可以使用 reindex 进行操作。reindex可以理解为,把数据从一个索引中批量导入到另外一个索引中去。
新建一个索引,重新指定数据类型。
PUT /websites01
{"mappings": {"properties": {"latency" : {"type" : "short"},"province" : {"type" : "keyword"},"timestamp" : {"type" : "date"}}}
}
进行reindex操作。max_docs 可以指定最大进行处理的文档数,默认不写代表全部
POST _reindex
{"max_docs": 100,"source": {"index": "websites"},"dest": {"index": "websites01"}
}
还可以指定条件
POST _reindex
{"source": {"index": "websites","query": {"match": {"province": "江苏"}}},"dest": {"index": "websites01"}
}
操作完后,查看新的索引,发现已经存在数据,操作成功。
reindex 的操作,实际上就是 bulk 批量插入操作,所以对于数据插入的一些调优同样适合于reindex的操作进行调优
1. 修改refresh时间间隔
数据写入的过程中,会进行refresh操作,也就是数据刷到缓存中,让数据可以被读到。数据读写过程在之前的文章里面有写到过 https://blog.csdn.net/weixin_44715126/article/details/111876165。
refresh操纵默认是1s钟,也就是数据被写入到被查询中间有1s的时间间隔。这个过程会引起io操作,带来性能开销,所以如果在写入的时候,数据不要求马上可以被读到,可以将refresh的时间间隔调大,或者直接关闭refresh功能,待数据全部写完之后,再开启。这个操作对数据写入性能有明显的提高。
-1 代表直接关闭refresh 操作。
PUT /websites01/_settings
{"refresh_interval": "-1"
}
2.设置副本
es中,数据的分片数是不允许被修改的,因为涉及路由的问题,但是副本数是可以被修改的。
数据写入的同时,会同时生成副本。如果一台主机,既要写入主数据,又要写入其他数据的副本数据,这个写入性能肯定是要打折扣的,所以,副本可以在写入操作的时候进行关闭。
等数据写完之后,重新设置副本数,这时候就只需要进行简单的数据复制就可以了,也不会有倒排索引等操作。
PUT /websites/_settings
{"number_of_replicas": 0
}
3. 设置并行数。
1) reindex 操作是基于scroll滚动查询进行的,在官网中,提供了一种分片(slicing)的方法,这里的分片不是说将数据分片,而是将scroll查询分片,分成多个并行执行的任务,
默认分片数量是等于数据分片数的,这种性能应该是最优的。
POST _reindex?slices=5&refresh
{"source": {"index": "websites"},"dest": {"index": "websites01"}
}
2)在其他批量插入数据的情景下,合理设置并行数和 bulk 批量插入数据量的数目需要根据主机性能进行设置,并不是越大越好。
可以在集群中进行试验,逐步提高 bulk数量和 并行数,直到达到集群写入瓶颈,找到最优的方式进行操作。
https://www.elastic.co/guide/en/elasticsearch/reference/7.3/docs-reindex.html#docs-reindex
Elasticsearch reindex 和批量写入调优相关推荐
- Elasticsearch大数据量写入调优和原理解析
前言 千万.亿级别数据批量写入ES的调优和原理解析 Elasticsearch version (bin/elasticsearch --version): 7.8 Plugins installed ...
- Elasticsearch索引和查询性能调优的21条建议【下】
Elasticsearch是一款流行的分布式开源搜索和数据分析引擎,具备高性能.易扩展.容错性强等特点.它强化了Apache Lucene的搜索能力,把掌控海量数据索引和查询的方式提升到一个新的层次. ...
- elasticsearch(es)在用户画像业务上的应用【elasticsearch(es)性能调优】
1.关于用户画像 用户画像是以用户为中心,从不同角度抽取信息,抽象成标签.这些标签一般都会很多,针对不同的业务需求.应用场景会刻画不同的标签.可以通过标签来圈选适合的人群,来进行精准投放.广告系统.活 ...
- elasticsearch原理_花几分钟看一下Elasticsearch原理解析与性能调优
基本概念 定义 一个分布式的实时文档存储,每个字段 可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 用途 全文检索 结构化搜索 分 ...
- ES 性能调优,这可能是全网最详细的 Elasticsearch 性能调优指南
文章目录 1.通用优化策略 1.1 通用最小化法则 1.2 职责单一原则 1.3 其他 2.写性能调优 2.1 基本原则 2.2 优化手段 2.2.1 增加 flush 时间间隔, 2.2.2 增加` ...
- Elasticsearch原理与调优
elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大规模的索引设 ...
- Elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
比如:ES集群架构13个节点,索引根据通道不同共20+索引,根据日期,每日递增20+,索引:10分片,每日递增1亿+数据,每个通道每天索引大小控制:150GB之内. 仅索引层面调优手段: 1.1.设计 ...
- 关于Linux性能调优之内存负载调优
写在前面 整理一些Linux内存调优的笔记,分享给小伙伴 博文没有涉及的Demo,理论方法偏多,可以用作内存调优入门 博文内容涉及: Linux内存管理的基本理论 寻找内存泄露的进程 内存交换空间调优 ...
- Elasticsearch调优实践
背景 Elasticsearch(ES)作为NOSQL+搜索引擎的有机结合体,不仅有近实时的查询能力,还具有强大的聚合分析能力.因此在全文检索.日志分析.监控系统.数据分析等领域ES均有广泛应用. ...
最新文章
- 阿里云 Linux指令入门-文件与权限
- 一個傳統的C2C網站的用戶充值的过程
- Java:Java的jar包之POI的简介、安装、使用方法(基于POI将Word、Excel、PPT转换为html)之详细攻略
- 如何看创建媒体日期_每天约4万个网约车投诉,看AI如何接招_媒体_澎湃新闻
- SAP UI configuration determination的优先级
- python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程
- [python]删除列表中相同的元素
- OpenJudge NOI 3.3 3340:RPN Calculator
- 卷积核权值初始化_Pytorch卷积层手动初始化权值的实例
- 小白学Java Web 3 Web前端之CSS基本知识2
- 05 | 服务编排层:Pipeline 如何协调各类 Handler ?
- 第四篇、Python文件处理
- USB协议-UVC描述符篇(三)
- 解决多次点击出现蓝色背景
- python书籍推荐django_关于Django,我想推荐这样一本书给你
- 如何让你的电脑声音增大500%
- lpc1768的gpio库函数_LPC1768之GPIO输入和输出配置基础例程
- PHP的apcu是什么,opcache又是什么?
- 机器学习实战——人脸表情识别
- SystemUi概述