客户介绍

好未来(NYSE:TAL)是一家以才智教育和开放渠道为主体,在全球范围内服务公办教育,助力民办教育,探索未来教育新形式的科技教育公司。好未来的前身学而思成立于 2003年,2010年在美国纽交所正式挂牌买卖。好未来以“爱和科技让教育更夸姣”为使命,努力成为受敬重的教育组织。当时,好未来已构建起从东西、渠道到内容的多元化教育生态,满意从-1岁到 24岁各年龄段人群个性化学习需求。目前,好未来旗下具有学而思素质、学而思网校、彼芯、美校、学而思国际、学而思文创出书中心、学而思大学生、妈妈帮等品牌,并战略出资了赫石少儿体能等多个品牌。集团事务掩盖素质教育、技能服务、海外教育服务、数字内容出书、教育硬件、保管服务等领域。

学而思网校,纽交所上市公司好未来旗下在线教育品牌,为6-14岁的孩子供给素质教育服务。2008年成立至今,积累了十余年教研经验和学习数据,陪同千万孩子生长,在家长间口口相传。学而思网校首创“直播+教导”的双师教育形式,大力投入AI和全真互联网等前沿技能,继续推进教育立异。2021年学而思网校全面晋级素质体系,推出人文美育、科学创想、编程与机器人等抢手素质课程。

网校实时数仓开展背景介绍

网校实时数仓1.0从2019年开端建立,依据Kudu OLAP引擎构建,前期承载事务不多,使命量不大,运行安稳、性能也很高,比较合适前期的技能选型;自2020年后,网校进入事务快速开展期,实时开端接受更多的事务需求,包含营销域、买卖域、教育域等数据域的建造以及实时大屏,随着需求增多,实时数仓使命量、数据量也不断攀升,Kudu开端遇见技能瓶颈,无法快速满意事务需求,运维难、本钱贵等问题也开端凸显。

替换Kudu,Hologres助力好未来网校实时数仓降本增效

与此一起,2021年7月教育职业遭受“双减”,公司事务开端面对事务减缩以及转型等事务改变,很多学科类、无效使命空跑,形成资源的极大糟蹋,本钱办理提升日程,开端着手调研建造本钱更低的实时数仓OLAP引擎。经过市面上几款OLAP引擎的比照,终究选型Hologres,并于2022年1月开端实时数仓晋级,经过半年多的本钱办理以及数仓建造,网校实时数仓迈入2.0阶段,比较于1.0版数仓,愈加安稳、可靠,建造本钱也更低。此次晋级首要是针对实时数仓的底层OLAP引擎的晋级,运用阿里云Hologres替换Kudu,完结实时数仓降本增效,助力事务愈加精细化增长。

实时数仓1.0:以Kudu为OLAP引擎,技能瓶颈凸显

1、网校实时数仓1.0全景图

实时数仓1.0支撑着网校大部分的线上数据,用于报表剖析,精准营销等多个场景,其事务数据流程如下图:

  1. ODS层首要存储日志、事务库同步过来的原始数据,包含用户行为等埋点日志以及事务数据等。
  2. ODS层数据清洗后,写入DWD层,并在DWD层对依据事务需求数据做细分,分为教育、买卖、营销等明细数据。
  3. DWS层将DWD数据与学员、课程、班级、讲次信息等维表进行相关,生成事务宽表或许事务模型汇总等数据。
  4. ADS层从DWS获取数据,面向使用层,首要是运用MSQL、Polardb作为查询引擎,依据事务场景对接实时看板、实时大屏、实时接口等,赋能实时销量、转化、续报、在线、出勤、完课等场景。

替换Kudu,Hologres助力好未来网校实时数仓降本增效

2、依据Kudu架构的场景计划

整个实时数仓1.0都是依据Kudu来建造的。其背后的技能架构如下图:

替换Kudu,Hologres助力好未来网校实时数仓降本增效

依据事务的时效性,将网校的场景分为分钟级场景和实时秒级场景。

1)准实时数仓模型(分钟级):

在分钟级实时数仓中,会经过Spark/Flink对数据进行预处理后写入Kudu,并在Kudu中依据ODS、DWD、DWS分层核算,然后将数据写入ADS层的PolarDB或许MySQL,最终对接实时大屏、报表等事务。

替换Kudu,Hologres助力好未来网校实时数仓降本增效

2)实时数仓模型(实时秒级):

