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 当做文档存储来用的。
在一篇 Top 12 NoSQL Document Databases 的文章中,Elasticsearch 根本就没有被包括在内。顺便说一句,Top 12 里面有 MongoDB 和 Apache CouchDB。
维基百科的 Document-oriented database 词条下面倒是有 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
Logging and Log Analysis,日志和日志分析,这个应该算是 Elasticsearch 的龙兴之地、起家法宝。
Scraping and Combining Public Data,爬虫和汇集公共数据
Full Text Search,全文检索,我有点好奇中文分词的问题如何解决
Event Data and Metrics,事件数据和测量,这个是性能或者安全分析的意思么?
Visualizing Data,数据可视化,这个其实是 Kibana 的拿手好戏吧,当然,数据是放在 Elasticsearch 中的。
elasic 官网首页说的是:搜索、观测、保护(Search、Observe、Protect),分别对应 Elastic 企业搜索、Elastic 可观测性和 Elastic 安全(Elastic Enterprise Search、Elastic Observability、Elastic Security),再加上一个 Elastic 云(Elastic Cloud)。
其实 Elasticsearch 是不是分布式文件存储并没有那么重要,关键是我们如何使用。
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/e824ff7d882f8b4c60986b30e】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论