Hologres+Paimon构建一体化实时湖仓

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Hologres 3.0全新升级,面向未来的一体化实时湖仓。它支持多种Table Format,提供湖仓存储、多模式计算、分析服务和Data+AI一体的能力。Hologres与Paimon结合,实现统一元数据管理、极速查询性能、增量消费及ETL功能。Dynamic Table支持流式、增量和全量三种刷新模式,满足不同业务需求,实现一份数据、一份SQL、一份计算的多模式刷新。该架构适用于高时效性要求的场景,也可用于成本敏感的数据共享场景。

一、Hologres 3.0全新升级:面向未来的一体化实时湖仓

首先讲解Data Warehouse。从上世纪80年代开始,最初做数仓是为了服务报表BI的平台,随着数据湖的技术兴起,会有更多非结构化的数据放到数据湖里面,这些都会围绕对象存储展开,相比数据仓库,数据湖可以更灵活的、更方便的存储半结构化和非结优化数据,随着技术的发展,现在更多的技术讲究的是湖仓融合Big House,Hologres在传统的实时数仓向实时湖仓进行转型,Hologres从2016年诞生至今,在2020年开始商业化推出1.0版本,当初推出HSAP实施分析服务一体化的概念,在去年推出Hologres 2.0,主打serverless的场景,今天发布Hologres 3.0的版本,全面拥抱数据湖的生态,提供一体化实时湖仓的产品能力。


Hologres的一体化实时湖仓主要体现在四个方面。首先是湖仓存储一体,现在支持多种的湖上的Table Format,包括常见的Paimom、Hudi 等,其次是多模式计算一体,推出Dynamic Table,一份数据和一套SQL计算,自动去实现图上的仓上的分层,其次是分析服务一体,不仅擅长于OLAP的分析场景,也擅长于分析的Serving的场景Hbase的场景,最后是Data+AI一体,后面topic会着重放在湖仓一体的上面。

 

 

二、Hologres+Paimon构建一体化实时湖仓

Hologres和Paimon一起能做什么?Paimon在数据入湖的场景上集成很多核心能力,比如说它支持一键数据入湖实时的更新部分列的更新,还有多种灵活的更新聚合的更新。其次Paimon有别于其他的市面上Table Format,它提供Change log特性有助于Paimon实现实时数据湖的构建,真正的由上游的系统消费change log构建分层。第三个就是极速的OLAP查询,Paimon有很多适合OLAP查询的特性,包括它的Catalog cash以及丰富的索引。Hologres和Paimon在一起可以很好支撑在整个湖仓中的所有的环节。首先对于OLAP分析层,Hologres可以有效的加速流式的读取批量的读取以及维度的读取,Hologres都可以有效的支撑在整个湖仓环节上的CDC入湖、宽表合并、流批一体、生成Change log的场景以及索引优化的场景


简单总结Paimon+Hologres能够实现的核心特性。首先是统一原数据,Hologres在最新版本提出External Database的能力,在Hologres中可以统一的新增删除,或者做Schema change Paimon Table的能力,其次是极速的查询性能,对于Paimon的索引是有能够集成,支持c++直读,实现毫秒级的返回。其次是增量消费的能力,Hologres是市面上唯一款能够消费Paimon Changelog的OLAP引擎,可以基于流失的构建或者增量构建Paimon Table,实现数仓的分层。最后是ETL,Hologres现在可以有效的写Paimon的数据、Paimon的表,对于历史数据可以回刷回Paimon,做一些轻量的ETL。


