如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践


随着开源技术与云原生的高度融合,阿里云开源大数据平台在功能性、易用性、安全性上积累了丰富的实践经验,已成功服务数千家企业,助力其聚焦自身核心业务优势,缩短开发周期、简化运维难度,拓展更多业务创新。10月29日,阿里云发布“如何构建云原生的开源大数据平台”解决方案,邀请到了来自阿里云、微淼、Inmobi的技术专家为大家现身说法,呈现上云实践。

如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践

本文主要分享微淼基于阿里云大数据生态的应用实践,以及实时计算 Flink 版全托管在微淼的实践总结。


分享嘉宾: 乔丹,微淼大数据高级大数据开发工程师

视频地址:https://yqh.aliyun.com/live/bigdataop


一、公司简介

微淼 是一家专门从事理财、创业技能培训的公司。微淼不售卖、不代理理财及保险产品,始终致力于帮助用户树立正确的金钱观、理财观、创业观,帮助用户掌握正确的理财方法和创业技能,全面提升国民的财经素养和创业水平。目前已拥有超过800万付费用户及1500万自媒体矩阵粉丝。


二、大数据平台建设历程

微淼初期大数据平台架构

为了助力企业做出更好的业务决策,为用户提供更优质的服务,微淼在20年成立了大数据部门,同年8月开始搭建集群。

  • 背景

大数据部门成立初期,实时数据需求较少,多以离线分析为主

  • EMR 的优势
    • 创建集群方便快捷
    • 集成大量开源组件及框架
    • 运维成本低
    • 扩容方便
    • 稳定性高

EMR 创建集群很方便,在选定集群模板之后,可以一键自动化创建集群,极大的降低集群的搭建难度,有效避免搭建集群过程中的各种踩坑问题。其次,EMR 集成了大量的社区开源组件并进行了适配,避免了开源组件之间版本不兼容的问题,阿里云 EMR 团队还对大部分开源组件进行了优化,极大的提高了组件的性能。此外,EMR 还集成了 Flink 实时计算引擎。阿里云24小时在线的企业级服务,助力企业解决各种集群问题,同时提供集群调优建议,降低运维成本。EMR 扩容也很方便,申请扩容之后几分钟之内就能自动完成,无需手动部署和启动服务。阿里云对象存储 OSS 替代 HDFS 提供文件存储服务,保证安全和性能的同时,可以显著降低存储成本,无需参与维护还有无限的扩展能力。


基于大数据部门成立初期的背景及业务需求,结合阿里云 EMR 的优势,微淼搭建了基于 EMR 的大数据平台,这套架构在平台建设初期提供了很多便利。Flink 组件完成实时分析任务,Hive 组件完成离线数仓分层建模,契合大数据平台搭建的初衷,比较好的支撑了我们的业务。

如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践

面临挑战

随着微淼业务的高速增长,多个业务线齐头并进,大数据平台瓶颈突显:

  • 业务高速增长,导致数据量、任务需求量爆发式增长
    • 日增数据量同比上半年增长超过10倍
    • 调度任务数同比增长超过8倍
  • T+1离线数据分析已经不能满足业务诉求
    • 实时及准实时的分析任务急剧增加
  • 现有的实时计算架构不能满足业务的快速需求
    • 数据指标越来越多,“烟囱式”的开发导致代码耦合问题严重
    • 需求越来越多,有的需要明细数据,有的需要 OLAP 分析。单一的 Flink 开发模式难以对付多种需求
    • 每个需求都需要申请资源,导致资源成本急速膨胀,EMR 集群资源吃紧,出现实时任务和离线任务抢占资源的情况
    • 核心组件 Flink 升级困难,大版本升级相当于重新创建集群,人力成本较高


阿里云开源大数据平台解决方案架构

基于上述业务增长带来的问题,微淼大数据研发团队开始构建2.0版本的实时计算架构。一方面引入了一批新的组件,丰富了整个平台的架构;另一方面,对实时计算架构进行了优化和升级,引入了实时数仓的概念模型。


针对数据量激增:

  • 广泛使用对象存储 OSS,减小存储压力,降低存储成本
  • 对集群资源进行隔离和优化 

广泛使用阿里云对象存储 OSS 替代 HDFS 作为离线数仓的存储服务,大大减小了的存储压力,降低了存储成本。计算和存储分离的架构使集群的计算资源得到了更充分的利用,计算资源和存储资源相匹配,使得整个集群资源利用率超过了50%。同时对集群进行资源隔离优化,很大程度上节省了成本。


针对实时分析任务需求量大增

  • 引入 Hudi 及 OLAP 组件
    • 增量更新,提升数据支持响应速度
    • OLAP 组件引入,替代部分实时 OLAP 的工作量,使得开发成本大大降低

针对实时、准实时分析任务需求量大增,引入了 Hudi 数据湖和 OLAP 组件 Doris。Hudi 集成 Presto 和 Spark 引擎后,可以达到近实时的查询和分析,解决了大部分的准实时需求。Doris 是一款对海量数据进行快速分析的MPP架构数据库,在数据分析领域有着简单易用、高性能等特点,支持明细查询、聚合分析、多维分析等,秒级到毫秒级的响应满足了大部分的实时需求。


针对现有的实时计算架构不能满足业务的快速发展

  • 进行实时数仓搭建探索
    • 实时数仓分层,避免“烟囱式”开发
    • 引入 OLAP 分析引擎,灵活的处理多样的分析需求
    • 引入实时计算Flink版,更灵活的版本选择,更彻底的计算资源隔离。

