探索GaussDB(DWS)湖倉融合:Hudi與元數據打通的深度解析

来源:https://www.cnblogs.com/huaweiyun/p/18108324
-Advertisement-
Play Games

華為雲數倉GaussDB(DWS)研發專家高若岳老師,深入解析GaussDB(DWS)數據倉庫如何與大數據生態快速對接。 隨著智能數據時代的到來,數據量爆髮式增長,數據形態呈海量化和多樣化發展,不再是單一的結構化數據。從海量和多樣化的數據做融合分析,創造更多業務價值的訴求日益強烈。在本期《Gauss ...


華為雲數倉GaussDB(DWS)研發專家高若岳老師,深入解析GaussDB(DWS)數據倉庫如何與大數據生態快速對接。

隨著智能數據時代的到來,數據量爆髮式增長,數據形態呈海量化和多樣化發展,不再是單一的結構化數據。從海量和多樣化的數據做融合分析,創造更多業務價值的訴求日益強烈。在本期《GaussDB(DWS)湖倉融合技術解析》的主題直播中,華為雲數倉GaussDB(DWS)研發專家高若岳老師,深入解析GaussDB(DWS)數據倉庫如何與大數據生態快速對接?如何高效訪問開源數據?GaussDB(DWS)湖倉融合技術為企業帶來哪些助力?

什麼是數據湖?

不同的用戶對數據湖的概念有不同的理解,例如:

  • 雲廠商:基於對象存儲,以 S3、OSS、OBS 等構建數據底座,進行統⼀存儲即為湖;
  • 大數據互聯網:以數據湖三劍客為主,Iceberg、Hudi、Delta lake。它們可以支持比 Hive更高層的 Upsert、Delete、事務操作等高級特性,能基於 Hive 進行升級,解決準實時性的問題即為湖;
  • 傳統用戶:以Hadoop集群為主,滿足支持所有結構化、半結構、無結構化的數據存儲即為湖。

數據湖的優勢

  • 更低的存儲成本,更高的可靠性:使用對象存儲,相比於本地磁碟存儲、SSD 存儲或者雲盤存儲等,可以大幅降低存儲成本,並且通過編碼的方式能夠在降低副本數據量的同時又能保證高可靠性,可以使用戶不用擔心底層數據的丟失,從而獲得低成本的存儲;
  • 更好的 Table format:通過支持 ACID 事務、支持 Schema evolution,能夠為用戶提供更好的表格式;
  • 更好的 File format:數據湖在文件格式上支持越來越多的半結構化 Map、Struct、Json 等,並且支持越來越多的索引,進而使文件的查詢和存儲效率更高,並且在基於列式存儲的基礎上支持更多的複雜嵌套結構;
  • 統⼀的 Catalog:通過統一的 Catalog 實現統⼀的元數據管理、許可權管理、統計信息管理、入湖管理等。

為什麼要做湖倉融合?

  1. 數倉加速:基於數據湖的遠程IO成本很高,且缺少一系列數倉加速的手段。早期的數據湖格式多樣且不成熟,索引的支持不完善,查詢性能有待提升。並且數據湖主要針對吞吐量的優化,關註低成本和高可靠,不適用於高性能的需求;
  2. 實時分析:傳統的數據湖實時性不夠,在Iceberg或者Hudi的支持下可能能解決分鐘級別的時效性,但是無法解決秒級時效性的問題;
  3. 高併發查詢:對於高併發查詢,不管是點查還是聚合類的查詢,數倉是更擅長的。比如做分桶的處理,更精細的裁剪,降低掃描的數據量,提升點查的效率。另一方面通過物化視圖或者CUBE等相關的預聚合手段,可以提升聚合查詢的性能。
  4. 降本增效:簡化技術架構,增強整體架構可靠性,降低運維成本;
  5. 更完善的數據治理:湖倉融合的數據底座統一了主數據和元數據,基於此才有可能做上層統⼀的數據治理。

GaussDB(DWS)湖倉融合優勢介紹

