Apache PAIMON 學習

參考:Apache PAIMON:實時數據湖技術框架及其實踐

數據湖不僅僅是一個存儲不同類數據的技術手段,更是提高數據分析效率、支持數據驅動決策、加速AI發展的基礎設施。

新一代實時數據湖技術,Apache PAIMON兼容Apache Flink、Spark等主流計算引擎,并支持流批一體化處理、快速查詢和性能優化,成為加速AI轉型的重要工具。

Apache PAIMON是一個支持大規模實時數據更新的存儲和分析系統,通過 LSM 樹(日志結構合并樹)和列式存儲格式(如 ORC/Parquet)實現高效查詢。它與 Flink 深度集成,可整合 Kafka、日志、業務數據庫的變更數據,支持批流一體處理,實現低延遲、實時更新和快速查詢。

相比其他數據湖框架(如 Apache Iceberg 和 Delta Lake),PAIMON獨特地提供了對批流一體化的原生支持,不僅能高效處理批量數據,還能對變更數據(如 CDC)實時響應。它也兼容多種分布式存儲系統(如 OSS、S3、HDFS),并集成了 OLAP 工具(如 Spark、StarRocks、Doris),確保安全存儲與高效讀取,為企業的快速決策和數據分析提供靈活支持。

PAIMON主要技術場景

1. Flink CDC 將數據引入數據湖

PAIMON經過優化,使這個過程更簡單、更高效。通過一鍵攝取,便可將整個數據庫引入數據湖,從而大大降低架構的復雜性。它支持實時更新和低成本快速查詢。此外,它還提供靈活的更新選項,允許應用特定列或不同類型的聚合更新。

2. 構建流式數據管道

PAIMON可用于構建完整的流式數據管道,其主要功能包括:

生成ChangeLog,允許流式讀取訪問完全更新的記錄,從而更輕松地構建強大的流式數據管道。

PAIMON也正在發展為具有消費者機制的消息隊列。最新版本引入了變更日志的生命周期管理,可讓用戶定義它們的保留時間,類似于 Kafka(例如,日志可以存儲七天或更長時間)。這創建了一個輕量級、低成本的流媒體管道解決方案。

3. 超快速 OLAP 查詢

雖然前兩個用例可確保實時數據流,但 PAIMON還支持高速 OLAP 查詢來分析存儲的數據。通過結合LSM和Index,PAIMON 可以實現快速數據分析。其生態系統支持Flink、Spark、StarRocks、Trino等多種查詢引擎,都可以高效查詢PAIMON中存儲的數據。

參考:Paimon助力數據湖倉架構實時化升級-阿里云開發者社區
數據架構的存儲演進

Data LakeHouse是Lake到Warehouse的完美結合。它的基本含義是一個文件或者對象存儲,可以存儲任何你想要的任何東西。包括結構化數據、非結構化數據,json,其中非結構化數據包括圖片、視頻、音頻之類的數據,Data Lake是一個非常通用的、非常粗糙的、非常底層的底層存儲。


近幾年誕生湖格式的東西,包括Iceberg、Hudi、Delta湖格式的東西,它通過文件的重新定義,把文件管理起來,管理的就不僅是一個目錄,它管目錄下每一個文件,它通過slap sort、manifest?file的機制把每個文件的引用管理起來,這張表就具有版本的效果,也具有更細粒度控制的效果。

舉例說明,把文件管起來之后ACID的能力,可以避免類似的目錄,也可以有一些基于文件的data skipping的,也可以支撐delete update?merge into細粒度的操作。最后也可以支持時間旅行包括回滾、Branch,?Tag的能力。

Paimon實時數據湖

Paimon實時數據湖的出發點是Streaming加實時。數據湖格式上做Streaming的處理,Hive公開的每個引擎都能進行讀寫格式,它是一個非常open的格式,這里把它叫做shared?database storage for batch processing。在批處理上一個被所有計算引擎share的格式,Iceberg?包括Hudi?,Delta在Hive的基礎上演化出來的更進一步的ACID的處理,這里把Iceberg叫做shared?databasestorage for batch processing,像數據倉庫更像數據庫的存儲,有更進一步的能力。

