Bootstrap

Elasticsearch 是分布式文件存储么 ?

转眼已经 20 多天了,算是摸到了 Elasticsearch 的门,但是距离入门还是有挺远的距离,文字内容整理自 B 站中华石杉的 Elasticsearch 顶尖高手系列课程核心知识篇

阶段性总结

01~08讲:快速入门了一下,最基本的原理,最基本的操作

09~13讲:在入门之后,对 Elasticsearch 的分布式的基本原理,进行了相对深入一些的剖析

14~27讲:围绕着 document 这个东西,进行操作,进行讲解和分析

什么是 distributed document store

到目前为止,好像已经知道了Elasticsearch 是分布式的,包括一些基本的原理,然后花了不少时间在学习 document 本身相关的操作,增删改查。

Elasticsearch 最核心的功能是分布式文档数据存储系统。

  • 文档数据:Elasticsearch 可以存储和操作 JSON 文档类型的数据,而且这也是 Elasticsearch 的核心数据结构。

  • 存储系统:Elasticsearch 可以对 JSON 文档类型的数据进行存储、查询、创建、更新、删除等操作,其实 Elasticsearch 可以说是一个 NoSQL 存储系统。

围绕着 document 在操作,其实就是把 Elasticsearch 当成了一个NoSQL存储引擎,一个可以存储文档类型数据的存储系统,在操作里面的 document。

Elasticsearch 作为一个分布式的文档存储系统,我们的应用系统可以基于 Elasticsearch 进行相关的应用程序的开发了。

以上是中华石杉在课程中的讲解,其实在 中是这么讲的:

Elasticsearch is the distributed search and analytics engine at the heart of the Elastic Stack.

分布式搜索和分析引擎,这是官方文档的说法,不过现在的确很多时候是把 Elasticsearch 当做文档存储来用的。

在一篇 的文章中,Elasticsearch 根本就没有被包括在内。顺便说一句,Top 12 里面有 MongoDB 和 Apache CouchDB。

维基百科的 词条下面倒是有 Elasticsearch 的身影。

A document-oriented database, or document store, is a computer program and data storage system designed for storing, retrieving and managing document-oriented information, also known as semi-structure data.

应用场景

什么类型的应用程序呢?

  • 数据量较大,Elasticsearch 的分布式本质,可以帮助你快速进行扩容,承载大量数据

  • 数据结构灵活多变,随时可能会变化,而且数据结构之间的关系,非常复杂,如果我们用传统数据库,那是不是很坑,因为要面临大量的表

  • 对数据的相关操作,较为简单,比如就是一些简单的增删改查,用我们之前讲解的那些 document 操作就可以搞定

  • NoSQL 数据库,适用的也是类似于上面的这种场景

举个例子,比如说像一些网站系统,或者是普通的电商系统,博客系统,面向对象概念比较复杂,但是作为终端网站来说,没什么太复杂的功能,就是一些简单的 CRUD 操作,而且数据量可能还比较大。这个时候选用 Elasticsearch 这种 NoSQL 型的数据存储,比传统的复杂的功能务必强大的支持 SQL 的关系型数据库,更加合适一些。无论是性能,还是吞吐量,可能都会更好。 S

说的是:搜索、观测、保护(Search、Observe、Protect),分别对应 Elastic 企业搜索、Elastic 可观测性和Elastic 安全(Elastic Enterprise Search、Elastic Observability、Elastic Security),再加上一个 Elastic 云(Elastic Cloud)。

其实 Elasticsearch 是不是分布式文件存储并没有那么重要,关键是我们如何使用。