基于交互式分析搭建的典型应用场景

交互式分析经过在阿里巴巴集团近3年的沉淀,已覆盖上百个业务团队,今天小编将会从技术的角度为大家解读交互式分析的架构亮点,以及基于交互式分析架构搭建的典型应用场景介绍。

架构介绍

系统架构

底层存储在盘古系统中,存储计算分离,并与MaxCompute在底层无缝打通,可直接对MaxCompute数据加速查询。
兼容PostgreSQL,提供JDBC、ODBC接口可直接对接各种开发工具、BI分析工具。
规模水平扩展,支持复杂查询,多维分析,复杂关联分析。
基于交互式分析搭建的典型应用场景

存储计算分离

常用的存储计算有共享存储方案和非共享存储方案,而交互式分析采用的是存储计算分离方案。
1.共享存储方案:该方案是所有数据都存在公共存储里,当多台机器需要写同一条数据时,为了保证数据的一致性,需要分步式的检索机制,带来一定的开销。同时也需要维护各个机器之间的一致性,增加运维成本。
2.非共享存储方案:该方案是每台机器都有自己的本地存储,数据会分片存储在机器的本地存储,机器通过网络去协同完成用户的查询,优势在于扩展性好,能做到水平扩展,缺点是当需要扩容或者缩容时,因为数据存储在机器的本地盘里,需要将数据迁移到新的机器,整个数据迁移过程非常漫长,时效性差。
3.存储计算分离方案:该方案是共享存储集群,存储所有数据,所有计算会有单独的计算集群,计算存储通过网络进行交互,类似共享存储方案。但是数据在整个过程是分片的,每个计算会由一个单独节点去写,类似非共享存储方案。存储计算分离结合以上两种方案,在保证快缩容的同时,又能实现无限的水平扩展。随着带宽的增长,网络的延迟变得越来越低,这也就降低了远程存储所带来的额外开销。同时利用云端资源,当需要更多存储时,可申请存储资源扩容到存储集群,需要更多计算时,可申请计算资源扩容到计算集群,在水平扩展的同时保证资源的弹性,为业务提供保障。
基于交互式分析搭建的典型应用场景

流批统一的数仓

针对Lambda架构,对离线数据的处理是将其写进离线系统中,优点是高吞吐、效率高,但该系统的缺点是在处理实时数据时,实时性差,通常需要将实时数据存在实时系统中(如Hbase)。这就使得开发人员同时维护两套系统,并要保证两套系统的一致性,开发成本大。
Flink虽然提供一套代码来维护两套系统,开发难度缩小,但是从存储方面来说,也需要两套存储,一个存储离线数据和一个存储实时数据,同时也经常需要对数据导入导出,操作依然复杂。
而交互式分析作为流批统一的实时数仓,能够同时存储实时、离线的数据,在降低开发成本和运维成本的同时,也保证了数据的一致性和秒级交互式响应。
基于交互式分析搭建的典型应用场景

典型业务场景

实时A/B Testing场景

例如某个产品上线时,通常会进行实时A/B test,常用的流程是:算法工程师在产品的关键指标处埋点,实时采集用户数据(点击、浏览、收藏等),从而产生用户的行为日志,并存储在消息队列(例如DataHub)中,再经过实时计算,将用户信息与行为数据、产品信息进行关联,并做信息的聚合,形成不同的模型,通过对模型的不断测试和调优,最终得到最优模型。
整个过程中的最大挑战在于要计算的指标非常多,如果每个指标都用实时计算来做统计,会浪费大量的资源。
针对这个挑战,引入交互式分析引擎,先用实时计算对指标进行初步对聚合,算法工程师可以根据不同模型的要求将数据进行清洗再写入进交互式分析,免除不必要资源的浪费现象。算法工程师也会通过交互式分析直接对接第三方分析工具(例如实时报表、实时大屏等)进行模型分析,为进一步理解每个模型的表现情况,需要不断用交互式分析来进行数据的交互,在此过程中,交互式分析可达到高并发的秒级交互式响应,为下一步的模型快速调优提供强有力的支持。
基于交互式分析搭建的典型应用场景

离线加速场景

MaxCompute是大规模的离线数仓,在离线数据处理上可提供PB级的计算服务。
传统的离线数据处理过程是:将离线数据存在MaxCompute,再导入到OLAP中,使用OLAP对接BI工具进行数据服务。整个过程中需要数据的导入导出,增加额外成本的同时也不能保证数据获取的时效性,无法满足海量数据快速分析的即席要求。
而交互式分析在底层与MaxCompute资源打通,无需数据额外导入导出,就能分析MaxCompute中的数据,大大降低存储成本和运维成本。同时交互式分析兼容PostgreSQL生态,能对接PostgreSQL的BI分析工具也能直接对接交互式分析,实现离线数据的快速可视化分析。
基于交互式分析搭建的典型应用场景

精细化运营

例如双11大促时,常用的数据链路是:用户数据实时采集进DataHub,实时计算数据清洗写入到交互式分析,并对接BI工具来实时可视化分析现有数据的表现,从而根据实时情况来做下一步的运营策略。为进一步提升指标,需要对部分用户进行精细化运营(例如对已加购但未付款的用户发放一定的优惠券),此时若只采集实时数据,人群数量庞大,需要借助离线数据(例如过去半年购买情况)将人群变得更加精准化,使用交互式分析直接实时加速查询离线数据,并设定人群圈定规则,将实时数据与离线数据取交集,来得到最终的精细化人群。
基于交互式分析搭建的典型应用场景

关于交互式分析的更多信息,可前往交互式分析官网进行查看:https://www.aliyun.com/product/hologram
也欢迎大家扫码加入我们的钉钉群进行交流:
基于交互式分析搭建的典型应用场景

上一篇:ubuntu16.04安装oracle常见问题


下一篇:c++编程思想2 --友元存储控制