Paimon出發點是在Iceberg基礎上這些東西還不夠,最大能給業務帶來效果的是streaming,是實時化,是時效性。所以Paimon不僅是batch processing包括batch processing, streaming procession,olap processing,所以它是結合湖格式加LSM技術,把時效性帶到數據湖。

Paimon的生態體系結構已經非常的廣,底下基于HDVS,OSS或者stream的存儲介質。在上面基于文件的格式ORC,包括阿里的ORC,parquet。左邊是CDCingest各種數據源入湖到Paimon中。右邊是它支持各種各樣的sacred query的computer engine,包括Flink流的,Flink包括批的Spark StarRocks,包括一系列的社區的計算引擎,最新的版本也提出Paimon?Python API,通過Paimon Python API解鎖機器學習,來自包括rag,Python一系列的生態,包括通過error格式的轉換。支撐包括pandas之類的計算框架。

Paimon最開始的名字叫Flink Table store。Paimon不僅是一個Flink存儲,它是一個通用,公開,被共享的湖格式。對接的包括Flink流計算Spark StarRocks等一系列的引擎,預計在11月份發布1.0版本,預計Paimon在批,在流,在Olap已經達到非常完善的程度,在1.0當中會引入來自AI相關的集成,讓Paimon成為真正能處理非結構化數據的數據湖格式。
最新Paimon發布0.9版本是一個功能非常完善的一個版本,補充完善有缺陷的futures,并且核心增強了包括victor ,組件化letive的查詢對接來自StarRocks的C++的查詢,也兼容Spark生態,可以通過Spark生態查詢Paimon的數據,最后優化對象存儲的文件,包括文件緩存 文件格式

數據湖實時流式處理

實時流式處理讓業務的時效性加強,從天級的時效性降低到分鐘級。基于Paimon數據湖的VP的處理,成本不會增加特別多。成本可控的情況下,時效性增加,時延降低,整體呈現出一套批流完全一體的存儲計算架構。以前用Kafka中間來做流處理,因為Kafka不可查,所以anyway最后需要可以查詢的引擎,比如需要把數據寫到StarRocks上,StarRocks才可查。Paimon作為一個湖格式,它是可以批寫批讀,也可以流寫流讀,它把整條streaming鏈路建立起來,每一層都實時可查。架構能做到完全的流批一體,不是流批割裂的兩套架構。

Paimon的能力有三個,第一個是它可以支持更新的數據入湖。第二個特性是能流讀流寫。流讀流寫不是簡單的把數據流讀流寫,可以給Paimon聲明一張圖組件表,組件表就可以表現的像MYSQL,也可以實時的流式的更新數據,組件表也能實時的產生Change log給下游的消費,能做到非常準確的類似number架構,CPA架構。因為它是基于存儲來產生Change log,它能做到最正確的計算,所以在很多場景當中,它能做到流一份數據沉淀下來,不用批寫批讀,做批的刷新。最后一個場景是每一層都是可以被包括StarRocks包括Spark引擎實時查詢。Paimon針對這些引擎做非常多的優化,能保證查詢性能不弱于正常的批查詢。

第一個場景就數據庫CDC入湖,可以通過Flink CDC,各種connector包括mysql CDC包括mongo?DB的CDC包括OCEANBASE一系列的CDC的能力。用Paimon包括社區Paimon提供的Paimon?CDC的入湖方式,可以用最新的一個Flink CDC?3.1基于young的入湖方式定義數據集成的數據傳輸的腳本鏈路。schema evolution ,schema跟著變來自源頭的數據schema變,下面的Paimon表的schema也跟著變,也可以用類似整庫同步的能力進一步節省資源,降低運維難度。
第二個是湖上的全鏈路流式ETL,定義Paimon的merge engine,可以定義partial-update,也可以定義Aggregation的merge engine。基于把計算存入到存儲的技術,也可以通過Paimon取代類似join的部分列更新,也可以基于Paimon定義聚合表,整體寫入Paimon后定義Paimon?merge engine,之后也可以定義Change log?producer讓Paimon表實時的產生Change log,但是產生的Change log是需要不小的代價。
最后是湖上的Olap的加速,分為兩個部分,第一個部分是實時數據的Olap。可以定義一個組件表,它接受上游數據的實時更新。實時更新的過程當中,可以通過StarRocks類似的引擎實時的查詢,所以在社區推出一個組件表的deletion victor模式,基于deletion victor模式,它可以讓存儲本身和c++向量化更好的集成,可以讓查詢性能得到數倍的提升。離線數據直接Olap,可能會掃描全表的數據,Paimon也支持對離線數據做z-order排序。做z-order排序之后,在查詢的時候就可以基于排序的range過濾大量的文件,Paimon在社區有文件索引。通用文件索引支持Bloom Filter,也支持最新的Bitmap進一步過濾不需要的文件。加強Olap的性能。

