Apache Paimon:开启实时湖仓存储新时代

news2024/9/24 17:17:39

Apache Paimon:开启实时湖仓存储新时代

  • 前言
  • Apache Paimon

前言

在当今数字化浪潮汹涌澎湃的时代,数据已成为企业最为宝贵的资产之一。如何高效地处理、存储和利用这些海量数据,成为了企业在激烈竞争中脱颖而出的关键。而在数据处理的广阔领域中,Apache Paimon 宛如一颗冉冉升起的新星,以其强大的功能和创新的技术,为实时湖仓存储带来了全新的变革。

随着企业业务的不断发展和数据量的急剧增长,传统的数据处理架构逐渐显露出其局限性。批式数仓虽能满足一定的数据存储和分析需求,但其时效性差,难以满足企业对实时数据的渴望。纯流式架构虽在时效性上有优势,但成本高昂且开发复杂,让许多企业望而却步。在这样的困境下,实时湖仓架构应运而生,它巧妙地结合了批处理和流计算的优势,为企业提供了一种高效、灵活且成本效益高的数据处理解决方案。

Apache Paimon 正是在这样的背景下崭露头角。它站在 Apache Iceberg 的坚实基础上,进行了大胆的创新和突破。通过原生支持在一张表上定义组件,实现了流式更新,极大地简化了流处理过程。其底层核心结构 LSM,更是为数据的高效压缩和读取提供了有力保障。在实际应用中,Paimon 展现出了广泛的适用性和强大的价值,无论是数据库 CDC 入湖、阿里智能引擎实践,还是蚂蚁的应用场景,都能发挥出独特的优势。

Apache Paimon

在当今数字化高速发展的时代,数据已成为企业的核心资产,而如何高效地处理和存储数据则成为了企业在激烈竞争中脱颖而出的关键。Apache Paimon 作为实时湖仓存储底座,正以其强大的功能和创新的技术,为数据处理领域带来一场深刻的变革。

在这里插入图片描述

传统的数据架构在面对日益增长的数据量和复杂的业务需求时,逐渐显露出其局限性。批式数仓虽然在一定程度上满足了企业对数据存储和分析的需求,但其时效性较差,ETL 通常按天或小时计算,查询也需要分钟级的时间。而纯流式架构虽然 ETL 时效性可达秒级,但成本高昂且开发复杂,让许多企业望而却步。

为了突破这些困境,人们不断探索新的数据处理架构。Kappa 架构试图将所有数据导入实时数据仓库,但成本过高且开发难度大;流批一体架构则面临着 Flink 批处理功能不成熟以及存储方式不统一的问题。在这样的背景下,实时湖仓架构应运而生。

实时湖仓架构结合了批处理和流计算的优势,能够在统一的存储架构上实现流批一体的计算,同时完成典型的 OLAP 查询。它就像是一座桥梁,连接了传统批式数据仓库和现代实时数据处理的需求,为企业提供了一种高效、灵活且成本效益高的数据处理解决方案。

在这里插入图片描述

Apache Paimon 正是在这样的需求下诞生的。它站在 Apache Iceberg 的肩膀上进行创新设计,为实时湖仓存储带来了全新的可能性。

Apache Iceberg 作为一种共享数据库存储,增加了对象存储友好、ACID transactions、INSERT & UPDATE & DELETE、Time Travel and rollback、Schema Evolution、Tag & Branch 等能力。这些能力为数据存储和管理提供了更高的可靠性和灵活性。

而 Paimon 则更进一步,原生支持在一张表上定义组件,实现了流式更新。这一创新功能使得用户可以直接对表进行 insert 操作进行更新,无需先删除再增加,大大简化了流处理过程。同时,Paimon 还能产生对应的 changlog,方便用户进行数据追溯和审计。

在这里插入图片描述

Paimon 进行主键更新的底层核心结构是 LSM(Log - Structured Merge - Tree)。这种结构具有高效的压缩和读取性能,非常适合更新或偏实时的领域。LSM 结构是一个排好序的层次结构,在压缩时不需要全部重写,新来的数据只需要与最上层的数据进行合并,写磁盘的放大效应小,压缩效率高。在读取时,由于数据是排好序的,可以进行读取时合并,成本也不会太大。