無縫訪問數據湖

  • 對接LakeFormation元數據管理,直接訪問數據湖的數據表定義;
  • 支持主要開源數據格式:Hudi,ORC, Parquet, Carbon,Iceberg等;
  • 可支持實時鏈路的增量分析,也可以支持離線鏈路的批量分析;
  • 數據湖加速。

融合查詢

  • GaussDB(DWS)混合查詢數據湖和倉內的任意數據;
  • 查詢一步到位輸出到倉內/數據湖,無需額外數據中轉拷貝。

極致查詢性能

  • 使用GaussDB(DWS)數倉高質量的查詢計劃和高效的執行引擎;
  • 使用數倉的負載管理手段,精準控制。
湖倉融合架構圖

湖倉融合支持哪些數據格式?

當前GaussDB(DWS)湖倉融合技術,支持以下三種數據格式:

  • 文本類型:支持TEXT、CSV,高性能導入導出,支持指定分隔符(delimiter)、換行符(eol)、編碼(encoding),以及多種容錯方式處理,錯誤表等;
  • 列存存儲格式:高性能列式存儲格式,用於大數據環境中高效的存儲和查詢數據,支持多種壓縮演算法、編碼方式,並且相容多種引擎;

Parquet/ORC:融合查詢,複雜類型查詢,支持多種壓縮演算法,支持多種方式寫出。

  • 湖格式:Hudi 是一個功能豐富的存儲管理平臺,支持構建具有增量數據管道的流式數據湖,針對處理引擎和常規批處理進行了優化;針對數據探索、BI場景的互動式分析能力進行了優化;

支持COW、MOR的導入查詢,以及增聯同步導入。

湖倉融合主要面臨3個難點:

  • 如何統一湖倉的元數據和建表語句,讓用戶獲得一個統一數據目錄和表結構; 如何完善湖倉的實時能力,來解決不同場景的實時性需求; 如何讓湖倉架構能夠有超過數倉的性能。

湖倉融合功能介紹

本次分享,我們重點詳細講解Hudi和元數據打通兩大功能。

Hudi是什麼?

Hudi 是一個功能豐富的存儲管理平臺,支持構建具有增量數據管道的流式數據湖,針對處理引擎和常規批處理進行了優化;針對數據探索、BI場景的互動式分析能力進行了優化。

Hudi具備哪些能力?

  • 變更數據:支持高效的數據更新,刪除能力,基於可插拔的索引保證數據唯一,支持Upsert、Merge語法;
  • 實時性:支持CDC數據實時入湖;支持增量數據處理,可基於Flink、Spark進行流式數據處理;支持基於增量通道實現快速增量批量處理;
  • 數據事務:支持事務ACID,異常回滾,Snapshot數據隔離;
  • 併發性:支持MVCC併發控制,支持讀寫併發操作;
  • 多版本能力:支持基於Time Travel多版本,SavePoint能力;
  • 存儲優化:支持order/z-order clustering 優化,提高查詢能力;
  • 表結構變更:支持豐富的表變更操作,向後相容;
  • 數據管理:支持豐富的clustering、compactions、clean、小文件自動合併操作;
  • 生態相容:豐富的生態集成,支持flink/spark 寫入,HetuEngine/hive/spark/flink 做實時/增量查詢。

Hudi具備自動同步能力,可以將單表同步任務實現外表到內表的數據合併,記錄增量同步進度。智能調度框架,實現定時調用存儲過程任務,併進行資源管控調度,提供任務啟停,告警等運維能力。

當前DWS支持自動增量同步

自動同步

(1)單表同步任務實現外表到內表的數據合併,記錄增量同步進度。(列映射, Hudi增量commit time同步點)

(2)智能調度框架,實現定時調用存儲過程任務,併進行資源管控調度,提供任務啟停,告警等運維能力 。

Hudi同步任務使用:

Hudi查詢方式介紹

  • Hudi外表查詢

(1)支持Hudi兩種表類型,COW、MOR;

(2)支持Hudi兩種查詢視圖,snapshot、incremental。

  • 增量查詢

針對Hudi增量查詢功能,可以通過設置增量查詢參數實現增量查詢。

  • 增量設置的增量參數