數據湖非結構化處理
接觸到數據湖格式之后,會發現數據湖是一個結構化的處理,它是一個表,需要定義字段。Paimon在最新的版本當中也會推出Paimon?object Table,希望通過Object Table管理非簡化的數據,包括在OOS或者HDFS上的圖片,視頻,文件,音頻之類的文件。Object Table方式通過一個視圖,不操作這些文件,相當于是在后臺建立文件的索引。把這些文件的原數據寫到數據湖當中,通過這樣的結構化視圖就可以查詢到Object Table,對一個目錄或者多個目錄的原數據的映射。拿到這些原數據之后就可以通過包括pySpark ,Flink SQL ,Spark SQL 等,通過這種結構化的處理,讀表知道有哪些文件,這些文件的文件大小可以做一些過濾,也可以把這些文件讀出來做一些處理,所以通過這樣的方式把非結構化和結構化的SQL的處理,或者結構化的計算引擎的處理結合到一起,讓整個結構化的處理更簡單。可以把這些非結構化的數據通過結構化的方式管理起來,包括權限管理對接到正常的數倉的權限管理當中。
在Flink當中,在SQL當中也支持Model的一些處理,包括Model的預測,案例是假如根據training數據訓練出Model,可以在Flink SQL中定義Model,然后也可以在SQL中定義Object Table映射到目錄中的文件,通過純SQL的調用,通過Model預測針對object數據做預測,通過純SQL的方式產出一個模型預測數據處理的效果。通過Paimon的object table的方式可以把這套體系融入到SQL的處理當中,融入到傳統的大數據計算的分布式處理當中,是案例的簡單的SQL處理,可以create Model,create?object table,通過predict模型預測的函數,做模型的預測處理。
Paimon可以管Model,包括非結構化數據。SQL的結構化處理模型預測也可以得到結果,整個非結構化數據得到數據版本和管理,從而可以得到學員的依賴管理。也可以把結果數據和其他結構化數據進行join,以及進行聯合的計算。

參考:Flink+Paimon實時數據湖倉實踐分享-CSDN博客

在 Flink 實時數據開發中,對于依賴大量狀態 state?的場景,如長周期的累加指標計算、回撤長歷史數據并更新等,使用實時數倉作為中間存儲來代替 Flink 的內部狀態 state 是非常有必要的。
?

Apache Paimon是一種流批統一的數據湖存儲格式,結合 Flink 可以構建流批處理的實時湖倉一體架構。Paimon 具有實時更新的能力(可應用于對時效性要求不太高的場景,如 1-5 分鐘),其主鍵表支持大規模更新寫入,具有非常高的更新性能,同時也支持定義合并引擎,按照自定義的方式更新記錄。

Paimon 底層使用 OSS/HDFS 等作為存儲,同時數據文件以 LSMtree 的格式進行組織,具有更優的實時數據更新能力和完整的流處理能力。


對象存儲服務(Object Storage Service)它是一種海量、安全、低成本、高可靠的云存儲服務。適用于存儲各種類型的非結構化數據,比如圖片、視頻、文檔等。

?

1. 低成本、可擴展性:實時數倉產品也可以作為 flink 的中間存儲,比如 hologres,但是 Paimon 的存儲成本約為其的 1/9(通過查詢官網,OSS 的存儲為 0.12 元/GB/月,Hologres 為 1 元/GB/月)。同時數據湖相比于數據倉庫可以與更多的大數據引擎(Hive/Spark/Trino 等等)兼容,解決數據孤島和數據冗余存儲的問題。