在实时秒级的场景中,对数据的时效性要求非常高,选用Flink+Kafka架构,DWD明细数据一起会落地一份到Kudu,DWS层核算过程中 相关Kudu维表、以及前史DWD数据来完结汇总模型构建,输出成果数据到ADS层的PolarDB、MySQL、Kafka消息行列等,最终对接线上服务。

替换Kudu,Hologres助力好未来网校实时数仓降本增效

网校实时80%左右场景,运用分钟级完结;20%场景运用秒级实时链路完结。当然也有部分场景可能运用混合链路完结,比方实时在线、出勤,Flink程序实时接入心跳明细数据到数仓DWD层,然后在DWS层进行分钟级汇总班级出勤、在线等数据,在ADS层进行数据的输出。

3、事务应战:Kudu技能瓶颈凸显,事务本钱办理刻不容缓

实时数仓1.0中,Kudu作为底层OLAP引擎,运用Impala进行数据加载、运算,当事务上量时,Kudu的技能瓶颈开端凸显,首要表现在以下几个方面:

  1. 事务开展后期,Impala服务器内存压力较大,内存不足问题频发:网校80%的事务运用分钟级数仓完结且都是每隔5分钟核算一次,Impala承载Kudu数据的加载、核算,很多杂乱核算的Sql使命在同一时间瞬时打到服务器,导致Impala节点内存压力较大,甚至呈现部分批次使命履行失败情况。
  2. 运维困难:缺少Kudu专业运维同学,当某个数据目标核算呈现问题,或许集群不安稳时,有比较长的运维流程和修订流程,严重影响实时服务的安稳性,无法保证实时数据的SLA,使得用户体会非常欠好。
  3. 毛病康复时间长,当呈现节点毛病的时分,为了快速康复事务,短期靠扩容节点来暂时解决问题,导致运维和本钱压力逐步增大。
  4. “双减”原因,急需对本钱进行办理,迫切需求将Kudu切换到建造本钱更低、更安稳、可靠的OLAP引擎。

综上,依据Kudu实时数仓,正逢“双减”,面对着事务快速改变、本钱压力以及运维困难等一系列的内、外部应战,咱们迫切的期望能够找到一款OLAP产品将Kudu进行替换,解决当时遇见的各种问题,建立一个愈加简洁、易用、运维快捷、资源动态伸缩容的数仓底座。

实时数仓2.0:Hologres读写别离布置全面替换Kudu

依据实时数仓1.0的技能痛点,在对市面上的多种OLAP引擎进行调研以及比照后,咱们终究挑选了阿里云Hologres替换Kudu建立网校实时数仓,即实时数仓2.0版本。

1、OLAP引擎技能选型需求:高吞吐、高可用

依据事务,咱们梳理了对OLAP引擎的需求如下:

  • 强壮的OLAP才能
  • 支撑SQL,支撑更新、删去、Upsert操作
  • 高吞吐、高可用
  • 运维方便,资源伸缩快捷

一起咱们也比照了市面上常见的OLAP引擎,如下表所示,终究挑选了Hologres为新的OLAP引擎

替换Kudu,Hologres助力好未来网校实时数仓降本增效

2、Hologres全面替换Kudu作为主OLAP引擎

挑选了Hologres作为实时数仓的主OLAP引擎之后,经过Hologres替换了Kudu的一切数据处理链路,一起也经过Hologres读写别离布置的方法,以只读从实例(简称从库)替换了原PolarDB/MySQL等查询引擎,以此构成了实时数仓2.0。数据链路如下:

  1. 数据分为离线和实时两部分。离线部分数据源数据经过集团采集东西T-Collect接入Hologres ODS层,实时部分经过Flink实时接入MySQL Binlog、埋点日志等数据入仓。
  2. 在Hologres中对数仓分为ODS、DWD、DWS、ADS等4层,每一层的数据经过集团T-Data渠道分钟级调度、清洗,并最终由Hologres从库供给线上服务出口。
  3. 实时和离线数据一致由Hologres存储,并由从库作为查询引擎一致供给线上数据出口,支撑的事务场景包含实时看板、实时大屏、实时接口服务、实时推送等场景。

替换Kudu,Hologres助力好未来网校实时数仓降本增效

3、查询引擎一致切换到Hologres从实例

实时数仓1.0核算在Kudu中,算完之后把成果同步到查询引擎PolarDB或许MySQL中,实时链路相对来说比较长,而且数据移动本钱也很高,对实时数据的安稳性有必定的影响。

