Elasticsearch
Elasticsearch
官网:https://www.elastic.co/cn/products/elasticsearch
Elasticsearch 是一个分布式的基于 RESTful 接口的搜索和分析引擎,它能够解决越来越多的使用场景。作为 Elastic Stack 的核心,它集中存储数据,可以发现预期及之外的结果。
Elastic Stack 的核心
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
Elastic Stack 的特点:
查询
保持好奇心。从数据中探寻各种问题的答案。
通过 Elasticsearch,您能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),搜索方式随心而变。先从一个简单的问题出发,试试看能够从中发现些什么。
分析
大处着眼,全局在握。
找到与查询最匹配的十个文档是一回事。但如果面对的是十亿行日志,又该如何解读呢?Elasticsearch 聚合让您能够从大处着眼,探索数据的趋势和模式。
速度
Elasticsearch 很快。 快到不可思议。
如果您能够立即获得答案,您与数据的关系就会发生变化。这样您就有条件进行迭代并涵盖更大的范围。
但是要达到这样的速度并非易事。我们通过有限状态转换器实现了用于全文检索的倒排索引,实现了用于存储数值数据和地理位置数据的 BKD 树,以及用于分析的列存储。
而且由于每个数据都被编入了索引,因此您再也不用因为某些数据没有索引而烦心。您可以用快到令人惊叹的速度使用和访问您的所有数据。
可扩展性
可以在笔记本电脑上运行。 也可以在承载了 PB 级数据的成百上千台服务器上运行。
原型环境和生产环境可无缝切换;无论 Elasticsearch 是在一个节点上运行,还是在一个包含 300 个节点的集群上运行,您都能够以相同的方式与 Elasticsearch 进行通信。
它能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。
弹性
我们在您高飞的时候保驾护航。
硬件故障。网络分割。Elasticsearch 为您检测这些故障并确保您的集群(和数据)的安全性和可用性。通过跨集群复制功能,辅助集群可以作为热备份随时投入使用。
Elasticsearch 运行在一个分布式的环境中,从设计之初就考虑到了这一点,目的只有一个,让您永远高枕无忧。
灵活性
具备多个案例场景?一个全有。
数字、文本、地理位置、结构化数据、非结构化数据。欢迎使用所有数据类型。
应用搜索、安全分析、指标或日志分析只是全球众多公司利用 Elasticsearch 解决各种挑战的冰山一角。
操作的乐趣
享受更多成功的时刻,告别垂头丧气的失落
简单的事情就该简单做。我们确保 Elasticsearch 在任何规模下都能够易于操作,而无需在功能和性能方面做出牺牲。
客户端库
使用您自己的编程语言与 Elasticsearch 进行交互
Elasticsearch 使用的是标准的 RESTful 风格的 API 和 JSON。此外,我们还构建和维护了很多其他语言的客户端,例如 Java、Python、.NET、SQL 和 PHP。与此同时,我们的社区也贡献了很多客户端。这些客户端使用起来简单自然,而且就像 Elasticsearch 一样,不会对您的使用方式进行限制。
尽享强大功能
延展 Elasticsearch
为您的集群添加用户名和密码,监控 Elasticsearch 的性能表现,通过运行 Machine Learning 任务来发现异常等等,这些特性尽在 Elastic Stack 内置的多项功能。
通过 Security、Monitoring、Alerting、Reporting、Graph 关联分析和 Machine Learning 等功能,获得更优的使用体验。
HADOOP 和 SPARK
Elasticsearch 加 Hadoop
Hadoop 中有大量数据?您可以使用 Elasticsearch-Hadoop (ES-Hadoop)连接器,利用 Elasticsearch 的实时搜索和分析功能处理您的大数据。这是两大领域最大优势的融合。
基本概念
集群和节点
集群:是由一个或者多个ES节点组成的集合。 每一个集群都有一个唯一的名字,默认是ElasticSearch。每个节点也都有唯一名字。
集群和节点
索引
索引: 含有相同属性的文档集合,比如产品的索引,用户的索引等
类型:索引可以定义一个或多个类型,文档必须属于一个类型(一般会定义有相同字段的文档为一个类型)
文档:文档是可以被所有的基本数据单位,是整个ES中最小的存储单位
==索引在Es中是通过一个名字来识别的,而且它的名字必须是 英文字母小写,且不能有中划线。==
都是通过这个名字来进行增删查改。
ES | 数据库 |
---|---|
索引 | 实例database |
类型 | 表-table |
文档 | 一行记录 |
举例:图书索引 ---> 文学类型、技能类型...---->每一本书可以看成一个文档
分片和备份
分片: 每个索引都有多个分片,每个分片是一个Lucene索引
分片的好处:假如数据量很大的话,就会造成硬盘的压力很大,同时搜索速度也会出现瓶颈,将索引分成多个分片,从而分摊压力提供效率。
备份:拷贝一份分片就完成了分片的备份,提供可用性
ES默认在创建索引的时候,会创建5个分片,1个备份。这个默认的数量是可以修改的。
number_of_shards: 每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。
number_of_replicas:每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。
==注意==:索引的分片只能在创建索引的时候指定,而不能再后期进行修改。备份是可以动态修改的。
ES入门
https://www.meiwen.com.cn/subject/mqhhiftx.html
仅为记录学习之用,感谢分享!