分布式专题——43 ElasticSearch概述

1 ElasticSearch 定义

  • ElasticSearch(简称ES)是一个开源的分布式搜索和数据分析引擎,由Java开发,是当前最流行的开源企业级搜索引擎,能够达到近实时搜索,专门设计用于处理大规模的文本数据和实现高性能的全文检索。

2 ElasticSearch 的优势

  • 搜索引擎的排名:DB-Engines Ranking - popularity ranking of database management systems

    最近的排名:

  • 核心优势:

    • 分布式架构:采用分布式架构,可轻松处理大规模数据,支持水平扩展,提升系统的可扩展性和容错性。

    • 全文检索功能:提供强大的全文检索能力,能对文本数据高效搜索和分析,支持复杂查询语法与自定义分析器。

    • 多语言支持:支持多种语言的数据处理和检索,满足不同语言环境的搜索需求。

    • 高性能:采用倒排索引等优化技术,实现高效的搜索和数据处理性能,满足大规模数据的实时查询需求。

    • 实时性:提供近乎实时的搜索和分析功能,确保用户及时获取最新数据和信息。

    • 易用性:提供丰富的API和插件,开发者可轻松集成使用;查询语法简洁明了,易于上手。

  • 官方网站:Elastic --- The Search AI Company | Elastic

  • 下载地址:elastic.co/cn/downloads/past-releases#elasticsearch

3 Elastic Stack 生态介绍

  • Elastic Stack由Logstash、Beats、Elasticsearch和Kibana四大核心产品组成,在数据采集、存储、分析及数据可视化方面具备显著优势;

    • Elasticsearch:作为Elastic Stack的基石,它是高度可扩展的开源全文搜索与分析引擎。采用分布式架构,提供近乎实时的数据搜索、分析和可视化能力;凭借强大的索引和查询功能,可处理PB级数据量,支持复杂数据分析与挖掘需求,是构建现代数据驱动应用的理想选择;

    • Logstash:是灵活的服务器端数据处理管道,能从多个源采集数据、转换数据并发送到指定目的地。支持丰富的插件生态系统,使数据收集、解析和转换高效且易配置。在Elastic Stack中承担数据预处理和传输的关键角色,确保数据以正确格式和结构进入Elasticsearch,为后续分析和可视化奠定基础;

    • Beats:是轻量级的数据采集器家族,专为向Logstash、Elasticsearch或Kafka等发送数据而设计。每个Beat是独立运行的守护进程,用于从系统或应用程序中收集数据并转发。其家族包含多个成员:

    • Filebeat:用于文件日志采集;

      • Metricbeat:用于系统和应用性能指标采集;
      • Heartbeat:用于监控服务可用性;
      • 它们共同构成强大的边缘数据采集网络,覆盖广泛的监控和日志收集需求;
    • Kibana:是Elastic Stack的可视化和管理界面,为Elasticsearch数据提供强大的可视化功能。用户可通过它轻松创建仪表板、图表和地图,直观展示数据;还提供交互式查询和过滤功能,助力用户深入挖掘数据、发现隐藏趋势和模式。作为用户界面,它让数据分析更直观、便捷和高效;

  • 从架构流程看,Beats和Logstash 负责数据采集、清洗Elasticsearch 承担数据存储、查询Kibana 实现数据可视化,四者整合形成从数据收集、处理、存储到分析和可视化的一体化解决方案,简化数据处理复杂性,提升数据处理效率和准确性,是现代数据分析和监控领域的重要工具;

4 ElasticSearch 应用场景

  • 只要用到搜索的场景,Elasticsearch几乎都可以是最好的选择。结合Kibana、Logstash、Beats,ElasticSearch可用于全文检索、日志分析、商业智能场景

  • 全文检索

    • 支持各类应用、网站的全文搜索,例如淘宝、京东等电商平台搜索,360手机助手、豌豆荚等应用市场平台搜索,以及腾讯文档、石墨文档等平台的全文检索服务;

    • 支持用户通过自定义打分、自定义排序、高亮等机制召回期望的结果数据,通过跨机房/跨机架感知、异地容灾等策略,提供高可用、高并发、低延时、用户体验好的搜索服务;

    • 众多知名企业如阿里巴巴、腾讯、携程、滴滴出行、美团、字节跳动、贝壳找房等,将其作为关键技术提升用户体验、满足业务需求;

    • 技术上基于倒排索引(如下图中"apple"对应文档ID 3、4、5等),支持用户执行复杂查询并获得近实时响应,结合Kibana可实现可视化分析;

  • 日志分析

    • 支持的日志类型:

      • 业务日志:用户行为日志、应用日志等;
      • 状态日志:慢查询、异常探测等;
      • 系统日志:Debug、Info、WARN、ERROR、FATAL等不同等级的日志;
    • 基于倒排索引技术,能实现高效灵活的搜索分析功能,从日志产生到生成倒排索引并写入Elasticsearch,再到用户访问信息,整个过程仅需秒级,可快速处理和检索大量数据,满足实时搜索分析需求;

    • 58集团、唯品会、日志易、国投瑞银等知名企业用其快速分析处理大量日志数据,实现业务运行状况的实时监控和故障排查;

  • 商业智能场景

    • 面对电子商务、移动App开发、广告媒体等领域的大型业务数据收集和分析挑战,Elasticsearch凭借结构化查询功能,可实现全文数据检索和聚合分析,助力企业对大数据进行高效且个性化的分析,进而发现问题、辅助业务决策、挖掘商业价值;

    • 睿思BI、百度数据可视化Sugar BI、永洪BI等商业智能系统,借助其高效、实时的数据分析和可视化能力,帮助企业理解市场趋势、优化决策过程。

相关推荐
ajsbxi2 小时前
【Java 基础】核心知识点梳理
java·开发语言·笔记
聪明的笨猪猪3 小时前
Java JVM “调优” 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
重整旗鼓~3 小时前
28.redisson源码分析分布式锁
java·开发语言
Query*3 小时前
Java 设计模式——工厂模式:从原理到实战的系统指南
java·python·设计模式
懒羊羊不懒@4 小时前
Java基础语法—最小单位、及注释
java·c语言·开发语言·数据结构·学习·算法
ss2734 小时前
手写Spring第4弹: Spring框架进化论:15年技术变迁:从XML配置到响应式编程的演进之路
xml·java·开发语言·后端·spring
DokiDoki之父4 小时前
MyBatis—增删查改操作
java·spring boot·mybatis
mit6.8244 小时前
[Backstage] 后端插件 | 包架构 | 独立微服务 | by HTTP路由
架构
兩尛4 小时前
Spring面试
java·spring·面试