针对 Flink 版本问题,引入了阿里云实时计算 Flink 版全托管,提供灵活的扩缩容,同时有更丰富的版本,可以根据任务需求选择不同的 Flink 版本。阿里云实时计算 Flink 版全托管对版本的支持,紧跟社区,可以实现从1.10~1.13各个版本之间的灵活切换,完美解决了 Flink 升级难题。此外,实时计算 Flink 版全托管和 EMR 资源也是完全隔离的,很好地解决了实时任务和离线任务抢占资源的问题。

如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践

架构升级带来的技术演进

微淼大数据研发团队也对实时计算架构进行了升级,参考离线数仓将实时数仓根据分层设计的思想分为了4层。


实时数仓四层模型:

  • ODS 层:
    • 贴源存储埋点数据各种日志

ODS 层,也就是常说的实时数据接入层。通过数据采集工具把各个业务系统的实时数据采集过来,统一进行结构化处理。这个过程不过滤数据,尽量保证数据的原貌。这层数据的主要来源包含三部分,第一部分是业务方接受的 MQ 消息,第二部分是业务数据库的binlog 日志,第三部分是埋点日志和应用程序日志,这三部分最终统一写入 KafKa 中。


  • DW 明细层:
    • 流数据关联维表统一进行ETL,统一进行去重,过滤,分流等动作,生成公共行为明细表和业务行为明细表
    • 业务明细表关联各自业务维表形成了业务主题明细表
    • 明细表写入 OLAP 引擎,以便进行 OLAP 分析和快速汇总

DW 明细层,也就是明细中间层。这层以业务过程作为建模驱动,基于具体的业务过程事件来构建。比如交易过程有下单事件、支付事件等,基于这些事件进行明细层的构建。在这层,明细数据参考离线数仓的主题域进行划分,也会采用维度建模的方式组织数据,对一些重要的维度字段做适当的冗余。这层的数据来源于 ODS 层,通过 Flink 进行数据清洗,多流关联补全维度,最终也写入 KafKa 中。实时维表层用来存放维度数据,主要用于 DW 层宽化处理时数据补全使用。这层的数据主要存储于 HBase 中。后续还会基于 QPS 和数据量的大小,灵活选择更合适的存储介质,比如 Redis。


  • DWS 汇总层
    • 读取业务主题明细表计算出各业务主题关心的通用维度和指标,并存储到 OLAP引擎中

DWS 层,也就是实时汇总层。这层通过 DW 层的数据进行多维汇总,提供给下游业务方使用。在实际应用过程中,不同业务使用维度汇总的方式可能不同,根据不同的需求可以采用不同的技术方案去实现。第一种方案,采用 Flink 进行实时汇总,然后将结果指标写入 HBase 或 MySQL 等数据库中。这种方式的优点是实现逻辑比较灵活,缺点是聚合力度比较固化,不容易扩展。第二种方式,采用实时 OLAP 工具进行汇总,这种方式的优点是容易扩展,缺点是业务逻辑需要在中间层预处理。


  • ADS 层:
    • 提供 ad-hoc 查询和实时大盘服务

ADS 层,也就是实时应用层。这层数据已经写入应用系统的存储中,比如写入 Doris 作为 BI 看板的实时数据集,或者提供实时 OLAP 服务,写入HBase,MySQL 用于提供统一的数据服务接口。


Flink+OLAP 实时数仓促进业务价值提升

基于新的平台架构和实时数仓架构,微淼快速稳定地支撑了业务的需求。近2个月就对公司业务进行了如下支持:

  • 研发并部署了5个大中型项目
  • 开发并调度20个任务
  • 支持了5个业务系统
  • 支持了7个实时可视化看板


运营方面的提升:

  • “催到课”功能提升到课率10.5%
  •   直播指标实时监控提升续费率1.5%
  •   落地页访问情况实时监控促进产品优化落地页13


实时产出的精准数据,给运营和投放团队争取到了宝贵的决策时间;给老师提供了有力的实时教学数据支持,获得了各个需求方的一致肯定。


三、与阿里云未来的合作规划

从实时计算到实时数仓,不管是数据架构还是技术方案,微淼在深度和广度上都有了更多的积累。


随着公司业务的快速发展以及新技术的不断推出,实时数仓也会不断的迭代优化。比如 OLAP 引擎目前使用的是 Apache Doris,后期会在这个领域和阿里云有更深入的交流。此外,还会从以下方面进一步提升实时数仓的服务能力,这些也是微淼大数据将来和阿里云一起深入讨论的方向:

  • 持续跟进实时计算 Flink 版的使用体验
  • 完善实时数仓血缘关系,提升任务和表的质量监控
  • 完善元数据管理体系
  • 完善 Flink 作业的监控,建立实时数仓价值评估体系,量化投入和产出
  • 进一步强化实时任务的鲁棒性


以上就是微淼基于阿里云大数据生态的应用实践,以及实时计算 Flink 版全托管在微淼的实践总结的全部内容。





相关信息


⭐点击链接观看直播回放,超多活动信息等你来

https://yqh.aliyun.com/live/bigdataop

⭐更多EMR相关信息,欢迎前往EMR产品详情页:    https://www.aliyun.com/product/emapreduce


欢迎钉钉扫码加入EMR相关产品交流群,为您提供最新的产品直播、产品活动及技术支持!

如何构建云原生的开源大数据平台 | 微淼基于阿里云大数据生态的应用实践

上一篇:系统集成项目管理工程师考试资源搜集


下一篇:Java入门 - 语言基础 - 21.Scanner类