湖仓一体全面开启实时化时代

摘要:本文整理自阿里云开源大数据平台负责人王峰(莫问)老师在5月16日 Streaming Lakehouse Meetup · Online 上的分享,主要介绍在新一代湖仓架构上如何进行实时化大数据分析。内容主要分为以下五个部分:

  1. Data Lake + Data Warehouse = Data Lakehouse
  2. Apache Paimon–Unified Lake Format
  3. The Past, Present and Future of Apache Paimon
  4. Streaming Lakehouse is Coming
  5. Apache Paimon 已明确为阿里巴巴统一数据湖格式

一、Data Lake + Data Warehouse = Data Lakehouse

湖仓架构(Lakehouse)目前在业界已得到越来越多的使用。Lakehouse 是由 Data Warehouse(数仓)和 Data Lake(数据湖)这两种数据架构的融合,同时兼具二者的优势而形成自己独特的优点。基于 Lakehouse,我们不仅可以对结构化的数据,也可以对非结构化数据或半结构化数据进行统一存储。同时,基于 Lakehouse 开放的数据架构优势,使 Lakehouse 的数据湖存储可和业界主流的大数据计算范式(如流计算、批计算、OLAP 分析)进行较好的集成和融合,同时也能兼容常见的机器学习和 AI 的计算模型。

因此,基于Lakehouse 可以实现大数据和 AI 一体化的分析能力,同时 Lakehouse 也为用户提供极致的性价比和用户体验,越来越多的开发者和企业用户开始尝试基于 Lakehouse 架构进行数据分析。随着 Lakehouse 新的数据分析架构的逐步落地,和在各行各业的普及之后,开发者和用户对 Lakehouse 也提出了越来越多的要求和更高的诉求。其中一项非常重要的一个诉求就是如何在 Lakehouse 湖仓的架构上进行实时化大数据分析。如果在数据架构上就行实时数据分析,至少要具备两个条件/基本要素。第一,需要有一套能够进行实时数据分析的计算引擎。第二,要具备一套能够支持数据实时更新、实时流动的数据结构/数据格式。

显然,在 Lakehouse 架构中,在实时计算领域是具备了条件的。因为我们业界较流行的流计算 Flink,还有常见 Presto 等实时 OLAP 分析引擎都可对数据进行实时处理和分析。但反观在 Lakehouse 数据湖领域的存储技术上面是比较缺乏实时更新的能力。目前业界比较主流的三款数据湖格式是 Iceberg 、Hudi、Delta Lake 等,都是面向批量处理设计的数据湖格式,其数据结构天然对于实时更新能力来说是不足的,是有一些瓶颈的。

二、Apache Paimon–Unified Lake Format

为了弥补这一瓶颈,推出了 Apache Paimon 技术,Paimon 的特性和另外三个数据湖存储有非常大的区别,它面向流式数据更新和处理的场景,是为实时数据湖场景而生的。Paimon也引用了很多经典的数据存储技术(面向实时数据库存储的技术),如 LSM 等。它不仅支持批处理能力,如批量更新、批量读取、批量 Merge 等。此外,它还支持更低延迟的流式数据的实时更新和实时数据订阅,包括对 CDC 语义的支持。因此,Paimon 是一款真正意义上完整的流批一体的、统一的数据湖格式,并且能够完美的支持实时化数据分析的场景。此外,鉴于 Paimon 也学习了另外三大湖存储设计上的优势,具备了完整的开放性,使它能够和业界主流的如 Apache Flink、Apache Spark、Trino、Presto、StarRocks 等常用分析引擎进行无缝的对接和集成。

三、The Past, Present and Future of Apache Paimon

接下来看一下 Apache Paimon 的前世今生,以及未来发展方向,方便大家更好的理解:为什么要做 Paimon?Paimon 为什么适合做实时数据湖场景。

在第一天,Apache Paimon 是诞生于 Apache Flink 社区的,其实我们在 2022 年时就在探索基于 Flink 加速数据湖上的数据流动。我们尝试了 Flink 与 Iceberg 、Hudi 的对接,希望能够基于 Flink 的 Streaming 技术,加速 Iceberg 、Hudi 的数据时效性。用于这些数据湖技术都是基于批处理设计的,所以在数据更新上有一些天然的瓶颈,导致无法实现数据湖上数据的强实时流动。因此,我们在 Flink 的社区里孵化了一个子项目——Flink Table Store,能够面向流式设计的数据湖存储格式,从而实现数据湖上数据的实时流动。

经过一年的尝试,在2023年,我们发现这个 idea 是非常可行的,也取得了不错的成果。我们希望这个项目产生更大的效果,更独立的发展,因此把这个子项目从 Apache Flink 社区独立出来,,并把它放到 Apache 的孵化器中进行独立孵化,这就是 Apache Paimon 的诞生背景。

又经过一年的演进、打磨以及我们的努力,也非常感谢在这个过程中来自很多其他公司开发者的贡献,以及业务上的一些实践,在今年三月份,Paimon 正式的从 Apache 基金会毕业,成为新的一个顶级项目,并且完成了和主流如 Spark、Flink、Presto、StarRocks 等引擎的集成,可以提供一套完整的实时湖仓分析的解决方案。

