Elasticsearch 结合大数据产品最佳实践

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文整理自阿里云解决方案架构师闫勖勉(三秋)在 阿里云Elasticsearch 自研引擎年度发布 的演讲。

摘要本文整理自阿里云解决方案架构师闫勖勉(三秋)在 阿里云Elasticsearch 自研引擎年度发布 的演讲。主要内容包括:

  1. Elasticsearch 与大数据
  2. 经典应用与案例分析


一、Elasticsearch 与大数据


1Elasticsearch 是什么?

Elasticsearch(简称 ES)是业内最主流的信息检索、分析引擎,DB-Engine指数排行“全球热度No.8数据库,全球热度No.1检索引擎”。

image.png


Elasticsearch 及配套产品,组合成 Elastic Stack 大数据平台,主要的四款核心产品是 Beats、Logstash、Elasticsearch 和 Kibana。

  • Beats:负责数据的采集和投递;
  • Logstash:负责数据传输以及ETL中间预处理;
  • Elasticsearch:负责数据的存储、计算、查询及分析;
  • Kibana:提供可视化管理以及报表和分析工具;


社区官方提供的三大解决方案分别是:Elastic企业搜索、Elastic全观测性和Elastic安全。同时,在云上还提供具有高性能的增强版内核版本。


2、Elasticsearch 解决什么问题

  • 数据库加速:主要解决数据库进行复杂查询时的性能瓶颈,使用 ES 作为数据库二级索引加速可以在提升查询速度的同时降低主库的压力避免产生线上业务风险;

  • 日志全观察:在 ELK 体系下通过 Kibana 同一平台同一时间轴分析应用系统出现问题,进行统一管控;

  • 数据分析:运用 ES 的结构化和非结构化查询能力作为查询引擎进行数据分析。


3、如何解决

ES 底层拥有强大的引擎能力:


  • 倒排索引:ES 支持基于 Lucene 的倒排索引,从而提供图文检索和查询能力,但随着业务发展,单一的倒排索引会使业务受限,如针对某个字段的排序或某个条件的聚合,倒排索引无法满足需求;

  • DocValue 存储:以列的形式保存除了 text 字段以外的其它字段,以实现查询、排序和聚合等能力;

  • BKD树:负责 INT 字段或数值类的范围查询,因为 BKD 树在范围查询方面有更好的能力承接;

  • 聚合框架和 FieldData:ES 提供的聚合框架支持基于 Bucket 做聚合,同时可以针对 text 类型进行 FieldData 处理,然后针对 text 类型进行聚合;

image.png

4、选型的优劣势

a. 优势:

  • 支持几乎所有数据类型的存储和索引,包括结构化和非结构化的查询;
  • 支持近实时的搜索和分析;
  • 原生分布式支持 PB 级及以上的拓展;
  • 查询灵活支持 DSL 多语言;


b. 劣势:

  • 多表关联有限:多表关联查询会出现数据冗余以及关联性弱的情况;
  • 非实时可见:如需要实时可见则会大大削弱写入性能;
  • 不支持事务:不适用于金融类、银行等对强事务性有需求的行业;


5、开源大数据支持

以上提到的 ES 的局限性,可以以架构的形式通过其他开源产品进行弥补,如 Fluentd、Flume、Kafka、实时计算Apache Flink、离线计算 Hadoop体系等,都与 ES 有很好的兼容性。


image.png


6、Elasticsearch 与实时计算结合

Flink 内置集成数十种连接器,覆盖数据库、消息队列、OLAP引擎等系统,自助编写 SQL 对数据进行实时流转集成。同时,在云上可使用 CDC(Change Data Capture)直读 MySQL Binlog,实现链路更短、成本更低、稳定性更高。


image.png


二、经典应用与案例分析

1、适用场景

Elasticsearch 应用场景及细分行业包括:

  • 在线教育:作业批改、学生/课程检索、教师管理系统等;
  • 游戏:社区论坛、标签系统、玩家指标分析等;
  • 互联网娱乐:内容搜索、推荐召回、付费行为分析等;
  • 产业互联网:地理位置搜索、企业信息检索、舆情分析等;
  • 交易类:商品搜索、订单检索、营销分析等;
  • 汽车及自动驾驶:综合搜索、路测/仿真平台标签、客户/商业/安全分析等;


同时,ES 还支持全行业的运维全观察,包括日志查询、指标监控和应用性能监控。

image.png


2、案例分析:IT 基础设施及微运维系统


a. 案例解读(软件负载、OT 监控、服务 SLA 监控、微服务监控)


  • 需求痛点

汽车行业的 IT 系统大多分批建设(蔚小理除外),技术架构及系统复杂有历史包袱,IDC、多云架构比较普遍。新兴的业务部门,一方面需要满足《网安法》的6个月日志存储合规要求,同时也希望对整体日志数据进行价值挖掘,通常有如下痛点(需求):


  • 务场景快速增加(汽车周边的应用微服务、充电桩等车基数据、会员服务/商城/社区等),日志量增速变快,硬件供给效率、资源冗余成本负担均成为挑战;

  • 数据来源多样,有多表关联查询和拼接需求;

  • 预期未来的日志数据规模超 PB 级(180天),底层技术架构需要兼备低成本存储、快速获取、按需检索和分析的能力;

  • 历史包袱重,新增的技术组件/产品,需要有快速对接原有云上/云下的 IT 系统的能力,并能保证技术架构的灵活、开放性,支持后续自由拓展;