可以通過查詢以下視圖查看已經設置了哪些參數,檢查是否設置正確。

  • 查詢Hudi外表屬性

讀取OBS上Hudi數據的hoodie.properties。

  • 查詢Hudi外表最大時間線

讀取OBS上Hudi數據最大時間線,也就是最新的提交記錄。

元數據打通

圖一屬於存算分離架構,存算分離,底層數據文件可對上層服務共用。湖和倉的元數據隔離,共用數據仍需ETL。湖和倉許可權隔離,不支持統一許可權管理。

圖二湖倉一體架構,在存算分離的基礎上,構建統一元數據層,上層服務通過統一元數據層,便捷高效地共用數據,對上層服務實現統一的高效的許可權管理。

元數據打通——Lakeformation使用指導

創建Lakeformation數據源

前提條件:

  1. 有可用的LakeFormation實例且已對接MRS服務;
  2. 創建包含LakeFormation許可權的委托(需包含最小許可權)。

步驟一:在GaussDB(DWS)管理控制台,單擊“集群管理”

步驟二:在集群列表,單機指定集群的名稱,然後選擇“數據源->Lakeformation數據源”。

步驟三:在LakeFormation數據源頁面,單擊“創建LakeFormation數據源連接”,填寫配置參數。

創建external schema

通過創建external schema來訪問存儲在Lakeformation服務中MRS服務表的元數據,進而訪問存儲在OBS上的表數據。

查詢:其中ex_lf為前面創建的external schema的名稱,test為想要訪問的Lakeformation服務的表。且該表已經在角色授權中對當前用戶授予此表對應的select許可權。

本期分享到此結束,更多關於GaussDB(DWS)產品技術解析、數倉產品新特性的介紹,請關註GaussDB(DWS)開發者平臺,GaussDB(DWS)開發者平臺為開發者們提供最新、最全的信息咨詢,包括精品技術文章、最佳實踐、直播集錦、熱門活動、海量案例、智能機器人。讓您學+練+玩一站式體驗GaussDB(DWS)。

GaussDB(DWS)開發者平臺鏈接:https://bbs.huaweicloud.com/contents/dws/learning.html

 

點擊關註,第一時間瞭解華為雲新鮮技術~

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Windows Server 2022 Standard / Datacenter 版本說明:該版本包含了 server 2022的標準版、數據中心版,在安裝過程中可以選擇安裝哪個版本,該版本只有64位系統。 下載地址1:https://msproduct.download.prss.microso ...
  • windows 11 家庭版/家庭單語言版/教育版/專業版/專業教育版/專業工作站版 簡體中文 ed2k://|file|zh-cn_windows_11_consumer_editions_version_23h2_updated_march_2024_x64_dvd_bcbf6ac6.iso|6 ...
  • 本系列為《Learning eBPF》一書的翻譯系列。 (內容並非機翻,部分夾帶私貨)筆者學習自用,歡迎大家討論學習。 ...
  • 實驗介紹: 活動目錄簡稱AD,在裡面創建對象包括組織單位對象,用戶對象,電腦對象 實驗環境: 兩台虛擬機包括一臺dns1域控制器,一臺虛擬機 一:在AD管理中心建“組織單位”對象財務部 1.在dns1打開AD管理中心,右鍵本地,新建組織單位 2.輸入財務部,這裡用財務部做例子也可輸入其他內容 二: ...
  • 緩存穿透、擊穿和雪崩是緩存使用中的常見問題,對它們的理解和相應的解決方法對於維護系統性能和穩定性至關重要。 1.緩存穿透 定義:當客戶端請求的數據在緩存中和資料庫中都不存在時,該請求會直接打到資料庫上,這種情況稱為緩存穿透。如果持續請求這樣的數據,會給資料庫帶來不必要的壓力。 解決方法: 緩存空對象 ...
  • 1.安裝Docker - 2024.03.28 官方手冊 清華大學開源軟體鏡像站 | 可從主頁找到Docker資源 # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates cu ...
  • 熟悉鍵盤操作可以極大地提高操作效率,熟練的 Linux 用戶幾乎不需要使用滑鼠,僅用鍵盤就可以更快且更方便地完成所有操作。 Linux 命令解釋器(也可以叫 Shell,終端,命令行等)也有很多快捷鍵,熟練掌握可以極大的提高操作效率。在本文整理一些最常用的快捷鍵。 常用命令行操作快捷鍵 : Ctrl ...
  • 對於生活中最常見的小游戲——走迷宮,相信大家都不陌生,人為走相信大家都會走,但能不能用代碼實現,我們認為是可以的,以下是我們對如何走迷宮的一些看法和代碼實現(cz負責隊列解決,mml負責用棧解決): 1.關於用隊列解決: 先簡單介紹一下隊列:隊列是一種操作受限的線性表,只允許在表的一端進行插入,在表 ...