接下来,在今年10月份(下半年)计划推出 Paimon1.0 的版本,形成一个完整统一的数据湖格式,统一支持流、批、OLAP 数据分析,并且能够和目前像北美最主流的 Iceberg 这些数据格式兼容。

四、Streaming Lakehouse is Coming

Paimon 是为实时的流式数据湖而生的。它和Apache Flink有着千丝万缕的联系。因此,Flink+Paimon 可以产生很大的化学变化,因为 Flink 是流计算的标准,基于Flink做实时数据处理已经得到大家的共识。Paimon 的定位就是在数据湖上实现实时数据存储。基于Flink+Paimon可以在Lakehouse上实现完整的、端到端的实时数据更新链路,利用 Flink CDC 技术将外部数据实时同步到数据湖中,写入 Paimon,接着利用 Flink StreamSQL 在 Lakehouse 中对数据进行实时的 ETL(实时数据处理),整个数据链路可以达到高时效性。将传统 Lakehouse 小时级的时效性提升到分钟级,甚至是秒级。因此我们也可以把这套架构称为 Lakehouse 的实时化版本,或是升级版、高级版——Streaming Lakehouse。这也是今天 Meet up 的主题。

五、Apache Paimon 已明确为阿里巴巴统一数据湖格式

最后分享一下 Paimon 在阿里的发展情况。Paimon 是阿里云开源大数据团队孵化出来的开源项目,在阿里巴巴内部已经得到了集团公司层面的高度的认可,以及各个兄弟团队的大力支持。Paimon 已明确定位阿里巴巴数据湖战略的统一数据湖格式项目。包括阿里巴巴几款主流的大数据计算型产品,像实时计算 Flink, EMR 中包括 Spark、StarRocks 等主流批处理和 OLAP 引擎,还有自研的 MaxCompute 和Hologres 等产品都全面拥抱 Paimon 统一数据湖格式,围绕 Paimon 构建统一的数据湖解决方案,形成一套数据和元数据,但多元化的计算分析解决方案。我们也将在阿里巴巴内部利用这套统一的数据湖分析解决方案支持集团内部所有数据业务。同时也将通过阿里云对外输出数据湖解决方案,支持海量的中小企业进行实时数据分析。相信经过阿里巴巴以及阿里云上海量用户对 Paimon 的输入、打磨和锤炼,让 Paimon 越来越好的发展,逐步成为业界数据湖的主流标准。我们也会将开源的红利以及成果回馈到开源社区,普惠更多的开发者和企业。我们也非常期待来自更多公司的开发者加入 Apache Paimon 的开源社区,一起共建开源项目,使数据湖解决方案越来越强大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/349116.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java线程池讲解!核心参数

创建方式 | 构造方法 Executor构造方法 存放线程的容器&#xff1a; private final HashSet<Worker> workers new HashSet<Worker>(); 构造方法&#xff1a; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit uni…

vue页面和 iframe多页面无刷新方案和并行存在解决方案

面临问题 : back的后台以jsp嵌套iframe为主, 所以在前端框架要把iframe无刷新嵌套和vue页面进行并行使用,vue的keep-alive只能对虚拟dom树 vtree 进行缓存无法缓存iframe,所以要对iframe进行处理 tab标签的切换效果具体参考若依框架的tab切换,可以去若依看源码,若依源码没有实…

NodeClub:NodeJS构造开源交流社区

NodeClub&#xff1a; 连接每一个想法&#xff0c;NodeClub让社区更生动- 精选真开源&#xff0c;释放新价值。 概览 NodeClub是一个基于Node.js和MongoDB构建的社区系统&#xff0c;专为开发者和社区爱好者设计。它提供了一套完整的社区功能&#xff0c;包括用户管理、内容发…

进击算法工程师深度学习课程

"进击算法工程师深度学习课程"旨在培养学员在深度学习领域的专业技能和实战经验。课程涵盖深度学习基础理论、神经网络架构、模型优化方法等内容&#xff0c;通过项目实践和算法实现&#xff0c;帮助学员掌握深度学习算法原理和应用&#xff0c;提升在算法工程师领域…

在k8s中部署Elasticsearch高可用集群详细教程

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

Unity EasyRoads3D插件使用

一、插件介绍 描述 Unity 中的道路基础设施和参数化建模 在 Unity 中使用内置的可自定义动态交叉预制件和基于您自己导入的模型的自定义交叉预制件&#xff0c;直接创建独特的道路网络。 添加额外辅助对象&#xff0c;让你的场景栩栩如生&#xff1a;桥梁、安全护栏、栅栏、墙壁…

03 SpringBoot 的工作原理

1.Spring Boot 的执行流程 Spring Boot 的执行流程主要分为两步&#xff1a; 初始化Spring Application实例 查看classpath类路径webApplicationType下是否存在某个特征类获取所有可用的应用初始化器类ApplicationContextInitializer获取所有可用的监听器类ApplicationListene…

