elasticsearch现在除了在日志分析中使用外,是否有别的应用场景呢?

elasticsearch现在最主流的就是elk套件,它是否有别的应用场景呢?

参与10

3同行回答

顾黄亮顾黄亮  技术总监 , 畅销书作者
严格的说,ES不是一个数据库,而是一个搜索引擎,ES的方方面面也都是围绕搜索设计的。ES支持全文搜索,这里简单解释下什么是全文搜索:对于“我在北京的一家互联网公司工作”这样的数据,如果你搜索“北京”、“互联网”、“工作”这些关键词都能命中这条数据的话,这就是全文搜索,你每...显示全部

严格的说,ES不是一个数据库,而是一个搜索引擎,ES的方方面面也都是围绕搜索设计的。ES支持全文搜索,这里简单解释下什么是全文搜索:对于“我在北京的一家互联网公司工作”这样的数据,如果你搜索“北京”、“互联网”、“工作”这些关键词都能命中这条数据的话,这就是全文搜索,你每天都在用的百度、Google都属于全文搜索。值得一提的是,ES的全文搜索对中文也有很好的支持(单是中文分词器就有很多种),绝对能够满足国内大多数人的全文搜索需求。ES通过建立倒排索引实现全文搜索。具体来说,ES会建立一个覆盖表中所有文档、所有字段的庞大的倒排索引,以实现对存入ES中的所有数据进行快速检索。因此只要是存入ES的数据,无论再复杂的聚合查询也可以得到不错的性能,而且你再也不用为如何建立各种复杂索引而头痛了。
说了这么多ES的优点,你是不是觉得ES简直万能了?可惜不是的, ES也有很多的短处,最明显的就是字段类型无法修改、写入性能较低和高硬件资源消耗 。前边讲到ES会自动的替你建立索引,尽管这能给全文搜索以及聚合查询带来很多好处还能替你省了建索引这一麻烦事,但是这个特性也会带来一堆问题。ES需要在创建字段前要预先建立Mapping,Mapping中包含每个字段的类型信息,ES需要根据Mapping为字段建立合适的索引。由于这个Mapping的存在,ES中的字段一但建立就不能再修改类型了。(例如,你建的数据表的某个字段忘了加全文搜索,你想临时加上,但是表已经建好并且已经有很多数据了,这时候该怎么办呢?不好意思,你只能把整个数据表删了再重建一遍!)因此,ES在数据结构灵活度上高于MySQL但远不如MongoDB。ES的缺点还不止这些,自动建立索引使得ES的写入性能也收到了影响,要明显低于MongoDB,并且ES的写入还有一个更要命的问题,那就是默认1S的写入延迟,也就是说你的数据在写入后要至少等1S才能被查询到。对于同样的数据ES占用的存储空间也要明显大于MongoDB(建那么复杂的索引能不占空间吗?),对硬件资源的消耗也是非常厉害,大数据量下64G内存+SSD基本是标配,算得上是数据库中的贵族服务了,因此如果你的老板很小气,对于ES的选用可要慎重喽!
ES的全文搜索特性使它成为构建搜索引擎的利器。除此之外,ES很好的支持了复杂聚合查询这一特点还使得ES非常适合拿来作数据分析使用。 其实,ES还专门做了与自己配套的ELK套装,给你提供从日志收集到数据可视化分析的一条龙服务,绝对是构建高大上数据分析平台的利器。但是,ES的高成本和低写入性能这些缺点也注定了它不适合用在那些数据价值不高、对写入性能有要求、数据量大而成本受限的场景中。

收起
银行 · 2019-09-16
浏览1980
尘世随缘尘世随缘  技术总监 , 上海某互联网金融公司
ES最长用的,就是分布式日志查询(ELK)但是这只是ES最小的一个应用点,更适合的场景是做搜索引擎,比如电商中的搜索。比如微服务分库分表后跨表查询的检索。ES相对来说上手比较快,提供了丰富的文档,当然目前云平台都有提供ES的云服务、。...显示全部

ES最长用的,就是分布式日志查询(ELK)
但是这只是ES最小的一个应用点,更适合的场景是做搜索引擎,比如电商中的搜索。比如微服务分库分表后跨表查询的检索。
ES相对来说上手比较快,提供了丰富的文档,当然目前云平台都有提供ES的云服务、。

收起
互联网服务 · 2020-04-29
浏览1378
秋名山车神秋名山车神  项目经理 , 日志易
elk偏向于检索、查询、数据分析,适用于OLAP系统,作为后端分析系统组件。mongodb偏向于大数据规模下的CRUD,适用于对事务要求不强的OLTP系统,作为前置事务处理的应用系统组件。目前es除了用于日志分析中,还会常用于应用系统一些非结构化的统计结果的保存和抽取,因为数据结构不要...显示全部

elk偏向于检索、查询、数据分析,适用于OLAP系统,作为后端分析系统组件。
mongodb偏向于大数据规模下的CRUD,适用于对事务要求不强的OLTP系统,作为前置事务处理的应用系统组件。
目前es除了用于日志分析中,还会常用于应用系统一些非结构化的统计结果的保存和抽取,因为数据结构不要用预先定义,比较灵活,比较关注的可能是mapping问题,在产品设计的时间提前规划即可,另外硬件资源的投入,按实际情况技术进行调整,达到成本最优。

收起
系统集成 · 2019-09-26
浏览1756

提问者

jwhdhr
软件开发工程师农商银行
擅长领域: 数据库中间件消息中间件

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-09-16
  • 关注会员:4 人
  • 问题浏览:3340
  • 最近回答:2020-04-29
  • X社区推广