2. 實時性能:相比于其他的數據湖產品,Paimon 是天然面向 Flink 設計而誕生的,相比于 hudi(面向 Spark 批處理設計)、Iceberg 等,Paimon在與 Flink 結合具有更優的處理大批量數據的 upsert 能力,同時數據更新時效性最短可支持到 1 分鐘,且性能穩定。

使用 Paimon 作為中間存儲進行維表 JOIN,可以解決 Flink 內部狀態 state 成本高、不可重啟、存儲周期短等限制,從而滿足復雜實時場景的數據開發需求,同時這些中間存儲結果也可以通過流/批的形式被 ODPS/Hologres 等大數據引擎消費,實現數據統一

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66142.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66142.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66142.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《計算機網絡》課后探研題書面報告_了解PPPoE協議

PPPoE協議的工作原理與應用分析 摘 要 PPPoE(Point-to-Point Protocol over Ethernet)是一種廣泛應用于寬帶接入的網絡協議,特別是在DSL(數字用戶線路)和光纖網絡中具有重要的應用價值。PPPoE結合了PPP協議的認證、加…

【MySQL學習筆記】MySQL存儲過程

存儲過程 1、基礎語法2、變量2.1 系統變量2.2 用戶自定義變量2.3 局部變量 3、if 流程控制4、參數5、case 流程控制6、循環結構6.1 while 循環6.2 repeat 循環6.3 loop 循環 7、游標8、存儲函數 存儲過程是事先經過編譯并存儲在數據庫中的一段 SQL 語句的集合,調用存…

MAC上安裝Octave

1. 當前最新版Octave是9.3版本,需要把mac os系統升級到14版本(本人之前的版本是10版本) https://wiki.octave.org/Octave_for_macOS octave的歷史版本參考此文檔:Octave for macOS (outdated) - Octavehttps://wiki.octave.org/Oc…

mysql-5.7.18保姆級詳細安裝教程

本文主要講解如何安裝mysql-5.7.18數據庫: 將綠色版安裝包mysql-5.7.18-winx64解壓后目錄中內容如下圖,該例是安裝在D盤根目錄。 在mysql安裝目錄中新建my.ini文件,文件內容及各配置項內容如下圖,需要先將配置項【skip-grant-tab…

VSCode連接Github的重重困難及解決方案!

一、背景: 我首先在github創建了一個新的項目,并自動創建了readme文件其次在vscode創建項目并寫了兩個文件在我想將vscode的項目上傳到對應的github上時,錯誤出現了 二、報錯及解決方案: 1.解決方案: 需要在git上配置用…

YOLOV8漲點技巧之混合注意力與特征金字塔網絡融合

YOLO發展歷程 自2015年YOLOv1問世以來,這一革命性的目標檢測算法經歷了一系列重大升級。以下是YOLO各版本的主要發展里程碑: 版本 發布時間 主要開發者 YOLOv1 2015年6月 Joseph Redmon YOLOv2(YOLO9000) 2016年12月 Joseph Redmon YOLOv3 2018年4月 Joseph Redmon

