摘要:导读随着系统架构的演进,#数据湖仓 选择面临着存储层体系不统一(全湖/全仓/湖仓一体)、计算层性能成本难平衡,以及多系统管理效率低、稳定性差等问题。阿里云 Hologres+Paimon 湖仓一体解决方案,通过#统一数据平台构建#实时湖仓架构,实现一份数据、一
导读随着系统架构的演进,#数据湖仓 选择面临着存储层体系不统一(全湖/全仓/湖仓一体)、计算层性能成本难平衡,以及多系统管理效率低、稳定性差等问题。阿里云 Hologres+Paimon 湖仓一体解决方案,通过#统一数据平台构建#实时湖仓架构,实现一份数据、一份计算、一份服务,极大提高了据开发及应用效率。本文将深入剖析这一架构的技术特性与优势。
主要内容包括:
1. Hologres 架构与能力
2. 湖仓存储一体、多模式统一计算
3. 分析服务一体
4. Hologres3.x 全面升级
分享嘉宾|江进 阿里云 资深技术专家主管
编辑整理|守青
内容校对|李瑶
出品社区|DataFun
01
Hologres 架构与能力
随着系统架构的演进,数据湖仓的选择面临着以下挑战:
如何选择合适的计算存储架构?在存储层,湖和仓并未统一,究竟走向全仓、全湖,还是湖仓一体,有待进一步探索;在计算层,采用离线计算实时性较差,而流计算价格昂贵。如何保证多个数据存储及元数据管理系统的协同效率及稳定性?当前解决方案中大多存在两套存储系统、两套计算系统,系统间逻辑不对齐会导致开发效率难以提升,而且会带来稳定性问题。1. Hologres 整体介绍
针对上述问题,Hologres 进行了全面的研究探索,通过统一数据平台构建了湖仓存储一体、多模式计算一体、分析服务一体、Data+AI 一体的实时湖仓架构。
Hologres 在 TPC-H 30,000GB 标准测试中获得了世界第一的荣誉。它不仅支持高性能的 OLAP MPP 架构,还支持在线查询,能够提供高性能的 KV 查询服务,支持 10 万次每秒的数据写入。另外,在数据湖仓加速方面,Hologres 同时支持了 MaxCompute 和 OSS 数据。Hologres 具有非常强大的实时性能,能够支持 PB 级别的秒级分析,实现几十万次秒级的点查。此外,Hologres 通过 Serverless 实现了高可用和负载隔离。
2. Hologres3.x 能力升级
今年,Hologres 从 2.2 逐步升级至 3.x 版本,支持湖仓一体,实现了一份数据、一份计算、一份服务。新版本 Hologres 可以对接 DRF、HMS(Hive)等多种开放数据结构,能够通过一份 SQL 计算实现自动分层的需求,无论流式刷新、增量更新还是全量刷新,都能无缝接入到 Hologres 生态系统中。
02
湖仓存储一体、多模式统一计算
1. Hologres+Paimon 最佳实践
Hologres 统一外表(External Database)元数据管理,能够直接读取存储在 MaxCompute 的元数据,同时支持 Hive MetaStore 和 DLF 上的元数据。在表格式方面,Hologres 同时支持了 Hudi、Paimon、Delta Lake 和 Iceberg,并且可以通过 Flink、EMR、MaxCompute 读写湖仓数据。
阿里云推出 Hologres+Paimon 实时湖仓的最佳组合。其中,Paimon 通过各种方式实现整库写入、流式写入、批量写入等,而 Hologres 可以加工 Paimon 数据,进行批量读、流式读,或者将其作为维表进行 lookup join。
Hologres 对于 Paimon 的支持可以总结为如下几个特性:
统一元数据管理:Hologres 能够支持对于 Paimon 的各种增删改查服务,并且统一管理元数据。极致性能:支持读取 Paimon Deletion Vector 功能,并且重新实现了基于 C++ 的 native reader,能够直接读写 Paimon 数据,从而绕开了 Java GC 带来的性能、吞吐等问题。增量消费:Hologres 是目前市面上唯一一个支持 Changelog 的 OLAP 系统,能够快速、便捷地将 Paimon 数据导入系统,并且支持流式或增量更新,构建 Dynamic Table。ETL:支持写入 Paimon 表,支持轻量 ETL。2. Hologres 性能优化
相比于 Hologres2.2 版本,Hologres3.x 通过开发 IO 合并、延迟物化、tableGroup 等多项功能,大幅优化了外表读取性能,其数据湖 Paimon 表的性能提升了 60 倍。从 TPCH 1T 测试结果来看,其外表读取性能已经达到内表性能的 40%,处于世界领先水平。
实际使用中,实时数仓绝大部分是内表,而且由于能够提供各种搜索引擎以及更易理解的文件格式,可以达到更高的查询性能。另外,实际经验表明,用户对于报表功能的查询更多集中在最近 7 天或最近 30 天的数据。因此,为弥补内表、外表在读取性能上的差距(优化后,外表仅达到内表性能 40%),Hologres 提供了数据湖镜像功能。用户只需要将数据写在湖上并配置 TTR 时间,Hologres 会自动将湖仓的功能同步到内表中,让热数据获得内表一样的性能。即便用户查询中部分涉及到外表数据,Hologres 也能够自动完成 SQL 转化。
以上过程对用户透明,用户无需知晓 Hologres 内表的存在,即可获得类内表查询性能。从另一个角度来讲,我们可以将内表看作一层缓存,用户只需保证并维护外表的正确性,而内表和外表的一致性与正确性均由 Hologres 维护。
3. 业务案例:双 11 大促
Hologres 近八年来一直支持淘天集团的内部核心业务,包括淘宝直播、营销活动等。其中,淘宝直播将整个数仓放入 Hologres 以支撑实时直播看板、实时风控等前端应用。利用内表加 Dynamic table 等功能,该方案将整体开发效率提升了 200%,同时降低了 50% 成本开销。
另外,在淘天营销活动中,全部数据存储于 Piamon 湖表,通过 Dynamic Table 增量刷新和 T+1 全量回溯支撑营销分析报表和活动数据监控。该方案降低了 70% 营销活动成本,同时减少了 80% 的回刷延迟,做到分钟级 E2E 时效。
在去年双 11 大促中,Hologres 支持了淘天集团近 30 个不同的应用场景,设计出面向未来的一体化实时互仓架构。在此全仓架构中,所有数据均落入 Hologres,通过内表支持固定报表、OLAP 分析、自助分析等功能。整个过程使用 Dynamic table 进行分层,从 ODS 层到 DWD 层到 ADS 层,实现高实时性和强查询性能。
如果用户在乎共享和开放性,则可以采用 Hologres 的湖仓架构,将数据放在 ODS 层的 OSS 或 MaxCompute 上,方便与其它引擎共享,同时利用 Hologres 数据湖镜像功能,获得内表的快速查询能力。与全仓架构相比,该方案实时性和查询性能较弱,但共享能力强且用户成本更低。
03
分析服务一体
作为一个分析服务一体的查询引擎,Hologres 解决了一份数据在多种计算场景中面临的隔离、弹性、成本等难题。早在 2020 年,Hologres 就首先提出分析服务一体化思路,同时支持 OLAP 查询和在线服务,基于一份数据同时提供在线应用和数据分析的功能。无论是在线 KV 查询、数据大屏的分析查询,还是云看板的查询,都可以通过 Hologres 一站式完成。
1. 计算组
对于一份数据多场景计算的隔离性问题,Hologres 配备计算组功能,各计算组资源独立分布、独立运转、独立扩缩容,从而保证不同计算组之间可以共享数据,同时互不侵占干扰。
2. 分时弹性与 Serverless computing
在实时场景中,数据湖仓面临以下资源难题:
资源浪费难题:波峰波谷分时特征明显,需要预留限制资源。大任务难题:大 ETL、大查询跑不出来,影响其他查询。运维难题:高并发打爆实例,未知来源大查询。Hologres 提供了计算组实例分时弹性功能,支持每个计算组单独设置弹性计划,每个弹性计划设置多个时间段。用户可以根据平均计算量购买实例,然后通过分时弹性的 Serverless 方式支持大 ETL 任务。相较于传统的按照最高峰用量购买的包年包月方式,该方案极大提升了资源利用率,降低了用户成本。
另外,该方案也有效缓解了传统 MPP 架构下由大任务 OOM 引发的资源竞争问题。一旦发现 ETL 任务占据大量资源的情况,Hologres 可以按需重新分配 Serverless 资源加入计算组,从而避免集群被打爆。
3. 业务案例:云上传媒
以某云上传媒客户应用为例,其传统方案中百亿数据均由 MaxCompute 外表加工并导入,每天需处理上百个复杂任务,出现数十次 OOM,无法保证稳定运行。而且由于需要为大型 ETL 任务预留 50% 的计算资源,导致在数据加工时间段外严重的资源闲置浪费。使用 Hologres 后,大任务、大查询成功率可达到 100%,综合 CPU、内存水位下降 50% 以上,并且通过释放预留计算资源,节约了 20% 的总成本。
综上,Hologres 通过计算组和分时弹性解决了波峰波谷分时特征下的资源浪费难题;通过 Serverless Computing 支持大 ETL、大查询稳定执行,不影响其它任务。此外,Hologres3.0 加入了 query queue,与传统MPP引擎的即时查询不同,当发现集群资源较满时,Hologres 会自动排队,确保实例不会被高并发 SQL 打爆。
04
Hologres3.x 全面升级
1. Hologres3.x 特性
Hologres3.x 进行了一次全新升级,构建了一个面向未来的一体化实时湖仓,真正做到了一份数据、一份计算、一份服务,极大提高了数据开发及应用效率。具体来讲,Hologres3.x 具备以下特性:
湖仓存储一体,提供一体化数据平台:通过外表元数据处理,统一管理数据湖和内表;基于向量化查询引擎和数据自动同步,加速 MaxCompute 和 OSS 外表数据查询,相较于竞品具备较大优势;支持 Paimon、Delta Lake 等主流湖表格式。多模式计算一体,支持高性能实时分析:亿级高性能写入,处于业界领先地位;基于 Binlog 支持数据实时导入与集群间同步;支持 Dynamic Table 动态写入、全量刷新和增量刷新,极大提升湖上数据的时效性。分析服务一体,实现低成本弹性 Serverless:一份数据可以同时以行存或列存的形式存在;同时支持分析服务和在线查询服务,能够以超高的 QPS 进行组件式检查(单机支持 300 万级别 QPS);通过计算组隔离支持一份数据多个租户,结合分时弹性机制,能够极大降低使用成本(相较于用户单独构建数仓,可节省 50% 以上)。Data+AI 一体,构建企业级易用能力:从向量计算、企业级数据库,到对于 AI 技术的支持,Hologres 接通通义析言,能够通过 AI 自动诊断各类线上问题。2. One data for all
对于数据湖,Hologres3.x 做到 One data for all,不再需要数据搬迁。Hologres 提供了业界领先的湖表查询能力,更好的写湖性能,并且兼容几乎所有 BI 工具,大幅提升了湖上 OLAP 的易用性。基于数据镜像功能,Hologres 能够提供与内表查询相近的性能,无需为了追求性能而维护两份数据。同时,Hologres 通过 Dynamic Table 实现在湖上进行实时的数据加工。此外,Hologres 支持 MaxCompute 和 Paimon Delta Table 的读写,极大提升了时效性,对离线数仓到近实时数仓都提供了很好的支持。
3. 成本与易用性
为追求更低使用成本,Hologres3.x 深化了 Serverless 能力和使用场景,极大减少了计算资源浪费。通过自动限流、自动弹性和大 query 自动 Serverless 功能,使用户可以用一份数据、一个引擎来支持完全不同的场景。
同时,Hologres 加入了一些易用性功能:1)支持逻辑分区表,简化分区管理;2)表回收站功能,支持管理员误删数据表的恢复;3)表快速重建功能,便于表结构调整;4)新建 DML 算子,避免数据写入/导入时出现 OOM。
4. 面向未来持续演进
现在 Hologres 在阿里云上和阿里巴巴集团内部支撑了包括互联网平台、游戏娱乐、软件服务、广告营销、物流交通、在线教育等领域的各类用户,实现了实时数仓、交互式分析、流量分析、实时大屏、搜索推荐、AI 等多方面应用。
未来,Hologres 会继续丰富 Serverless 场景,让更多用户发挥云计算的弹性能力,并且进一步通过智能物化视图、智能加速等功能,提高性能、降低成本。同时,Hologres 将与 AI 结合,使用 LLM 针对当前分库分表状态,自动推荐最优 SQL 查询。在数据湖方面,Hologres 会以让湖表查询达到内表查询性能为目标,进行持续优化;同时,支持数据自动回流到湖和 MaxCompute。当前 Hologres 已经支持 remote UDF,即通过 RPC call 调用用户自建的 UDF,未来半年内将开发内置 UDF 功能,支持用户直接将 UDF 挂载到 Hologres 集群中。
以上就是本次分享的内容,谢谢大家。
来源:DataFunTalk