ElasticSearch是什么?
为什么要学习 ElasticSearch ?
ElasticSearch(ES)作为⼀款优秀的分布式搜索分析引擎,越来越受到许多互联⽹公司的关注,像⼩⽶、滴滴出⾏、携程旅游、阿⾥云和腾讯云等都在使⽤ ElasticSearch 。
最知名的应⽤公司就是 GitHub,它采⽤ ES 作为搜索引擎对代码进⾏搜索。虽然它是⼀款优秀的分布式搜索引擎,但是它强⼤的查询、分析、聚合能⼒使得它与数据库的边界越来越模糊。因此很多⼤公司都喜欢⽤ ES 作为数据库来存储⽇志或者其他业务数据,最常见的结合就是通过
Kafka 、 Redis 来作为数据源,logstash 进⾏转化,ES 对数据存储,kibana 对数据进⾏展⽰, ES+logstash+kibana(ELK)⼀体化的⽇志分析、业务指标分析。
越来越多的公司使⽤ ElasticSearch ,这门技术已经不仅仅是⼤数据⼯程师必须要掌握的了,ES 还提供了 Java ,python 等 API,因此 ES 将会成为 Java ⼯程师与 Python ⼯程师必不可缺的⼯具,灵活应⽤ ES 将会成为你未来最有竞争⼒的能⼒。
image-20191126213628040
为什么不使⽤ MySQL,Oracle 或者 Hbase
传统数据库优点是结构化查询,查询速度快、安全。但是当数据量较⼤时候,⽆论是查询还是插⼊都会变的⼗分缓慢,当然 MySQL 也可以做成分布式,但是部署以及维护成本较⾼。Oracle 查询速度是很快的,即使数据量较⼤,查询速度也不会很慢,但是有多少公司愿意负担这个费⽤呢?
为什么不使⽤ Redis 或者 Hbase 呢?
对于⽂档数据库,每个数据库都有其应对的需求,就 Redis ⽽⾔,Redis 更适合做缓存数据库,查询速度⾮常快,但是它的数据结构是键值对,不能够进⾏复杂的需求查询,只能给⼀个 key 然后返回结果。Hbase 是基于Hadoop 的数据库,它的特点是能够存储海量数据,并且扩展起来简单,因为底层是基于 HDFS 的。对于实时需求任务,以及在线分析就⽐较困难,不可能把所有数据都加载出来,或者写⼀个 MapReduce job 来进⾏任务分析,这样的⼯程是⽐较耗费资源的。
ES 是分布式的,并且在数据量超⼤的情况下其查询速度也嗖嗖的快。另外对象中⽆论是怎样的复杂关系,都可以⽤ JSON 格式表达出来,可读性较⾼,ES 就是以 JSON 数据格式存储数据。并且⽀持在线分析、实时分析。ES 是基于存储、查询、聚合分析和可视化于⼀体的解决⽅案。
什么样的数据适合存进去呢?
⽇志数据,⼀般如果程序遇到什么问题都可以通过查询⽇志分析来定位错误的地⽅,这种需求肯定是能够过关键字查询,能够在线可视化分析。这个需求就不合适放在传统数据库中,因为⽇志冗余⼤,⽽且涉及很多⽂本查询,使⽤传统数据库是⾮常不⽅便的,Redis 等⽂档数据库更不适合。ES 正好就是全⽂本检索系统,且是分布式的适合这个需求。另外指标数据也是适合存进去的,指标实时在线监控、报警等,ES 提供了⼀整套解决⽅案。
java python是什么意思所以说不同的数据库或者全⽂检索系统都有其专门的应⽤场景,当涉及到实时,⽂本检索,数据量⼤,
可视化分析,聚合分析的时候都可以考虑使
⽤ ES 来作为解决⽅案。
ElasticSearch 能够做什么?
从数据获取,存储计算到可视化,ES 开发了⼀整套解决⽅案,Logstash 、Beat 负责数据抓取,ES 负责存储计算,kibana 对数据进⾏展⽰分析。另外还有收费的 X-Pack 可以实现安全、告警、监控和 ML 等更丰富的功能。ES 在搜索、⽇志分析、指标分析和安全分析等领域应⽤⼴泛。从前端到后端到数据分析,从云服务到最流⾏的机器学习,ES 都提供了⼀整套解决⽅案。
2019070123000674453266
ElasticSearch 项⽬的起源是什么?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。