elasticsearch基本概念介绍

elasticsearch基本概念介绍

本文主要参考:
1、https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html
2、《elasticsearch权威指南》

好,下面上货。
Near Realtime(NRT)
Elasticsearch 是一个接近实时的查询平台。它有很低的延迟(接近1秒)从你索引一个文档,到能够查询这个文档。

Cluster

集群是一个由多个节点(服务器)组成的。这些节点共同存储你的数据,并且提供一个联邦的索引和跨节点查询的能力。每一个集群有一个唯一的名字作为标识(默认情况下是elasticsearch)。这个名字很重要,因为一个节点想要成为一个集群的一员就必须设置与集群相同的名字。
必须保证在不同的环境中使用不同的集群名字,否则你的节点会join到错误的集群上。比如,你可以使用logging-dev,logging-stage和logging-prod这三个名字,分别给开发,平台和生产。
注意,只有一个节点的集群是合法的,而且,你可能会有很多独立的集群,每个集群有自己的名字。

Node

节点是集群中的一台服务器。它存储数据并且参与索引和查询。和集群类似,每一个节点在启动时都由默认的随机的UUID进行标识。你可以定义这个标识,从而不使用默认的标识。这个名字对于集群管理员来说很重要,因为这个名字标识了现实中的机器和集群中节点的对应关系。
一个节点通过配置集群名字能够被添加到一个集群中。默认情况下,一个几点会被添加到名字为elasticsearch的集群中。那也就意味着如果你在启动很多节点,而且这些节点能够在网络中相互感知的话,那么这些节点会自动的组织添加到名字为elaticsearch的集群中。
在一个单独的集群中,你可以添加很多节点。而且如果没有其他的elasticsearch 节点在你的网络中运行,启动一个节点,会自动的组成一个叫做elasticsearch的集群。

Index 索引
Type 类型
Document 文档


上面三个概念,我引用《elasticsearch权威指南》中的说法
关系数据库 databasetablerowcolumn
elasticsearchindextypedocumentfield

Shards&Replicas

一个索引有潜力存储大量的数据,大量的数据很快会到达单个节点的硬件极限。比如:一个索引有十亿文档,总共小号1TB的磁盘空间,那么这样就适合存储在单个节点上,而且也会造成查询缓慢的的现象。
为了解决这问题,elasticsearch提供了一个把数据细分的能力,叫做分片。当你定义一个索引的时候你可以指定分片数。每一个分片是功能独立的“索引”,可以别存储在集群中的任意一个节点上。
提供分片的两个主要原因:
1、能够水平的切分和扩展存储空间。
2、能够分布式平行的在多个分片上计算,从而提高性能和吞吐量。
分片是如何分布式存储的和文档在查询请求后如何聚合的完全由elasticsearch进行管理,对用户来说是透明的。
在网络或者集群环境中错误经常发生。有一套容错机制防止分片或者节点由于任何原因掉线或者丢失是非常有必要的。为此,elasticsearch为集群中的分片提供了一个或多个副本分片,简称副本。
提供副本的两个主要原因:
1、当分片或者节点出错时,提供高可用性。为此,最重要的是存储副本分片的位置不能再这个分片的原始节点或者主节点。
2、能够提高吞吐率,因为查询可以并行的运行在平行的副本上。
总之,每一个索引能够被切分成多个分片。一个索引能够被复制0到多次。一旦复制,每个索引就会有主分片(索引的原始分片,复制的来源地)和复制分片(从主分片复制出来的)。每个索引的副本个数能够在创建索引时指定。在创建索引之后,你可能想再次改变副本的数量,但是,一段创建了副本的数量是不能改变的。
默认情况下,elasticsearch中的索引有分片数为5,副本数为1。也就是说,如果你有一个两个节点的集群,你的索引会有5个分片,5个副本分片。每个索引有10个分片。(默认情况下)
每个elasticsearch 分片是一个Lucene索引。单独的Lucene索引有最大文档数显示,在Lucene-5843中记载,最大是2,147,483,519 (= Integer.MAX_VALUE - 128) 个文档。你可以监控分片的大小通过_cat/shards api
Elasticsearch是一个分布式搜索和分析引擎,它基于Lucene搜索库,可以快速、实时地存储、搜索和分析大规模数据。以下是一些Elasticsearch中的概念: - 索引(Index):在Elasticsearch中,索引是一个包含文档的逻辑容器,可以将其看作是数据库中的表。每个索引都有一个唯一的名称,并且可以包含多个类型的文档。 - 文档(Document):文档是Elasticsearch中的基本单位,它可以是任何结构化或半结构化的JSON数据。每个文档都有一个唯一的ID和一个包含字段和值的数据体。 - 字段(Field):字段是文档中的数据项,它们代表了文档的各个属性。每个字段都有一个名称和一个数据类型,例如字符串、数字、日期等。 - 映射(Mapping):映射定义了文档中的字段及其数据类型,相当于数据库中表的结构定义。 - 查询(Query):在Elasticsearch中,查询是指搜索条件,可以使用各种操作符和规则来构建复杂的查询。 - 聚合(Aggregation):聚合是Elasticsearch用于分析数据的功能,它可以对查询结果进行统计、分组、计算、过滤等操作,类似于SQL中的GROUP BY。 - 节点(Node):Elasticsearch集群中的每个服务器都是一个节点,每个节点都可以运行一个或多个索引和分片。 - 分片(Shard):分片是将索引拆分成多个部分以实现分布式存储和处理的机制。每个分片都是一个Lucene索引,可以在集群中的多个节点上分布式存储和处理。 - 副本(Replica):副本是分片的复制品,用于实现高可用性和负载均衡。每个分片可以有多个副本,可以在集群中的多个节点上复制存储。 这些概念是Elasticsearch中的一些关键概念,了解它们可以帮助你更好地理解Elasticsearch的工作原理和使用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值