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

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

Tips:点击「阅读原文」查看原文视频

一、Elasticsearch 与大数据

1Elasticsearch 是什么?

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

ES最大数据 es 大数据_hadoop

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 类型进行聚合;

ES最大数据 es 大数据_ES最大数据_02

4、选型的优劣势

a. 优势:

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

b. 劣势:

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

5、开源大数据支持

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

ES最大数据 es 大数据_数据库_03

6、Elasticsearch 与实时计算结合

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

ES最大数据 es 大数据_hadoop_04

二、经典应用与案例分析

1、适用场景

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

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

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

ES最大数据 es 大数据_大数据_05

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. 应用架构分析

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

ES最大数据 es 大数据_大数据_06

  • 数据采集:数据源来自于三个方向
  • 数据采集管理平台:采集车载数据(如 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%;

ES最大数据 es 大数据_hadoop_07

ES最大数据 es 大数据_数据库_08

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

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

ES最大数据 es 大数据_运维_09

END

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

ES最大数据 es 大数据_大数据_10

 

ES最大数据 es 大数据_运维_11