【并集查找】839. 相似字符串组

本文涉及知识点 并集查找&#xff08;并差集) 图论知识汇总 LeetCode839. 相似字符串组 如果交换字符串 X 中的两个不同位置的字母&#xff0c;使得它和字符串 Y 相等&#xff0c;那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的&#xff0c;那它们也是相似的。…

HarmonyOS(36) DevEco Studio 配置debug和release

在android开发中可以在build.gradle来配置realease和debug,在HarmonyOS中可以通过build-profile.json5文件中通过buildModeSet配置&#xff1a; 在DevEco Studio 中可以通过下面来选择运行debug还是release&#xff1a; 我们可以通过BuildProfile.ets里面的静态变量获取当前…

全球经典智能仓储物流系统--大集锦

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 一、引言 在全球物流行业高速发展的今天&#xff0c;智能仓储物流系统已成为提升物流效率、降低成本的关键。 以下将详细介绍几种全球经…

在AI云原生时代应该如何应对复杂的算力环境

引言 随着在2019年ChatGPT4的爆火,AI这个之前常常被人觉得非常高深的技术渐渐的被越来越多的人们所了解,越来越多的公司、组织和开发者开始投入AI的使用和开发中来.随着AI和LLM的火热,算力资源也变的越来越紧缺,所以如何高效的管理和使用算力资源也变成了必须要面对的问题。 …

电池包断路单元DBU的预充电电阻应用案例

当电池组接触器闭合到电机和逆变器上时&#xff0c;逆变器电容器中会有电流涌入。这种非常高的电流至少可能会使接触器老化&#xff0c;并可能永久损坏接触器。 因此&#xff0c;当我们关闭电池组上的接触器时&#xff0c;我们分三个步骤执行此操作&#xff1a; 1.关闭主负极…

2024中国网络安全产品用户调查报告(发布版)

自2020年始&#xff0c;人类进入了21世纪的第二个十年&#xff0c;全球进入了百年未有之大变局&#xff0c;新十年的开始即被新冠疫情逆转了全球化发展的历程&#xff0c;而至2022年3月俄乌战争又突然爆发&#xff0c;紧接着2023年7月“巴以冲突"皱起&#xff0c;世界快速…

【StableDiffusion】Embedding 底层原理,Prompt Embedding,嵌入向量

Embedding 是什么&#xff1f; Embedding 是将自然语言词汇&#xff0c;映射为 固定长度 的词向量 的技术 说到这里&#xff0c;需要介绍一下 One-Hot 编码 是什么。 One-Hot 编码 使用了众多 5000 长度的1维矩阵&#xff0c;每个矩阵代表一个词语。 这有坏处&#xff0c…

通过Stream流对集合进行操作

Stream Api是JDK8提供的新特性&#xff0c;可以更为方便地对集合进行操作&#xff0c;比如我今天遇到的一个场景&#xff1a; 将本地的一个视频文件分成多块上传到Minio服务器&#xff0c;现在上传功能已经完成&#xff0c;需要调用minioClient对已经上传的文件重新合并成一个新…

[大模型]Phi-3-mini-4k-instruct langchain 接入

环境准备 在 autodl 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8 。 接下来打开刚刚租用服务器的 JupyterLab&#xff0c;并且打开其中的终端开始环境配置、模型下载和运行演示。 创建工作…

Python | Leetcode Python题解之第149题直线上最多的点数

题目&#xff1a; 题解&#xff1a; class Solution:def maxPoints(self, points: List[List[int]]) -> int:n len(points)if n < 2:return nres 2for i in range(n):x1, y1 points[i][0], points[i][1]has {}for j in range(i 1, n):x2, y2 points[j][0], points…

FastAPI 作为H5中流式输出的后端

FastAPI 作为H5中流式输出的后端 最近大家都在玩LLM&#xff0c;我也凑了热闹&#xff0c;简单实现了一个本地LLM应用&#xff0c;分享给大家&#xff0c;百分百可以用哦&#xff5e;^ - ^ 先介绍下我使用的三种工具&#xff1a; Ollama&#xff1a;一个免费的开源框架&…

无需破解,基于AI翻译的Poedit翻译小助手PoeditHelper

背景&#xff1a; 应用在做国际化的时候是一件比较让人头大的事情&#xff0c;需要进行多国语言互译&#xff0c;做国际化的方式有很多&#xff0c;现阶段比较常用的方式是gettext的形式&#xff0c;并输出一个.po文件来做国际化&#xff0c;与之配套的有一款半开源软件叫Poedi…

Java:爬虫htmlunit抓取a标签

如果对htmlunit还不了解的话可以参考Java&#xff1a;爬虫htmlunit-CSDN博客 了解了htmlunit之后&#xff0c;我们再来学习如何在页面中抓取我们想要的数据&#xff0c;我们在学习初期可以找一些结构比较清晰的网站来做测试爬取&#xff0c;首先我们随意找个网站如下&#xff…