实时数仓2.0中,咱们选用Hologres同享存储多实例的高可用布置计划,Hologres主实例承载数据的加载、核算,从库同享主库的一切表和数据承载数据查询,完结读写别离计划,而且从库作为实时数仓唯一的数据出口,一致数仓技能架构。这种计划的优点是减少了ADS层数据同步导出链路的保护,降低了开发本钱。

Hologres的同享存储多实例的高可用布置计划如下图所示:

替换Kudu,Hologres助力好未来网校实时数仓降本增效

实时数仓2.0查询引擎一致晋级切换到Hologres从库后的数据流转图前后比照如下:

替换Kudu,Hologres助力好未来网校实时数仓降本增效

一起,咱们计划对外开放Hologres从库ADS层,剖析师或许懂SQL的产品教师后期可经过集团T-Query渠道查询东西对实时数据进行探索、剖析,骄傲意部分暂时需求,减少人工需求、释放实时数仓开发人力。

助力数仓事务晋级,完结降本增效

实时数仓2.0经过半年多的建造,在本钱办理上取得了非常好的效果,一起依据Hologres的实时数仓架构在集团推广使用上也有比较成功的事例:

1、百万级写入和毫秒级查询才能

  • 实际事务中,Hologres的写入才能达到百万行+/秒,事务就能快速拿到数据并查询。一起在查询上不仅能支撑秒级OLAP剖析,还能支撑在线服务毫秒级响应,使得事务探索数据的功率变得更快。
  • 经过Hologres多子实例的布置方法,天然的就支撑了网校实时数仓的多个查询场景,一致了数据的出口,简化了数仓的运用。而且写入和查询之间互不影响,非常有用的做到了读、写别离。

2、降低本钱近百万/年

  • 实时数仓底座晋级Hologres后,无需保护多套体系,经过Hologres一套体系支撑了实时数仓的全部场景,OLAP引擎本钱比较Kudu节约了近百万/年的费用。
  • 公司事务转型背景下,经过数据办理、使命办理等使命数下降80%,Yarn行列资源本钱节约几十万/月,数据冗余存储减少90%,提升了数据的利用率。

3、减少运维压力

  • 经过Hologres替换Kudu后,依托阿里强壮的技能运维才能,很大程度减少了咱们在运维层面上的压力,愈加专注于事务开发,有更多精力去做好实时数据的安稳性、准确性、及时性,把用户体会做好。
  • 周末、暑假等事务高峰资源不足时,可随时进行扩容;事务低峰时,能够对资源进行缩容处理,做到很好的一个资源伸缩和本钱操控。

4、集团内Hologres实时数仓架构推广

  • 网校实时数仓天然带有K9基因,期望学成功复制网校实时数仓2.0架构,并承载中心实时数据服务,比方实时续报、转化、企微等

未来规划和期望

未来规划:

  • 网校实时数仓的继续建造
  • 数据办理:元数据、数据质量、数据资产、数据安全等
  • 流批一体技能探索

最终谈一谈,在Hologres运用过程中碰到一些问题以及对Hologres的等待

  • Hologres暂时还不支撑自定义函数,体系自带函数满意不了部分特别需求,自定义函数这块能够同阿里的技能同伴一起去共建、推进此功用的完结、上线。
  • 其次是Hologres权限配置问题,目前支撑简单权限模型、专家权限模型和Schema等级权限模型三种形式,专家模型功用最强壮(支撑细粒度表等级权限操控),但配置比较杂乱,需求履行的指令细节多,从而运维不方便,线上运用的是简单权限模型,权限要操控到schema、表等级,需求在使用体系层面加一层库、表权限办理体系,增加了开发本钱;开源Hadoop离线数仓有Range等权限操控结构,能做到精准库、表等权限操控,期望Hologres以后能把权限模型优化得愈加简单易用,更多白屏化操作,方便上手。
  • 一起,咱们等待Hologres后面能够支撑查询开源架构Hive表的数据,这样的话做流批一体能够有愈加快捷、简单的完结计划。

相信Hologres未来会变得越来越好用,变成一款功用更全面、愈加强壮的OLAP引擎!咱们也期望经过Hologres建造出愈加优秀的实时数仓,赋能更多的事务。

作者:刘标新,好未来网校实时数仓开发工程师、负责人。王洋,好未来网校实时数仓开发工程师

参阅文章:

学而思网校:touch.xueersi.com/

实时数仓Hologres中心技能揭秘:developer.aliyun.com/article/779…

实时数仓Hologres同享存储实例介绍:help.aliyun.com/document_de…