在这里插入图片描述

Paimon 在实际应用中有多种场景,为企业的数据处理带来了巨大的价值。例如在数据库 CDC 入湖场景中,Paimon 能够使入湖变得更加简单、高效和自动化。用户可以直接启动一个 Flink 作业写入 Paimon,然后用 Spark 来查询,其他的清理、压缩等工作都可以自动完成。此外,Paimon 社区还提供了一套工具,可以帮助用户进行 schema evolution,将 MySQL 的数据,甚至 Kafka 的数据同步到 Paimon 中。这使得数据库 CDC 入湖的链路更加简洁,提高了数据处理的效率。

在这里插入图片描述

在阿里智能引擎实践中,Paimon 作为业务数据库的统一镜像表,发挥了重要作用。它支持分钟级的流计算和流式读取,批量查询时效性为分钟级。通过将流和批处理统一到一张表上,所有下游业务都可以通过 Paimon 的统一入口来消费业务库的数据,减小了对业务库的压力,提高了整体吞吐量。同时,Paimon 建立在文件系统上,全天 24 小时都可以进行数据拉取,为企业的数据处理提供了更高的灵活性。

在这里插入图片描述

在蚂蚁的应用实践中,Paimon 也展现出了其强大的优势。在计算 UV 指标的例子中,之前使用 Flink 的全状态链路实现,但由于成本等问题,难以迁移大量业务。而 Paimon 的 upsert 更新机制和轻量级日志 changlog 为下游提供了实时的 PV 和 UV 计算,降低了整体资源消耗,提高了 checkpoint 的稳定性,减少了任务的回滚和重置时间,降低了业务研发成本。

在这里插入图片描述

在偏向 OLAP 的应用场景中,Paimon 与 Spark 集成良好。通过将数据写入 Paimon 并进行相关处理,再使用 Doris 或 StarRocks 进行 OLAP 查询,可以达到全链路 OLAP 的效果。与将数据直接写入 OLAP 类型的表相比,将数据写入 Paimon 背后的对象存储,成本非常低,虽然时效性只有 1 到 5 分钟,但对于某些对时效性要求不高的数据,这种方式能够加速更多业务数据的实时化。

在这里插入图片描述

除了在实际应用场景中的出色表现,Paimon 还在不断发展前沿技术。
例如,merge on write 模式在写入时进行一定的 merge,生成对原有数据的 deletion vectors,使写入慢一些,但读取快很多,实现了更新和极速查询的兼得。这种模式为用户提供了更好的性能体验,满足了不同业务场景下的需求。

在这里插入图片描述

Paimon 最新版本完全支持标签和分支的功能,还支持标签的自动 TTL 管理。这使得用户在使用 Paimon 时,能够像使用 Git 一样方便地进行版本控制和管理。通过标签和分支,用户可以更好地管理数据的不同版本,方便进行数据的回溯和比较。

在这里插入图片描述

同时,Paimon 正在研发 bitmap 索引,后续也会探索倒排索引的实现。这些索引技术的发展将进一步提高 Paimon 的 OLAP 查询能力,使得用户能够更快地获取所需的数据。

阿里云正在 OpenLake 项目中大力推进 Paimon 统一数据湖的能力,对接阿里云所有的计算引擎,致力于在云上提供基于湖格式的低成本、低延时的实时离线一体化的 serverless 解决方案。这将为用户提供更加便捷、高效的数据处理服务,帮助用户更好地应对数据处理的挑战。

在这里插入图片描述

Apache Paimon 以其创新的技术和广泛的应用场景,为企业提供了高效、灵活、低成本的数据处理解决方案。它的出现标志着实时湖仓存储进入了一个新的时代,将为企业的数字化转型带来巨大的推动力。

在未来,随着数据量的不断增长和业务需求的日益复杂,Apache Paimon 将继续发挥其优势,不断创新和完善。它可能会与更多的技术和平台进行集成,为用户提供更加全面的数据处理服务。同时,随着人工智能、机器学习等技术的发展,Paimon 也可能会与之结合,为用户提供更加智能的数据处理解决方案。