一周排行
    -Advertisement-
    Play Games
  • 隨著Aspire發佈preview5的發佈,Microsoft.Extensions.ServiceDiscovery隨之更新, 服務註冊發現這個屬於老掉牙的話題解決什麼問題就不贅述了,這裡主要講講Microsoft.Extensions.ServiceDiscovery(preview5)以及如何 ...
  • 概述:通過使用`SemaphoreSlim`,可以簡單而有效地限制非同步HTTP請求的併發量,確保在任何給定時間內不超過20個網頁同時下載。`ParallelOptions`不適用於非同步操作,但可考慮使用`Parallel.ForEach`,儘管在非同步場景中謹慎使用。 對於併發非同步 I/O 操作的數量 ...
  • 1.Linux上安裝Docken 伺服器系統版本以及內核版本:cat /etc/redhat-release 查看伺服器內核版本:uname -r 安裝依賴包:yum install -y yum-utils device-mapper-persistent-data lvm2 設置阿裡雲鏡像源:y ...
  • 概述:WPF界面綁定和渲染大量數據可能導致性能問題。通過啟用UI虛擬化、非同步載入和數據分頁,可以有效提高界面響應性能。以下是簡單示例演示這些優化方法。 在WPF中,當你嘗試綁定和渲染大量的數據項時,性能問題可能出現。以下是一些可能導致性能慢的原因以及優化方法: UI 虛擬化: WPF提供了虛擬化技術 ...
  • 引言 上一章節介紹了 TDD 的三大法則,今天我們講一下在單元測試中模擬對象的使用。 Fake Fake - Fake 是一個通用術語,可用於描述 stub或 mock 對象。 它是 stub 還是 mock 取決於使用它的上下文。 也就是說,Fake 可以是 stub 或 mock Mock - ...
  • 為.net6在CentOS7上面做準備,先在vmware虛擬機安裝CentOS 7.9 新建CentOS764位的系統 因為CentOS8不更新了,所以安裝7;簡單就一筆帶過了 選擇下載好的操作系統的iso文件,下載地址https://mirrors.aliyun.com/centos/7.9.20 ...
  • 經過前面幾篇的學習,我們瞭解到指令的大概分類,如:參數載入指令,該載入指令以 Ld 開頭,將參數載入到棧中,以便於後續執行操作命令。參數存儲指令,其指令以 St 開頭,將棧中的數據,存儲到指定的變數中,以方便後續使用。創建實例指令,其指令以 New 開頭,用於在運行時動態生成並初始化對象。方法調用指... ...
  • LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
  • 1 開源解析和拆分文檔 第三方的工具去對文件解析拆分,去將我們的文件內容給提取出來,並將我們的文檔內容去拆分成一個小的chunk。常見的PDF word mark down, JSON、HTML。都可以有很好的一些模塊去把這些文件去進行一個東西去提取。 優勢 支持豐富的文檔類型 每種文檔多樣化選擇 ...
  • OOM是什麼?英文全稱為 OutOfMemoryError(記憶體溢出錯誤)。當程式發生OOM時,如何去定位導致異常的代碼還是挺麻煩的。 要檢查OOM發生的原因,首先需要瞭解各種OOM情況下會報的異常信息。這樣能縮小排查範圍,再結合異常堆棧、heapDump文件、JVM分析工具和業務代碼來判斷具體是哪 ...