Hologres 弹性计算在 OLAP 分析上的实践和探索
作者:王奇 阿里云 Hologres 研发
简介:
1、本文介绍了 OLAP 分析在大数据分析中的位置
2、分析并介绍目前大数据 OLAP 遇到的分析性能、资源隔离、高可用、弹性扩缩容等核心问题
3、解析阿里云 Hologres 是如何解决极致性能、弹性、业务永续、性价比等核心刚需的最佳实践
4、介绍阿里云 Hologres 弹性计算组在弹性计算、资源隔离上的探索和创新
一、 OLAP 分析在大数据分析中的位置
目前业界将大数据分析主要分为四个阶段:描述性分析、诊断性分析、预测性分析、规范性分析。
目前 OLAP 分析主要集中在描述性分析阶段,其中诊断性分析、预测性分析、规范性分析属于高阶分析领域,后续 OLAP 分析也会逐步渗透于诊断性分析和预测性分析中。
二、Hologres 如何解决 OLAP 分析的核心问题
OLAP 分析的核心问题
分析性能差,数据价值可望而不可及。 当前大数据在接受度、技术、应用等各方面趋于成熟,大数据逐步应用于各行各业,这些行业在大数据应用领域面临的第一个问题和挑战就是分析性能差,进而阻碍了挖掘大数据中的巨大价值。如何让用户更快的进行 OLAP 数据分析是普遍面临的一个问题。
多种业务场景之间相互影响,隔离成本较高。 业务在线上经常会遇到不同业务场景之间的相互影响而带来的查询抖动的问题,比如写写之间、读写之间、大小查询间的相互影响,以及在线服务、多维分析、即席分析等之间的相互影响。尤其是某些大数据引擎并不是存算分离架构,一般会通过复制多副本去实现隔离,成本很高。
无服务级高可用、 容灾和多活的方案。 业务一般通过双/多链路来实现高可用、容灾和多活,这其中涉及的人力、计算资源等成本较高。
不支持弹性扩容。 越来越多的业务对弹性能力有着强烈的诉求。当业务流量突然增长能及时扩容扛住流量,否则对业务就意味着资损;在业务低峰时能及时缩容,降低成本。那么如何低成本的实现弹性扩缩容是大数据引擎面临的一个普遍问题,尤其是某些引擎不是存算分离架构,一般是需要通过数据的复制来实现多副本,基本上很难实现及时的弹性扩容能力。
OLAP 分析的核心刚需:高性能、弹性、低成本
随着业务的不断发展,OLAP 分析也逐渐进入大多数业务的核心在线场景。用户对其 OLAP 分析有如下四大刚需:
业务永续:有高可用、容灾和多活的能力,提升生产系统的稳定性
极致性能:数据的价值应该被最大程度的挖掘,需要有更加极致的性能来满足业务需求
弹性:弹性资源能够很好的支持业务的动态变化,满足业务的不同需求
低成本:用更少的成本支持更多的业务,实现更高的性价比
Hologres 如何解决 OLAP 分析的核心问题
Hologres 是阿里云自研的一站式实时数仓引擎,支持数据的实时写入、实时更新,同时也支持 OLAP 分析和在线服务查询,目前已广泛应用于阿里内部众多核心业务场景,包括菜鸟物流、淘宝搜索推荐等,同时在云上也有着众多客户实践。那 Hologres 作为企业级的生产实时数仓,是如何解决 OLAP 分析问题呢?
1、HSAP 架构运用。 在解决 OLAP 分析时运用 Hybrid Serving/Analytical Processing(HSAP)设计理念,通过统一的实时存储,数据无需复制就能一站式提供简单查询、OLAP 分析、在线数据服务等多样化的数据查询和应用服务,满足数据应用方的访问和接入需求。这种架构大大地降低了业务的复杂度,快速应对新的业务需求。同时也提供的秒级甚至亚秒级实时性让决策更及时高效,从而让数据创造出更大的商业价值。
2、弹性能力提升。 Hologres 引入弹性计算组模式(Warehouse),每个 Warehouse 可按时按需创建销毁,重新配置,且可动态热扩缩容。计算和存储高度可扩展,具有双重弹性的能力。
3、云原生资源存储。 基于云原生资源存储的弹性扩展,按需使用,可以做到低成本、高可用,高可靠,同时还具有弹性能力。
4、极致性能。 基于现有的 C++ Native 执行引擎+优化器,拥有全异步框架(Thread-per-core 架构)、向量化计算、多种 Index 的实现、精细化的 Cache、基于代价的优化器模型,支持各种 predicted pushdown、runtime filter 等;轻量级用户态线程调度,同时支持多种查询负载(高并发、复杂统计)、公平调度算法(CFS)、高并发充分利用计算资源等主要特性。
5、实现流批统一存储。 具有业内领先的行列共存特性,列存对查询分析友好,行存对点查快速;具有高效数据分片、分段、压缩、索引;LSM-like 写友好数据结构,高吞吐数据写入,支持更新,写入即可见。
三、Hologres 只读从实例(共享存储)解决隔离问题
如上文所述,几乎每个用户都会遇到不同业务场景之间的相互影响而带来的查询抖动的问题。不同的引擎因为架构不一样,对于隔离的实现也不一样,那 Hologres 又是如何解决隔离的问题呢,下面我们以具体场景为例:
具体场景:
场景一:多种业务场景之间相互影响 。
几乎每个用户都会遇到不同业务场景之间相互影响而带来抖动。比如:读写、读读 相互影响;分析、服务、离线加工 相互影响
场景二:在线业务需要通过多链路才能实现计算多活 。
具体挑战:
挑战一:如何更好的解决系统资源隔离的问题
挑战二:如何让用户更简单低成本的实现计算多活,降本提效
具体措施: 通过 Hologres 只读实例(共享存储)来解决
只读实例具有五大特性:基于物理 WAL 日志驱动、共享存储、物理文件的完全复用、主实例 Failover 时从实例不受影响、只读实例 Failover 时可从最新位置开始恢复。通过只读实例可以实现:
资源隔离:用户可以实现完整的读写/读读分离功能,保障不同业务场景的服务稳定性;
计算多活:用户只需简单配置可以快速实现同城计算多活,以更少的资源(8~10:1)实现多链路,并节省用户的人力、计算资源等成本。
四、Hologres 新一代弹性计算组实例解决弹性问题
越来越多的业务对弹性能力有着强烈的诉求,那么 Hologres 又是如何解决弹性的问题呢?
具体场景:
场景一:只读实例需要多个 Endpoint,用户感知差 。业务需要配置新的 Endpoint 才能使用新的只读实例。
场景二:用户希望业务高低峰弹性扩缩容 。用户期望按需弹性扩缩容,节省成本。
场景三:用户希望有更灵活更精细化的资源隔离方案 ,可以按业务等场景实现资源隔离。比如:写写隔离,业务隔离。
具体措施:建设新一代实时数仓 Hologres 弹性计算组实例
为了更好的解决弹性问题,满足业务不同场景下对资源的合理使用,Hologres 率先支持弹性计算组实例。弹性计算组实例采用 Multi-cluster, Shared Data 架构,将计算资源分解为不同的计算组(Warehouse),每个计算组可独立弹性扩展,计算组之间共享数据、元数据。
Hologres 弹性计算组实例介绍
弹性计算组实例主要分为以下几个组件:
1.计算组:
计算组的弹性能力:
计算组在任意时间进行按需地创建、销毁或者重新配置, 可动态热扩缩容单独的计算组,实现单个计算组的弹性伸缩能力。 同时 Hologres 具有天然的计算存储分离架构,结合计算组实例可以同时做到计算、存储高度可扩展,具有双重弹性。
计算组的资源隔离能力:
写写隔离:实时写入分离、离线写入分离,以及 实时写入 和 离线写入等写入之间的隔离。
读写隔离:实时写入、离线写入 和 服务分析、即席分析、在线分析之间等 读写之间的隔离。
读读隔离:服务分析、即席分析、在线分析等读读之间的隔离。
业务场景隔离:用户可以将多个业务部门按照不同的计算组 隔离开,实现业务之间的完全的资源隔离。
2. 云服务组件: 云服务组件是基础组件。它主要包括原数据管理、安全认证以及统一接入的管理能力。
3.数据存储: Hologres 借助阿里巴巴自研的分布式文件系统 Pangu 对用户提供高性能、高可靠、高可用、低成本、弹性存储空间、强大稳定安全等核心服务。
弹性计算组核心价值介绍
1.弹性:Warehouse 可按时或按需拉起(Scale Out);Warehouse 可动态热扩缩容(Scale Up); 计算和存储高度可扩展,双重弹性。
2.易用:整体上对用户暴露一个实例一个 Endpoint,解决只读实例多个 Endpoint 的问题; Warehouse 相关操作(扩缩容等)均可以通过 SQL 实现, 可以简单配置就能实现支持多种业务场景。
3.低成本:用户可按需弹性使用资源,成本可控制到最低 ;基于物理 Replication 实现,物理文件完全复用,更节省资源(8~10:1),成本更低。
4.隔离: 每个计算组之间是天然的物理资源隔离,避免计算组之间的相互影响,减少业务抖动等。
五、Hologres 基于 OLAP 分析最佳实践
Hologres 只读实例最佳实践
一般情况下只读实例数据异步同步延迟 p99 在 5ms 内 ,可以高效的在双 11 等大促中为业务降本提效。下面介绍只读实例在阿里内部一些核心业务的运用与效果。
最佳实践一:双 11 在阿里 CCO 业务中的运用和效果
阿里 CCO 业务之前是使用双链路来建设容灾与读写分离的能力,切换到 Hologres 的只读实例方案后全部下掉双链路,通过只读从实例实现业务的查询隔离、容灾等能力。相比之前的双链路方案,新的 Hologres 只读实例方案,省去了备用数据链路上实时任务开发维护、数据比对的人力投入,减少链路切换时的数据不一致等问题,为业务在大促上降本提效。
最佳实践二:双 11 在阿里 DT 业务中的运用和效果
在双 11 大促中,阿里 DT(淘宝营销活动分析)业务引入了 Hologres 的只读实例实现读写分离能力,读写分离可以最大程度的保障高吞吐写入和灵活查询互不干扰。主备双链路方案可以让业务拥有底气和信心去应对随时可能出现的不可控风险,当故障出现时,可以实现秒级切换,为整个产品和业务决策分析提供稳定支持。
Hologres 弹性计算组双 11 在阿里 CCO 业务的最佳实践
为了更好的解决弹性和隔离的问题,在去年双 11 中,阿里 CCO 业务将之前的只读实例升级为弹性高可用实例,实现了资源的弹性按需使用、写写隔离、业务读写隔离等需求,同时在使用上不需要维护多个实例 Endpoint,系统变得更加灵活,也减少了运维压力。在稳定性、性能等方面经受双 11、618 等大促的考验,为业务在弹性、资源隔离、易用性等发挥了重要作用,最终为业务降本提效。
六、总结与未来展望
随着大数据技术在业务生产场景的推进,弹性、隔离、性能、成本等需求也开始变得越来越重要,我们期望通过这次分享 Hologres 在弹性、隔离方面的技术演进和思想,给更多的引擎和业务提供新的发展思路。同时 Hologres 也将持续优化核心技术竞争力,持续在资源隔离、弹性、高可用等方面进行技术完善和产品演进,助力更多业务构建企业级一站式实时数仓,真正地实现普惠化、自动化和智能化,为用户发挥更大的价值,提升在行业的竞争力。
Hologres 5000CU 时,20GB 存储免费试用, 前往试用>>
了解 Hologres: https://www.aliyun.com/product/bigdata/hologram
版权声明: 本文为 InfoQ 作者【阿里云大数据AI技术】的原创文章。
原文链接:【http://xie.infoq.cn/article/943e4469e6f50da01fcd87dff】。文章转载请联系作者。
评论