基于以上需求,我们的解决方案是依托 ES/Flink 搭建日志平台以及部分应用查询系统。


  • 方案价值点
  • 极低迁移/改造成本:ES/Flink 是非常普及的技术架构方案,阿里云托管产品完全兼容开源,客户运维系统上云的迁移/改造成本极低,最快一周内完成系统上线;

  • 高稳定性:提供高可用架构部署,客户反馈生产上线三个月没有任何问题,相对于之前友商硬件上的自建 ES 服务,有非常大稳定性提升;

  • 性能优化:提供自研高性能内核和云端架构,将写入性能提高十倍(pk开源),同样的虚拟机配置可以满足之前硬件无法满足的性能需求,为未来业务增量接入提供保障;

  • 低存储成本:提供成本极低的分级存储引擎。例:OSS 中存储的1 PB 日志12.6W/月,每月多付3W元/月,日志即可获得秒级 模糊检索、聚合分析查询等能力(比自建 ELK 直接使用高效云盘便宜了20.9W/月);

b. 应用架构分析

如下图所示,整体架构包括:数据采集、数据汇集&传输、存储/索引/计算、可视化分析。


image.png

  • 数据采集:数据源来自于三个方向
  • 数据采集管理平台:采集车载数据(如 DCS/TSP)、路基数据(如充电桩);

  • 应用服务:以容器数据为主,还有服务后端和网关数据,基于Beats进行采集;

  • 数据库:RDS;

  • 数据汇集&传输:引入 Kafka 和 Flink 承接多个数据源数据
  • Kafka:日志链路使用 Kafka 进行汇集和缓冲,然后使用 Logstash 消费 Kafka 并完成日志传输,即在 Logstash 中进行简单的处理和过滤并输入 ES 集群;

  • Flink:如数据库中多个表组合查询需求会使用 Flink 读取数据库中 Binlog 进行实时更新,在 Flink 中将多个表进行组合生成一个表并输入到 ES 集群;


  • 存储/索引/计算:在阿里云 ES 中设置读写分离以及数据的冷热处理架构;

  • 可视化分析:

  • 日志数据:进行充电桩/路基设置使用分析、日志查询/分析,等,为运营及业务开发人员提供更有效的工具;

  • 热数据:为路测/车况数据查询以及社区搜索提供更好的支持;

C. 选型优势 – Elasticsearch

针对这个 PB 级别案例,选择云上 Elasticsearch 的优势在于:


  • 写入性能
  • 读写分离架构,避免资源抢占;
  • 高性能写入,写入流量最大200MB/s;
  • 写入计算资源成本降低60%;


  • 存储成本
  • 存储介质优化,相比高效云盘成本降低70%;
  • 按需付费,冷数据无须提前购买存储容量;
  • 冷数据存储无需副本,底层三副本机制保证数据安全;
  • 相较本地SATA盘查询性能提高100%;


image.png

d. 选型优势 - 实时计算Flink

  • 性能:两倍于开源版本;
  • 稳定性:先于社区修复相关引擎缺陷;
  • 企业级能力:CDC支持更多数据源、整库同步、表结构改变同步等。

image.png

END


阿里云 ES 团队积极参与社区建设,与 Elasticsearch 社区和国内团队紧密合作,基于 Elasticsearch 在云原生的实践,推出了包括开发者报告、Elasticsearch 全观测、技术解析等电子书,对 ES 感兴趣的朋友可以多多关注。同时,在 ES 社区也会有丰富的线上线下活动,欢迎大家参与。


相关文章
|
2月前
|
SQL JSON 大数据
ElasticSearch的简单介绍与使用【进阶检索】 实时搜索 | 分布式搜索 | 全文搜索 | 大数据处理 | 搜索过滤 | 搜索排序
这篇文章是Elasticsearch的进阶使用指南,涵盖了Search API的两种检索方式、Query DSL的基本语法和多种查询示例,包括全文检索、短语匹配、多字段匹配、复合查询、结果过滤、聚合操作以及Mapping的概念和操作,还讨论了Elasticsearch 7.x和8.x版本中type概念的变更和数据迁移的方法。
ElasticSearch的简单介绍与使用【进阶检索】 实时搜索 | 分布式搜索 | 全文搜索 | 大数据处理 | 搜索过滤 | 搜索排序
|
2月前
|
DataWorks Kubernetes 大数据
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
|
29天前
|
人工智能 分布式计算 DataWorks
大数据&AI产品月刊【2024年8月】
大数据& AI 产品技术月刊【2024年8月】,涵盖本月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
|
2月前
|
机器学习/深度学习 搜索推荐 算法
飞天大数据平台产品问题之AIRec在阿里巴巴飞天大数据平台中的功能如何解决
飞天大数据平台产品问题之AIRec在阿里巴巴飞天大数据平台中的功能如何解决
|
2月前
|
存储 人工智能 搜索推荐
飞天大数据平台产品问题之阿里云OpenSearch的定义如何解决
飞天大数据平台产品问题之阿里云OpenSearch的定义如何解决
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之未保存的ODPS SQL语句该如何找回
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之ODPS数据怎么Merge到MySQL数据库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
机器学习/深度学习 数据采集 缓存
Elasticsearch与机器学习集成的最佳实践
【8月更文第28天】Elasticsearch 提供了强大的搜索和分析能力,而机器学习则能够通过识别模式和预测趋势来增强这些能力。将两者结合可以实现更智能的搜索体验、异常检测等功能。
48 0
|
2月前
|
消息中间件 大数据 Kafka
Go 大数据生态迎来重要产品 CDS
Go 大数据生态迎来重要产品 CDS
|
2月前
|
SQL 分布式计算 运维
DataWorks产品使用合集之如何恢复odps误删的分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

相关产品

  • 检索分析服务 Elasticsearch版
  • 下一篇
    无影云桌面