首先是External Database的能力,可以看到在整个过程中,只需要就是great exchange all data base,就可以映射到原数据存储系统里面,其次是由于PG本身原生的就是三层的结构,所以PG的External Database可以直接被传统的AI工具读到,比如原生和BI工具做支持,不用去改任何SQL可以全身的使用。第三件是ETL,可以直接利用c++能力直接写到数据湖上用Paimon格式,用Sburg格式等,最后Paimon的Changelog构建Dynamic Table,这张图是做的一个简单的标准的TPCH的benchmark,分别用Trino42的版本读Paimon以及Hologres 3.0的版本读Paimon,可以看到蓝色的柱子是Trino的performance,红色的柱子是Hologres 3.0的performance可以看到在标准的TPCH测试集上,Hologres相比Trino有六倍以上的性能提升,总结为比如Trino消费Paimon的performance是一个base,用外表查询得益于包括比如c++直读HQE的向量化执行引擎,Paimon的索引的利用 多级缓存,会有六倍的性能提升。如果用Dynamic Table进入Hologres的内表,应该会有十倍以上的性能提升。

 

 

三、Hologres Dynamic Table+Paimon

再来展开讲Dynamic Table和Paimon的结合,实际观察中发现数仓往往会用三种模式实现。首先是常见的Flink和Kafka做配合,数据写到Kafka里面,在Kafka里面做数仓分层,用Spark Streaming或者是Flink去做,这种优点分层结构清晰,在实时数仓里面可以实现分层,缺点就是Kafka并不易于排查和修正,从里面查出一条数据也不易于修正。第二个方式就是数据实时入湖,做一些分钟级的调度实现数仓分层,优点是成本相对来说会更低一些,但是延迟高时效性比较低,不容易满足一些实质性的需求,第三个方式就是用户化视图,主要优点是加工更加简单,它的刷新方式本质上还是全量刷新,无论是by partition的刷新还是整表的刷新,会利用更多的资源做物化视图。


三种方案各家都会提出自己的一些解决方式,比如常见的就是最早 Spark和Spark streaming就提出用同一套SQL解决流式和批量的这两种场景。这种数据对于分析类的场景,写入比如像stories或者click house产品,对于服务类的场景写入Hbase场景,Flink写入Hologres分析服务一体化的对上层提供服务,但这种方式的优点就是统一SQL的语法和方言,降低整个开发的门槛和成本。但是缺点是存储层并不统一。它始终需要有两个任务完成批量和流失的数据的刷新,有可能会造成SQL统计口径上的不统一。但同时它只能做实时或者是批量的,它无法做净实时增量的刷新,同时针对之前提到的方案一。Hologres和Flink之前也推出过Streaming Warehouse的架构,Flink通过消费Hologres的Binlog,加工之后再写回Hologres,有效的解决中间层用Kafka出现问题,比如数据不易更新,数据不易查不易修正的一些问题,每一层都可查可修正,且中间层不仅能够提供Flink消费,也可以让用户直接查,这种方案逐渐成为一个实时全仓的标准方案。


湖仓的方案在哪里,如果要提供一个好的一体化实时湖仓,大概要具备这六点能力,分别是统一的数据模型,流式批量和全量都应该有同样的模型支撑。同时有共享的处理逻辑存储逻辑,不需要用两套SQL解决不同的问题,要有灵活的计算引擎统一的存储,不能流时的是一个存储,批量的是一个存储,实时的是一个存储。其次是生命周期的统一管理,以及低延时和高吞吐量的需求。在这种背景下,Hologres在计算层给出了一份答案,叫做Hologres Dynamic Table多模式统一计算,支持一份数据,一份SQL,一份计算,解决实时湖仓上的分层问题,它支持流式、增量 全量三种刷新模式,分别应对不同的时效性和所需的成本。全量模式的成本较低,时效性最低,它更适合固定报表的场景和历史回刷数据的场景,对于增量模式成本适中,时效性大概是在分钟级别,它的成本也更加适中,比较适合近实时的数据分析的场景,最后其实是流时模式,它的成本是最高的,时效性也是最高的,适合实时数据分析 风控 直播 电商场景,Dynamic Table使用的时候整个引擎保证三种模式的SQL语义一致,计算逻辑尽量的复用,计算层统一,声明式数据处理架构自动的管理整个数据的pipeline。Hologres本身是具备统一存储的,是统一的存储层,无需配置额外的资源,可按需选择,在数据刷新上,可以选择用本实例的资源。也可以选择按量付费的Services Computing的资源进行刷新,最后对于资源管理层能达到真正的统一。


