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 是不是分布式文件存储并没有那么重要,关键是我们如何使用。