《Iceberg 在湖倉建設的若干實踐.pdf》由會員分享,可在線閱讀,更多相關《Iceberg 在湖倉建設的若干實踐.pdf(28頁珍藏版)》請在三個皮匠報告上搜索。
1、Iceberg在湖倉使用中的若干探索李立偉 華為 資深工程師2023 整體概述應用探索整體概述使用傳統的目錄方案進行數據管理在傳統方案,例如Hive中,表被定義為一個或多個目錄的全部數據。組成表的數以目錄級別進行跟蹤,這些數據被存儲在Hive元存儲中完成。分區值通過目錄路徑定義:適用于幾乎所有處理引擎,因為它是村里唯一的希望自從大數據被更廣泛采用以來,一直是事實上的標準。存儲格式無關分區級別原子性提供了整個生態系統中的“元數據描述”即使微小的變更依舊效率低下多分區修改無法保證安全性多個作業同時修改一份數據無法保證安全性列出大表的目錄列表需要非常長的時間用戶必須知道表格的物理布局Hive 表統計
2、信息通常是陳舊的在云對象存儲上的性能較差要達成的目標Old WayNew Way文件級別的數據表目錄級別的數據表目標:表的正確性與一致性 更快的planning and execution 用戶無需感知物理結構 表演進 在大規模數據上實現以上目標Iceberg是什么-一種Table Format 規范-一組API和庫,可用于引擎與遵循該規范的表進行交互-存儲引擎-計算引擎-服務數據流圖中間層中間層支持支持OLAPOLAP分析及實時化分析及實時化將DWD數據明細層與DWS數據服務層從批式T+1處理,演進為流式增量處理,數據時延大大降低支持支持ACIDACID語義語義完善的ACID語義支持,修改操
3、作不會影響讀取等支持高效回溯支持高效回溯Hive/Kafka等無法有效回溯歷史版本,無法查看歷史的表格式與數據存儲成本更低存儲成本更低一套存儲在OBS上完成業務數據落地數據數據延遲未達到實時延遲未達到實時業務系統改造業務系統改造對接對接針對針對IcebergIceberg表的定制表的定制優化優化Pulsar/DMQHDFS/OBS數據入湖貼源數據明細數據模型數據clickhouseesAPP增量處理增量處理批流一體存儲邏輯架構數據入湖HDFSOBSStorage Cache(數據加速層)數據源業務庫文件消息按需加載實時加載實時檢索HBaseELasticSearchClickhouse圖數據庫
4、RedisIOT DB數據清洗大屏展示清單/詳單查詢挖掘建模數據管理固定報表BIAI分析專題分析實時應用自助分析貼源數據明細數據模型數據File StoreLog StoreService生命周期管理數據重分布數據壓實告警監控應用探索流數據接入通知式告知完成狀態分區數據未寫入完成,不希望下游可查詢等場景隨時感知數據的寫入位基于水位線的自定義提交sink.partition-commit.delay=1 h,sink.partition-commit.trigger=partition-time,sink.partition-commit.policy.kind=success-file基于水位
5、線的延遲數據處理在流式處理過程中,時效不同的數據價值也是不同的。時效越高的數據,價值越高?;诖?,當時效較低的數據到達時,將數據進行累積,直到數據量達到一定級別,再行提交。類Git式的數據管理周期穩定快照重要歷史快照實驗分支類GIT式數據管理-進行全量表改造痛點:數據冗余存儲,每天都存儲了一份全量的歷史數據,表數據保存的周期越長,冗余數據越多1lisi2Zhangsan(1,lisi2),(3,wangwu)1lisi22Zhangsan3wangwu1lisi22Zhangsan3wangwu4xiaohong(4,xiaohong)優勢:每天只存儲增量數據,無需全量存儲存儲占用降低為原本的
6、25%以下升級列更新IDCol21b13b34b4c.file Partial FileSEQ 1IDCol11a12a23a34a4IDCol1Col21a1b12a23a3b34a4b4IDCol11a12a23a3IDCol14a4a.file Data FileSEQ 0b.file Data FileSEQ 0IDCol11a12a23a3IDCol14a4a.file Data FileSEQ 0b.file Data FileSEQ 0Add Col2 column關鍵技術:關鍵技術:元數據關聯部分列信息根據新列生成部分列數據讀取時或后臺異步任務合并部分列數據使用Puffin完成
7、初步的索引應用根據規范,Puffin 是一種文件格式,旨在保存有關由 Apache Iceberg 表管理的底層數據文件(例如 Parquet 文件)的統計信息和索引等信息,以進一步提高性能。該文件包含稱為“blob”的任意信息片段,以及分析它們所需的元數據。到目前為止,blob 可以是以下類型:apache-datasketches-theta-v1。利用Puffin文件,將此文件寫入到表中,并且在開啟外部索引的情況下,將此文件的內容加載到外部索引組件中,加速關聯、點查等場景。不止于 Table Format良好的業務使用體驗極低的維護成本支持多種存儲、計算引擎自動優化數據湖服務配套實時數據
8、湖倉,全面提升相關性能、可視化、運維監控能力:1.服務規則引擎:使用數據重分布等提升查詢性能、進行數據生命周期管理等2.告警規則引擎:基于配置的告警進行相應監控實時顯示湖內數據概況數據分布、告警等信息基于File IO的對象存儲優勢基于File IO的對象存儲優勢基于File IO的對象存儲優勢基于File IO的對象存儲優勢隱藏分區隱藏分區隱藏分區更新分區規范純粹是一種元數據操作,因為不會重寫先前的數據,因此非??焖?、簡單且成本低廉。計劃查詢時,引擎將拆分工作并為適用于每個分區規范的數據創建不同的計劃。由于您可以打破查詢計劃,因此無需重寫所有舊數據,從而使對表架構的增量更改變得簡單且成本低廉。同時也可以隨時使用 rewriteDataFiles 過程重寫舊數據以進行壓縮和排序。如何無縫遷移到iceberg僅需三步:1.任務添加Iceberg Runtime包2.自動生成快照表用于驗證3.驗證后升級原表到Iceberg(原表將被加上Backup后綴)歡迎加入我們的團隊歡迎關注Iceberg社區公眾號歡迎加入Iceberg交流群感謝您的觀看