最后全量刷新模式相比于其他的OLAP产品做自适应的和AGG的场景,会更多的融入分层或者retry的方式,更好做批的场景。实际如何建一张Dynamic Table,一张Danamic Table会分成以下几个部分。比如一张销售的报表,它是一张分区表,每天都会有一个分区,它会分为四个主要的部分,第一个部分是定义最新的分区的刷新模式,以及它的刷新频次和刷新周期,对于Streaming的模式不用定义,对于增量的模式和全量的模式都可以定义自动的刷新周期,比如定义一个最新分区用增量的模式去刷新,且每五分钟刷新一次,按天分区,下面的一部分是定义什么时候创建新的分区,且什么时候把历史分区转换为全量的刷新模式,比如设置是到每天晚上转成批量的刷新模式,再下一部分是这张表的索引,比如分布按照什么分辨,最后一部分就是SQL的生成逻辑,它是按照什么样的业务的逻辑生成这张DynamicTable的。可以看到三种不同的刷新模式,在流时的时候它refresh mode。在不同的场景下,只要改refresh mode就可以定义不同的刷新模式,提供不同的时效性和不同的成本,真正实现一份数据,一份SQL,一份计算多模式刷新,满足业务不同的对于时效性和成本的需求。在这种湖仓上,对于base表和尾表都可以用湖上的表,比如Open Lake ODS点,这个淘宝的数据就是存在湖上的,用的Paimon的格式,这里面是Streaming的刷新模式,在消费Paimon的Change log,播放一个demo。这个场景是主要演示这部分的能力。这个数据通过Flink实时的进入OpenLake的存储,用Paimon的表格去存储,打开它的ChangedLog。在Hologres里面用Dynamic Table做输出分层,最后会拿DynamicTable部分的数据写OpenLake,这些数据再用不同的引擎,比如Max Computer Spark或者Flink,做一些消费或者二次计算。


第一个步骤创建External Database做映射,其次在Hologres里面创建一个DLF里面的Database,这个部分创建之后,在DLF已经可以看到Database出现,同时在Hologres里面创建一张Paimon的表,刷新一下,发现在DLF里面也已经出现,在Hologres里面可以做统一的原数据管理,在一套系统里面实现多个存储的这些管理。


其次第二个步骤,其实更多讲的是DynamicTable部分,首先可以直接查湖上的表。发现它是半结构化的数据,依托于post grapes强大的半结构化数据处理的原生支持的函数。可以把它转成结构化。可以看到半结构化的jason给它拆开,同时可以做一些分析,在Data works的上面发现数据是可以要的,希望它能够持久化的构建中间的DWD层,就可以用DynamicTable方式。首先可以做一个incremental的增量的Dynamic Table,主动刷新一下,就可以看到数据在构建。可以设置Schedule,如果对它的时效性要求更高,可以通过同样的数据和SQL,用不一样的Reformation mode,现在可以用Streaming的方式进行构建,刷新发现这个数据其实是在变化的。


最后一个部分是可以把Hologres的数据通过SQL直接就回到图上,比如现在先创建一张Paimon表,用于回写,比如把这段时间的数据回写归档到湖上,通过一个SQL就可以写回去,这份数据就可以分享给Spark,用Spark读原生的panels的函数。也可以在Max Compute里面读这份数据。这都是原生一致的