企业应积极拥抱这一变革,充分利用 Apache Paimon 的优势,提升自身的数据处理能力和竞争力。只有这样,企业才能在数字化时代中立于不败之地,实现可持续发展。

在这个数据驱动的时代,让我们共同期待 Apache Paimon 在未来的精彩表现,为企业的发展和社会的进步贡献更多的力量。

参考

https://mp.weixin.qq.com/s/jdDjXyS8Uh6cWdCmgOB9sg

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rsyslog交叉编译(armv7、armv8、aarch64、arm32平台通用)

文章目录 1、依赖库列表2、编译建议3、编译3.1、编译libestr3.2、编译libfastjson3.3、编译zlib3.4、编译libuuid3.5、编译libgpg-error3.6、编译libgcrypt3.7、编译openssl3.8、编译curl3.9、编译rsyslog该文档描述了如何交叉编译rsyslog到arm64嵌入式平台。 1、依赖库列表 li…

openjudge- 4.6算法之贪心_8469:特殊密码锁

题目 8469:特殊密码锁 总时间限制: 1000ms 内存限制: 1024kB 描述 有一种特殊的二进制密码锁&#xff0c;由n个相连的按钮组成&#xff08;n<30&#xff09;&#xff0c;按钮有凹/凸两种状态&#xff0c;用手按按钮会改变其状态。 然而让人头疼的是&#xff0c;当你按一个…

c++140namespace和ioterm

c语言只有一个全局定义域 那么可能会调错函数&#xff0c;调 错定义域 #include"iostream" using namespace std;//iostream 没有引入标准的std,需要手工写 //如果不写using namespace 需要引入std void main() {std::cout << "using test" <<…

【web开发】Spring Boot 快速搭建Web项目(二)

Date: 2024.08.31 18:01:20 author: lijianzhan 简述&#xff1a;根据上篇原文Spring Boot 快速搭建Web项目&#xff0c;由于搭建好项目后仍然无法使用, 我们还需要先配置一下项目。 操作如下&#xff1a; 找到src/main/resources文件夹&#xff0c;在该文件夹下点击右键创建…

【我的Android进阶之旅】使用TabLayout自定义一个TitleTabView

文章目录 零、效果图一、自定义一个TitleTabView1.1 自定义属性(attrs.xml 中)1.2 自定义TitleTabView1.3 TabItem的子布局1.4 颜色值二、在 XML 中使用 `TitleTabView`2.1 布局文件(XML)2.1.1属性说明三、在 Kotlin 中使用 `TitleTabView`:零、效果图 其中Tab 2是选中的效果…

【电子数据取证】Linux软件包管理器yum和编辑器vim

文章关键词&#xff1a;电子数据取证、手机取证、安卓取证、云取证 在Linux系统中&#xff0c;我们会进行一些软件的安装以及对一些服务或软件的配置&#xff0c;这时就需要用到Linux的yum以及编辑器&#xff0c;下面我们就来看一下这两个功能。 Linux软件包管理器yum 一、什…

数学建模强化宝典(3)fminsearch

一、介绍 fminsearch 是 MATLAB 中用于寻找单变量或多变量函数局部最小值的函数&#xff0c;它不需要函数的导数信息&#xff0c;属于无导数优化方法的一种。该函数通过单纯形搜索&#xff08;simplex search&#xff09;算法来工作&#xff0c;单纯形是n维空间中的一个n1顶点的…

ET算法【动态规划】

线性dp&#xff1a;dp[i][j] 由 dp[i - 1][j] 通过加减乘除等线性运算得到 状压dp&#xff1a;dp[i][j] 表示一个用二进制数表示的子集来反映当前状态&#xff0c;如7 &#xff08;111&#xff09;&#xff08;选了三个&#xff09; 期望dp&#xff1a;dp[i][j] 表示期望或者…

Redis从入门再到入门(中)

文章目录 1.Redis的数据类型1.1 Redis的5中数据类型1.2 字符串类型String1.3 哈希类型hash1.4 列表类型list1.5 集合类型set1.6 有序集合类型sortset 2.Redis的通用命令 1.Redis的数据类型 1.1 Redis的5中数据类型 redis是一种高级的key-value的存储系统&#xff0c;其中valu…

