时序
文章平均质量分 79
aa1215018028
这个作者很懒,什么都没留下…
展开
-
Elasticsearch持久化过程详解
前言这篇文章主要介绍Elasticsearch的索引工作机制,它是如何利用translog来保证数据的安全,以及我们在生产环境中如何优化translog的参数来最大化性能,主要会介绍到elastic中常见的2个操作:refresh和flush,以及这2个接口是如何保证数据能够被检索到的。一、数据持久化我们把数据写到磁盘后,还要调用fsync才能把数据刷到磁盘中,如果不这样做在系统掉电的时候就会导致数据丢失,这个原理相信大家都清楚,elasticsearch为了高可靠性必须把所有的修改持久化到磁盘原创 2020-09-23 09:52:45 · 7928 阅读 · 2 评论 -
ES写一致性原理以及quorum机制深入剖析
(1)consistency,one(primary shard),all(all shard),quorum(default)我们在发送任何一个增删改操作的时候,比如说put /index/type/id,都可以带上一个consistency参数,指明我们想要的写一致性是什么?put /index/type/id?consistency=quorumone:要求我们这个写操作,只...原创 2019-01-09 19:33:48 · 673 阅读 · 0 评论 -
Grafana elasticsearch 应用
早期的时候,项目基于ES+echart写了一些仪表盘的展示页面,虽然ES配合这种char界面有着天然的优势,但实际写起代码来,还是很多重复的劳动,在一次偶然中发现Grafana,看到它提供了很多仪表盘式的图型,功能很强大,于是下载下来试了下效果不错。因为全部都是鼠标操作,都不用写代码,真正智能套件。如题,应用Grafana之前,你需要对es聚合查询知识有一定了解先看效果因为网上这...原创 2019-01-09 14:53:31 · 1272 阅读 · 0 评论 -
ElasticSearch中doc values和fielddata
一 为什么聚合排序不适合使用倒排序索引假设现在有以下的一个搜索:POST /ecommerce/music/_search{ "size":0, "query":{ "match":{ "desc":"吉他" } }, "aggs":{ "brands"转载 2019-01-14 17:37:46 · 424 阅读 · 0 评论 -
将 Elasticsearch 写入速度优化到极限
translog flush 间隔调整 索引刷新间隔调整: refresh_interval refresh_interval segment merge Indexing Buffer bulk 线程池和队列大小 磁盘间的任务均衡 节点间的任务均衡 索引过程调整和优化 自动生成 doc ID 调整字段 Mappings 调整_source 字段 禁用 _a...原创 2019-01-08 15:53:53 · 2412 阅读 · 0 评论 -
Elasticsearch不支持事务及应用场景
1、问题源自星球同学的提问:es如何与hive或mysql结合使用?es不支持事务有什么好的弥补方案吗?2、事务的核心概念如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下ACID四个特性: 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚, 一致性(Consistency) 一致性是指事务必须使数据库从...原创 2019-01-08 11:09:44 · 2962 阅读 · 0 评论 -
Elasticsearch存储目录结构深入详解
在本文中,我们将研究Elasticsearch的各个部分写入数据目录的文件。我们将查看节点,索引和分片级文件,并简要说明其内容,以便了解Elasticsearch写入磁盘的数据。1、从Elasticsearch路径说起Elasticsearch配置了多个路径: path.home:运行Elasticsearch进程的用户的主目录。默认为Java系统属性user.dir,它是进程所...原创 2019-01-07 20:16:26 · 14243 阅读 · 2 评论 -
ES gateway流程分析
基于版本: 5.5.3背景es 存储的数据有以下几种形式:state index translogindex 为 lucene 生成的索引文件translog 为es 产生的事务日志state 是元数据信息,有以下几种:nodes/0/_state/global-82.st 集群层面元信息nodes/0/indices/website/_state/state-...原创 2019-01-10 16:47:28 · 1101 阅读 · 0 评论 -
编译Elasticsearch问题
大意是运行elasticsearch运行需要1.8但是构建项目需要1.10。所以是不支持jdk版本造成的构建失败。如果不想修改系统环境变量,可以修改es源码中的文件“BuildPlugin.groovy”中,将final String javaHome = System.getenv('JAVA_HOME')修改为final String javaHome = "C:\\Pro...原创 2019-01-03 17:08:10 · 291 阅读 · 0 评论 -
painless脚本应用及与elasticsearch,java的结合使用
写在前面 painless是一个较新的脚本语言,毕竟不是一加一等于二那么简单,开始不懂是很正常的,如果看不懂 请看第二遍第三遍乃至N次 相信我 一定能看得懂的,书读百遍,其义自见 es5以上版本推出了简单安全快捷的painless脚本来替代原有的一些脚本语言,最近正好需要过滤查询一些逻辑相对复杂的数据并对原有的groovy脚本进行升级,所以对painless进行了学习...原创 2018-12-18 20:34:10 · 964 阅读 · 0 评论 -
一致性协议浅析:从逻辑时钟到Raft
前言春节在家闲着没事看了几篇论文,把一致性协议的几篇论文都过了一遍。在看这些论文之前,我一直有一些疑惑,比如同样是有Leader和两阶段提交,Zookeeper的ZAB协议和Raft有什么不同,Paxos协议到底要怎样才能用在实际工程中,这些问题我都在这些论文中找到了答案。接下来,我将尝试以自己的语言给大家讲讲这些协议,使大家能够理解这些算法。同时,我自己也有些疑问,我会在我的阐述中提出,也欢...原创 2019-02-21 19:33:18 · 476 阅读 · 0 评论 -
mysql 导出表结构和表数据 mysqldump用法
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据mysqldump -h localhost -uroot -p123456 database > dump.sql 导出单个数据表结构和数据mysqldump -h localhost -uroot -p123456 databas...原创 2019-02-21 17:54:28 · 249 阅读 · 0 评论 -
Elasticsearch bool过滤查询
Bool查询现在包括四种子句,must,filter,should,must_not。为什么filter会快?看上面的流程图就能很明显的看到,filter与query还是有很大的区别的。比如,query的时候,会先比较查询条件,然后计算分值,最后返回文档结果;而filter则是先判断是否满足查询条件,如果不满足,会缓存查询过程(记录该文档不满足结果);满足的话,就直接缓存结果。...原创 2019-02-26 10:46:30 · 17670 阅读 · 1 评论 -
揭秘阿里百亿级云客服实时分析架构演进之路
淘宝、天猫每天有上亿个不同的买卖家进行对话,产生百亿条聊天记录。对客服聊天记录的实时分析是实现智能客服的基础。本文主要分享云客服的整体架构,包括实时分析的场景、架构、技术难点,以及为何要从 NoSQL 迁移时序数据库和使用心得。网购催生客服职能转型如下图,是国内客服体系发展历程。国内客服体系经历了传统客服、Web 端客户和云客服三个发展阶段。传统客服以呼叫中心为主,主要以电话...原创 2019-08-28 10:15:27 · 1142 阅读 · 0 评论 -
OpenTsdb官方文档----查询过滤器
任何数据库系统的关键功能是使用某种形式的过滤来获取完整数据集的子集。OpenTsdb从版本1.x开始提供了过滤功能,并从2.2开始具有了扩展功能。过滤器目前在标签值上运行,这意味着在拉取数据时,任意指标和标签Key都必须按照与数据库中完全相同的出现方式来进行指定。示例数据 由于每个过滤器都会在下面进行说明,都会用到下述数据集。它由单一指标组成,定义在各个标签上的多个时间序列。作为例子,在...原创 2019-07-04 17:37:24 · 1437 阅读 · 0 评论 -
java Hbase异步批量写入
import org.apache.commons.lang.StringUtils;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.filte...原创 2019-04-12 11:15:56 · 1079 阅读 · 0 评论 -
opentsdb 简易生动讲解
摘要OpenTSDB是一个分布式的、可伸缩的时间序列数据库,在DB-engines的时间序列数据库排行榜上排名第五。它的特点是能够提供最高毫秒级精度的时间序列数据存储,能够长久保存原始数据并且不失精度。它拥有很强的数据写入能力,支持大并发的数据写入,并且拥有可无限水平扩展的存储容量。 它的强大的数据写入能力与存储能力得益于它底层依赖的HBase数据库,也得益于它在表结构设计...原创 2019-03-15 11:32:08 · 1034 阅读 · 0 评论 -
Elasticsearch java API Aggregations 聚合 Bucket
桶聚合编辑全球聚合编辑下面是如何使用 Global Aggregation 与Java API。准备聚合请求编辑这里有一个例子关于如何创建聚合的要求: AggregationBuilders .global("agg") .subAggregation(AggregationBuilders.terms("genders").field("ge...原创 2019-03-04 20:28:06 · 4469 阅读 · 1 评论 -
ES索引写入性能优化
1、用bulk批量写入你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几百条这样子。bulk批量写入的性能比你一条一条写入大量的document的性能要好很多。但是如果要知道一个bulk请求最佳的大小,需要对单个es node的单个shard做压测。先bulk写入100个doc...原创 2019-03-04 15:28:54 · 623 阅读 · 0 评论 -
elasticsearch-dump 迁移es数据 (elasticdump)
elasticsearch 部分查询语句# 获取集群的节点列表:curl 'localhost:9200/_cat/nodes?v'# 列出所有索引:curl 'localhost:9200/_cat/indices?v'创建一个名为“customer”的索引,然后再查看所有的索引:curl -X PUT 'localhost:9200/customer?pretty'c...原创 2019-02-26 18:31:37 · 3692 阅读 · 0 评论 -
ES变慢原因分析
0、引言Elasticsearch社区中经常看到慢查询问题:“你能帮我看看Elasticsearch的响应时间吗?”或者是:“我的ES查询耗时很长,我该怎么做?”包含但不限于:Nested慢查询、集群查询慢、range查询慢等问题。在这里插入图片描述1、两个维度每当我们得到这些类型的问题时,我们首先要深入研究两个主要方面: 配置维度 - 查看当前系统资源和默认Elasti...原创 2018-12-29 11:03:48 · 7638 阅读 · 0 评论 -
ES5.6 search流程与scroll
ES search大致流程请求转化,由RestSearchAction转为TransportSearchAction,执行其doExecute()方法1、如果查询请求的索引含有正则表达式和别名,找出具体的索引indices = indexNameExpressionResolver.concreteIndices(clusterState, searchRequest.indices...原创 2018-12-29 10:53:08 · 642 阅读 · 0 评论 -
ES的查询接口
1、什么是query DSLGET /_search{ "query": { "match_all": {} }} 1 2 3 4 5 6query 中有哪些query_name全部查询出来 match allGET /web/info/_search --查询所有的文档{ "quer...原创 2018-12-18 11:31:31 · 1822 阅读 · 0 评论 -
ES如何指定返回的字段field
在elasticsearch 2.x版本中,如果我们想指定查询返回的字段,可以使用fields字段设置,代码如下: String index = xxx; String type = xxx; // 指定要返回的字段 String[] fields = new String[2]; fields[0] = "field1"; // 字段1名称...原创 2018-11-22 09:56:44 · 3033 阅读 · 0 评论 -
如何把数据快速批量添加到Elasticsearch中
问题来源最近新做一个项目,有部分搜索比较频繁的数据,而且量级比较大,预计一两年时间很可能达到100G,项目要求不要存在数据库中,最终出来有两个方案,一个是使用Protocol Buffers存储在文件上,另外就是存在Elasticsearch中,也方便搜索,但这两个方案需要验证,到底哪个方案好,从存储速度,搜索响应,占用空间方面做对比,而我负责给出Elasticsearch的部分技术建议!...原创 2018-11-15 09:36:53 · 2728 阅读 · 1 评论 -
优化Elasticsearch查询性能
给文件系统缓存提供内存 Elasticsearch严重依赖于文件系统缓存,以便快速进行搜索。 通常应该确保至少有一半的可用内存进入文件系统缓存,以便Elasticsearch可以将索引的热区域保留在物理内存中。使用更快的硬件 如果搜索受I / O限制,应该调查为文件系统缓存提供更多内存(参见上文)或购买更快的驱动器。 特别是已知SSD驱动器比旋转磁盘性能更好。 始终使用本地存储,应...原创 2018-11-16 17:04:02 · 5171 阅读 · 0 评论 -
elasticsearch 查询优化建议
最近在做一些索引相关的优化测试,顺便记录一下测试以及效果1:优化mapping 主要包括 doc_values , index , norms , type的keyword和text // 效果明显doc_values属性 用于把数据序列化到磁盘,使索引结构更紧密 默认为true,binary类型为false ...原创 2018-11-20 20:14:53 · 577 阅读 · 0 评论 -
Elasticsearch性能优化建议
之前公司项目中有使用Elasticsearch存储日志,当时使用的功能简单,并没有深入了解Elasticsearch,但是对于该支持文本搜索的存储架构还是很感兴趣,最近因为想在一个新项目中采用ELK(Elasticsearch+Logstash+Kibana)技术栈来存储系统日志,学习有关Elasticsearch的书籍(深入理解Elasticsearch,第二版),现在就书本的第八章——提高性能...原创 2018-11-20 17:04:01 · 889 阅读 · 0 评论 -
Kibana安装和使用
Kibana安装及使用说明 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。 官方地址:https://www.elastic.co/cn/products/kibana一、Kibana安装1.环境准备 Kibana是ElasticSearch的可视化平台,依赖...原创 2018-11-13 16:27:07 · 164 阅读 · 0 评论 -
ElasticSearch数据分片-数据路由
ElasticSearch(简称ES):是一个基于Lucene构建的开源、分布式、RESTful的全文本搜索引擎;它还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,并且能够扩展至数以百计的服务器存储及处理PB级的数据。 倒排索引:1、什么是nodeES集群中每一个节点就是一个node,或者一个Elasticsearch实...原创 2018-11-02 17:12:51 · 3008 阅读 · 0 评论 -
SpringBoot 整合 ElasticSearch 之 ElasticsearchRepository 的 CRUD、分页接口
一、前言这里写图片描述前面使用了 SpringBoot 整合了 Solr: [增删改查] SpringBoot 整合 Solr 实现 CRUD、分页接口、高亮显示眼下有一个比 Solr 还火热的 ElasticSearch,主要是用于大数据、分布式系统中,顺便使用 SpringBoot 来整合 Elasticsearch是一个基于Lucene的搜索服务器。 它提供了一个...原创 2018-11-02 16:45:18 · 1849 阅读 · 0 评论 -
[ElasticSearch]Java API 之 滚动搜索(Scroll API)
一般搜索请求都是返回一"页"数据,无论数据量多大都一起返回给用户,Scroll API可以允许我们检索大量数据(甚至全部数据)。Scroll API允许我们做一个初始阶段搜索并且持续批量从Elasticsearch里拉取结果直到没有结果剩下。这有点像传统数据库里的cursors(游标)。Scroll API的创建并不是为了实时的用户响应,而是为了处理大量的数据(Scrolling is not...原创 2018-11-22 12:20:03 · 2776 阅读 · 0 评论 -
mysql数据实时同步到Elasticsearch
业务需要把mysql的数据实时同步到ES,实现低延迟的检索到ES中的数据或者进行其它数据分析处理。本文给出以同步mysql binlog的方式实时同步数据到ES的思路, 实践并验证该方式的可行性,以供参考。mysql binlog日志mysql的binlog日志主要用于数据库的主从复制与数据恢复。binlog中记录了数据的增删改查操作,主从复制过程中,主库向从库同步binlog日志,从库对...原创 2018-11-22 16:44:01 · 2569 阅读 · 0 评论 -
Elasticsearch配置详解
配置文件详解1.0版配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配置,主配置文件是elasticsearch.yml,日志配置文件是logging.yml,elasticsearch调用log4j记录日志,所以日志的配置文件可以按照默认的设置,我来介绍下elasticsearch.yml里面的选项。cluster.name:...原创 2018-12-27 10:15:26 · 307 阅读 · 0 评论 -
使用elasticsearch遇到的一些问题以及解决方法
1.由gc引起节点脱离集群因为gc时会使jvm停止工作,如果某个节点gc时间过长,master ping3次(zen discovery默认ping失败重试3次)不通后就会把该节点剔除出集群,从而导致索引进行重新分配。解决方法:(1)优化gc,减少gc时间。(2)调大zen discovery的重试次数(es参数:ping_retries)和超时时间(es参数:ping_timeo...原创 2018-12-27 10:04:00 · 3341 阅读 · 0 评论 -
Elasticsearch-基础介绍及索引原理分析
Elasticsearch-基础介绍及索引原理分析最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了解的同学有所帮助。 同时也希望有发现内容不正确或者有疑问的地方,望指明,一起探讨,学习,进步。介绍Elastics...原创 2018-12-26 22:54:54 · 181 阅读 · 0 评论 -
SpringBoot项目通过 spring data elasticsearch使用elasticsearch
依赖添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>配置添加spr...原创 2018-12-07 17:38:15 · 820 阅读 · 0 评论 -
Elasticsearhc 更新操作java实现
在使用ES进行更新时遇到的实时刷新文档问题,目前ES并未提供根据具体参数修改对应文档,几乎所有更新修改的方法都是通过获取想要修改对象的ID来更新对应文档。 网上也基本没有这方面的解决方法,话不多说,直接上代码…… @Override public JSONObject XXX(String userName, String userId, String Statu...原创 2018-12-03 12:20:52 · 612 阅读 · 0 评论 -
Elasticsearch批量索引和删除
批量索引和删除 Java代码 收藏代码BulkRequestBuilder bulkRequest = client.prepareBulk(); for(int i=500;i<1000;i++){ //业务对象 String json = ESUtils.toJson(new LogModel()); ...原创 2018-11-20 12:11:00 · 4356 阅读 · 0 评论 -
Elasticsearch的Bulk API使用
1、Elasticsearch的Bulk API允许批量提交index和delete请求。如:(1)用法1BulkRequestBuilder bulkRequest = client.prepareBulk();bulkRequest.add(client.prepareIndex("index1", "type1", "id1").setSource(source);bulkRequ...原创 2018-11-20 11:44:01 · 3271 阅读 · 0 评论