最后回顾架构,一共有两种模式。如果对于业务的时效性、查询性能要求是更极致的,追求更高的,可以利用全仓架构,中间可以Dynamic Table的能力做数仓的分层。对于数据的时效性和查询能力。相对来说要求没有那么高,但是对于数据的共享能力和Ods层DWD层的数据的共性的成本会更care的话,可以选择用湖仓的架构,把ODS层和DWD层的数据更多的放在湖上做一体化的实时湖仓的架构。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
1天前
|
SQL 监控 关系型数据库
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
本文整理自用友畅捷通数据架构师王龙强在FFA2024上的分享,介绍了公司在Flink上构建实时数仓的经验。内容涵盖业务背景、数仓建设、当前挑战、最佳实践和未来展望。随着数据量增长,公司面临数据库性能瓶颈及实时数据处理需求,通过引入Flink技术逐步解决了数据同步、链路稳定性和表结构差异等问题,并计划在未来进一步优化链路稳定性、探索湖仓一体架构以及结合AI技术推进数据资源高效利用。
219 22
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
|
3天前
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
28 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
3天前
|
SQL 存储 JSON
实时数仓 Hologres 产品介绍:一体化实时湖仓平台
本次方案的主题是实时数仓 Hologres 产品介绍:一体化实时湖仓平台,介绍了 Hologres 湖仓存储一体,多模式计算一体、分析服务一体和 Data+AI 一体四方面一体化场景,并对其运维监控方面及客户案例进行一定讲解。 1. Hologres :面向未来的一体化实时湖仓 2. 运维监控 3. 客户案例 4. 总结
25 14
|
3天前
|
存储 SQL 运维
Hologres OLAP场景核心能力介绍-2024实时数仓Hologres线上公开课02
本次分享由Hologres产品经理赵红梅(梅酱)介绍Hologres在OLAP场景中的核心能力。内容涵盖OLAP场景的痛点、Hologres的核心优势及其解决方法,包括实时数仓分析、湖仓一体加速、丰富的索引和查询性能优化等。此外,还介绍了Hologres在兼容PG生态、支持多种BI工具以及高级企业级功能如计算组隔离和serverless computing等方面的优势。最后通过小红书和乐元素两个典型客户案例,展示了Hologres在实际应用中的显著效益,如运维成本降低、查询性能提升及成本节省等。
|
4天前
|
SQL 存储 运维
云端问道5期方案教学-基于 Hologres 轻量实时的高性能OLAP分析
本文介绍了基于Hologres的轻量实时高性能OLAP分析方案,涵盖OLAP典型应用场景及Hologres的核心能力。Hologres是阿里云的一站式实时数仓,支持多种数据源同步、多场景查询和丰富的生态工具。它解决了复杂OLAP场景中的技术栈复杂、需求响应慢、开发运维成本高、时效性差、生态兼容弱、业务间相互影响等难题。通过与ClickHouse对比,Hologres在性能、写入更新、主键支持等方面表现更优。文中还展示了小红书、乐元素等客户案例,验证了Hologres在实际应用中的优势,如免运维、查询快、成本节约等。
云端问道5期方案教学-基于 Hologres 轻量实时的高性能OLAP分析
|
15天前
|
DataWorks 关系型数据库 OLAP
云端问道5期实践教学-基于Hologres轻量实时的高性能OLAP分析
本文基于Hologres轻量实时的高性能OLAP分析实践,通过云起实验室进行实操。实验步骤包括创建VPC和交换机、开通Hologres实例、配置DataWorks、创建网关、设置数据源、创建实时同步任务等。最终实现MySQL数据实时同步到Hologres,并进行高效查询分析。实验手册详细指导每一步操作,确保顺利完成。
|
18天前
|
存储 关系型数据库 BI
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。
|
3月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
3月前
|
人工智能 分布式计算 数据管理
阿里云位居 IDC MarketScape 中国实时湖仓评估领导者类别
国际数据公司( IDC )首次发布了《IDC MarketScape: 中国实时湖仓市场 2024 年厂商评估》,阿里云在首次报告发布即位居领导者类别。
|
3月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
291 0

相关产品

  • 实时数仓 Hologres