【Godot4.3】MarkDown编辑和控件事实渲染

概述 这是本人2024年5月份左右编写的一个简易的MarkDown编辑和渲染测试项目&#xff0c;基于自己编写的MarkDown解析和生成类MDdoc编写。之前是作为一个试验性的内容混乱的放置在另一个测试项目中&#xff0c;现在独立为一个单独项目。因为测验成功后就一直没改动&#xff0c;…

IEEE P3233 标准启动会回顾:迈向去中心化存储标准化的第一步

2024 年 8 月 30 日&#xff0c;由 CESS 发起的 IEEE P3233《Standard for Blockchain-Based Decentralized Storage Protocol Specification》标准启动会顺利举行。 此次会议标志着 IEEE P3233 标准制定的正式启动&#xff0c;也代表了去中心化存储技术标准化进程的正式开始。…

数据源10min自动断开连接导致查询抛异常(未获取可用连接)

由于个人能力有限&#xff0c;本文章仅仅代表本人想法&#xff0c;若有不对请即时指出&#xff0c;若有侵权&#xff0c;请联系本人。 1 背景 工作中引入druid来管理数据源连接&#xff0c;由于数据源每隔10分钟强制管理空闲超过10分钟的连接&#xff0c;导致每隔10分钟出现1…

如何构造哈夫曼树

目录 一、哈夫曼树的概念 1、结点的权&#xff1a; 2、结点的带权路径长度 3、树的带权路径长度 4、哈夫曼树 二、哈夫曼树的构造 1、构造步骤 三、哈夫曼树的编码 一、哈夫曼树的概念 1、结点的权&#xff1a; 定义&#xff1a; 每个结点的权重&#xff08;重要性…

fork入门

1哪个分支会打印 如下是fork的典型问题。fork之后有3个分支&#xff0c;分别是pid等于0&#xff0c;pid大于0&#xff0c;pid小于0。如果我们不了解fork的话&#xff0c;那么肯定会认为这里的if else分支只会有一个分支被执行。而实际的执行结果是两个分支都执行了。fork返回之…

客流预测 | 基于Transformer下车站点客流推断研究(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于Transformer的车站客流推断研究是指利用Transformer模型来预测车站的客流情况。Transformer是一种强大的深度学习模型&#xff0c;特别擅长处理序列数据。研究可以为城市交通管理提供重要决策支持&#xff0c;帮…

恢复丢失的数据:iPhone 恢复指南

不小心删除了 iPhone 上的重要数据并意识到它没有备份&#xff1f;您并不孤单。在 iPhone 上恢复永久删除的数据似乎令人生畏&#xff0c;但并非总是不可能。我们将探索各种方法&#xff0c;包括使用专门的软件和备份恢复选项&#xff0c;为您提供恢复丢失数据的最佳机会。 常见…

裸机:LCD

什么是LCD&#xff1f; LCD&#xff0c;全称为Liquid Crystal Display&#xff0c;即液晶显示屏&#xff0c;是一种利用液晶物质的光学特性&#xff0c;通过控制电场来改变光的透过性&#xff0c;从而实现图像显示的技术。以下是关于LCD的详细解释&#xff1a; 一、LCD的基本…

ElementPlus实现页面,上部分是表单,下部分是表格

效果 <template><el-dialog v-model"produceDialogFormVisible" draggable custom-class"dialog-title" :title"title" :close-on-click-modal"false"><el-form label-width"120px"><el-row :gutter&q…

【STM32H743】将全局变量定义到指定内存MDK

STM32H743将全局变量定义到指定内存MDK 2024年8月31日 #elecEngeneer 上链 参考硬汉嵌入式。 这样Target里面的设置就作废了。 把H743的几个SRAM写上 ; ************************************************************* ; *** Scatter-Loading Description File generated by…

5G智慧工地项目汇报方案

1. 项目概述 5G智慧工地项目旨在通过5G技术提升建筑工地的通信、安防、质量管理和精益化管理水平&#xff0c;打造科技感十足的“5G智慧建造体验中心”。 2. 智慧工地需求 当前智慧工地需求集中在实时化、可视化、多元化、智慧化和便捷化&#xff0c;以满足全时段安全管理和…