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
相关文章
|
2天前
|
SQL 分布式计算 大数据
湖仓融合:MaxComputee与Hologres基于OpenLake的湖上解决方案
本次主题探讨湖仓融合:MaxCompute与Hologres基于OpenLake的湖上解决方案。首先从数据湖和数据仓库的历史及业界解决方案出发,分析湖仓融合的两种思路;接着针对国内问题,介绍阿里云如何通过MaxCompute和Hologres解决湖仓融合中的挑战,特别是在非结构化数据处理方面的能力。最后,重点讲解Object Table为湖仓增添了SQL生态的非结构化数据处理能力,提升数据处理效率和安全性,使用户能够在云端灵活处理各类数据。
|
2天前
|
存储 关系型数据库 BI
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。
|
22天前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
2月前
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
450 4
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
2月前
|
缓存 监控 大数据
构建高可用AnalyticDB集群:最佳实践
【10月更文挑战第25天】在大数据时代,数据仓库和分析平台的高可用性变得尤为重要。作为阿里巴巴推出的一款完全托管的PB级实时数据仓库服务,AnalyticDB(ADB)凭借其高性能、易扩展和高可用的特点,成为众多企业的首选。本文将从我个人的角度出发,分享如何构建和维护高可用性的AnalyticDB集群,确保系统在各种情况下都能稳定运行。
42 0
|
3月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
3月前
|
人工智能 分布式计算 数据管理
阿里云位居 IDC MarketScape 中国实时湖仓评估领导者类别
国际数据公司( IDC )首次发布了《IDC MarketScape: 中国实时湖仓市场 2024 年厂商评估》,阿里云在首次报告发布即位居领导者类别。
|
3月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
270 0
|
4月前
|
存储 机器学习/深度学习 监控
阿里云 Hologres OLAP 解决方案评测
随着大数据时代的到来,企业面临着海量数据的挑战,如何高效地进行数据分析和决策变得尤为重要。阿里云推出的 Hologres OLAP(在线分析处理)解决方案,旨在为用户提供快速、高效的数据分析能力。本文将深入探讨 Hologres OLAP 的特点、优势以及应用场景,并针对方案的技术细节、部署指导、代码示例和数据分析需求进行评测。
150 7
|
4月前
|
运维 数据挖掘 OLAP
阿里云Hologres:一站式轻量级OLAP分析平台的全面评测
在数据驱动决策的今天,企业对高效、灵活的数据分析平台的需求日益增长。阿里云的Hologres,作为一站式实时数仓引擎,提供了强大的OLAP(在线分析处理)分析能力。本文将对Hologres进行深入评测,探讨其在多源集成、性能、易用性以及成本效益方面的表现。
190 7

相关产品

  • 实时数仓 Hologres