作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:
Web服务器
代理服务器
ZooKeeper
Kafka
RabbitMQ
Hadoop HDFS
Elasticsearch ES (本章节)
前面我们已经完成了Elasticsearch(ES)的部署,无论是单机还是集群,最终都要向里面写入数据,写入数据就需要先对下面2个概念有一定的理解,他们分别是:索引 (Index) 和 文档 (Document)。
索引 (Index)
-
索引是文档的集合,是具有相似特征的文档的逻辑容器。它是 Elasticsearch 中数据组织和管理的最高层级。在关系型数据库 (RDBMS) 中,一个 Index 类似于一个 Table。比如一个
products索引存放所有产品文档,一个logs索引存放所有日志文档。 -
定义数据结构: 索引包含一个映射 (Mapping),它定义了索引中文档的字段结构:定义了字段名字和字段数据类型(类似M有SQL里面的表结构属性)。
-
定义数据行为: 索引包含设置 (Settings),这些设置控制索引的物理存储和行为:物理体现,索引本身并不直接存储数据,数据实际存储在属于该索引的各个分片 (Shard) 中。每个分片本质上是一个独立的、功能完备的 Lucene 索引。
-
-
分片数 (Number of Shards):一个索引被水平分割成多个底层单元(分片)。分片是 ES 分布式特性的基础。数据分布在分片上,分片可以分布在集群的不同节点上。这提供了水平扩展能力(处理更大的数据量和更高的吞吐量)。
-
副本数 (Number of Replicas):每个主分片可以有零个或多个副本分片。副本是主分片的精确拷贝。它们提供:高可用性 (HA):如果持有主分片的节点挂了,副本分片可以被提升为主分片。提高读取吞吐量: 搜索请求可以在所有副本分片上并行执行。
-
文档 (Document)
文档是 Elasticsearch 中的 基本数据单元,是你存储和搜索的实体或对象,Elasticsearch 中存储的核心数据单元(文档)本质上就是 JSON 格式的数据。数据一旦被写入成功,就不可修改。但是实际上我们是可以操作修改的(删除旧数据,创建新数据)。
唯一标识符: 每个文档在它所属的索引内都有一个唯一的 ID。这个 ID 可以是:你自己指定(比如使用业务相关的 ID,如产品 SKU、用户 ID)。由 ES自动生成(一个随机的 UUID)。
-
元数据 (Metadata): 除了你定义的 JSON 字段,每个文档还有一些 Elasticsearch 自动添加的元数据字段,最重要的包括:
-
_index: 文档所属的索引名称。 -
_id: 文档的唯一 ID。 -
_source: 存储了你当初索引文档时提供的原始 JSON 数据。这是文档的核心内容。搜索时默认返回的部分就是_source。你可以选择不存储它(但强烈不建议,因为很多功能依赖它)。
-
索引 (Index) 和 文档 (Document) 的关系
-
容器与内容: 索引是容器,文档是容器中的内容。一个索引包含多个文档。
-
逻辑分组: 索引将具有相似结构或用途的文档逻辑地分组在一起(例如,
customer_index,order_index,web_logs_index)。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。
3697

被折叠的 条评论
为什么被折叠?