數據分析:非度量多維排列 NMDS (Non-metric multidimensional scaling)ANOSIM檢驗分析

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹原理步驟加載R包數據下載導入數據數據預處理計算距離矩陣ANOSIM檢驗非度量多維排列NMDS應力值(stress value)畫圖輸出系統信息介紹 非度量多維排列(Non-metric Multidimensiona…

Open FPV VTX開源之ardupilot配置

Open FPV VTX開源之ardupilot配置 1. 源由2. 配置3. 總結4. 參考資料5. 補充5.1 飛控固件版本5.2 配置Ardupilot的BF OSD5.3 OSD偏左問題 1. 源由 飛控嵌入式OSD - ardupilot配置使用ardupliot配套OSD圖片。 Choose correct font depending on Flight Controller SW. ──>…

硬件實用技巧:TPS54331DR橫杠標識識別1引腳

若該文為原創文章,轉載請注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/145116969 長沙紅胖子Qt(長沙創微智科)博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV…

Python庫之PyAutoGUI安裝以及使用方法

Date: 2025.01.15 20:54:01 author: lijianzhan PyAutoGUI是一個功能強大的Python庫,它允許我們用于通過編程控制鼠標和鍵盤,實現自動化任務。它可以模擬用戶的輸入操作,例如點擊、拖動、輸入文本等,適用于 GUI 自動化、測試腳本、…

Linux離線部署ELK

文章目錄 前期準備開始安裝安裝elastic search安裝logstash安裝kibana 配置ELK配置ElasticSearch配置logstash配置kibana 啟動ELK啟動命令啟動測試 設置ELK策略創建ILM策略將ILM策略與日志index關聯查看索引是否被ILM策略管理 前期準備 ELK包含三部分軟件 ElasticSearch用作搜…

Go語言的數據競爭 (Data Race) 和 競態條件 (Race Condition)

文章精選推薦 1 JetBrains Ai assistant 編程工具讓你的工作效率翻倍 2 Extra Icons:JetBrains IDE的圖標增強神器 3 IDEA插件推薦-SequenceDiagram,自動生成時序圖 4 BashSupport Pro 這個ides插件主要是用來干嘛的 ? 5 IDEA必裝的插件&…

Node.js - Express框架

1. 介紹 Express 是一個基于 Node.js 的 Web 應用程序框架,主要用于快速、簡便地構建 Web 應用程序 和 API。它是目前最流行的 Node.js Web 框架之一,具有輕量級、靈活和功能豐富的特點。 核心概念包括路由,中間件,請求與響應&a…

《光學遙感圖像中顯著目標檢測的多內容互補網絡》2021-9

一、簡介 在本文中,我們提出了一種新的多內容互補網絡 (MCCNet) 來探索 RSI-SOD 的多內容互補性。具體來說,MCCNet 基于通用的編碼器-解碼器架構,并包含一個名為 multi-content complementation module (MC…

【STM8S】STM8S之自定義短、長、連擊按鍵

本文最后修改時間:2018年10月22日 01:57 一、本節簡介 本文介紹STM8S系列如何實現按鍵的短按、長按、連擊。 二、實驗平臺 編譯軟件:IAR for STM8 1.42.2 硬件平臺:stm8s003f3p6開發板 仿真器:ST-LINK 庫函數版本&#xff1a…

數據庫(MySQL)練習

數據庫(MySQL)練習 一、練習1.15練習練習 二、注意事項2.1 第四天 一、練習 1.15練習 win11安裝配置MySQL超詳細教程: https://baijiahao.baidu.com/s?id1786910666566008458&wfrspider&forpc 準備工作: mysql -uroot -p #以管理…

【深度學習地學應用|滑坡制圖、變化檢測、多目標域適應、感知學習、深度學習】跨域大尺度遙感影像滑坡制圖方法:基于原型引導的領域感知漸進表示學習(一)

【深度學習地學應用|滑坡制圖、變化檢測、多目標域適應、感知學習、深度學習】跨域大尺度遙感影像滑坡制圖方法:基于原型引導的領域感知漸進表示學習(一) 【深度學習地學應用|滑坡制圖、變化檢測、多目標域適應、感知學習、深度學習】跨域大…

RPC實現原理,怎么跟調用本地一樣

回答1 要讓?絡通信細節對使?者透明,我們需要對通信細節進?封裝,我們先看下?個 RPC 調?的流程涉及到哪些通 信細節: 1. 服務消費?( client )調?以本地調??式調?服務; 2. client stub 接收到調…

《C++11》并發庫:簡介與應用

在C11之前,C并沒有提供原生的并發支持。開發者通常需要依賴于操作系統的API(如Windows的CreateThread或POSIX的pthread_create)或者第三方庫(如Boost.Thread)來創建和管理線程。這些方式存在以下幾個問題: …

【記錄52】el-table-column 添加fixed屬性 滾動條無法滑動

問題: el-table-column 添加fixed屬性 滾動條無法滑動 使用element UI組件,用到el-table的el-table-column的fixed屬性時,當滾動條長度小于固定列時,滾動條無法通過鼠標去點擊滑動操作 原因 fixed是用來固定列的屬性,其…