在上篇文章中,我們向大家解釋了為什麼實時湖倉是當前企業數字化轉型過程中的解決之道,介紹了實時計算和數據湖結合的應用場景。(“數據驅動”時代,企業為什麼需要實時湖倉?) 在這篇文章中,我們將詳細介紹在數棧實時開發平臺內,實時湖倉的功能架構設計和具體實操案例。 功能架構介紹 實時湖倉並不是一個獨立的產品 ...
在上篇文章中,我們向大家解釋了為什麼實時湖倉是當前企業數字化轉型過程中的解決之道,介紹了實時計算和數據湖結合的應用場景。(“數據驅動”時代,企業為什麼需要實時湖倉?)
在這篇文章中,我們將詳細介紹在數棧實時開發平臺內,實時湖倉的功能架構設計和具體實操案例。
功能架構介紹
實時湖倉並不是一個獨立的產品模塊,它的完整實踐是基於數棧實時開發平臺進行的。為了更直觀地介紹我們建設實時湖倉的完整思路,我們單獨拆出了架構圖供大家參考。
湖倉管理
湖倉管理是建設實時湖倉的基礎,通過這一層的建設,你可以:
· 藉助 Flink Catalog 管理,構建一套虛擬湖倉分層架構,類似傳統離線數倉中的主題域、DW 分層設計
· 可視化創建湖表,平臺支持 Paimon、Hudi、Iceberg 三種湖表創建,並分別提供對應的 DDL DEMO
· 通過 Flink 表管理,持久化存儲基於 RDB、Kafka 創建的 Flink 映射表,和湖表一起,為實時計算提供表管理能力
· 作為實時計算領域最常用的數據介質,平臺同時也支持對 Kafka Topic 進行基礎的增刪改查、數據統計分析等功能
湖倉開發
湖倉開發是建設實時湖倉的核心能力,按應用場景主要分為:
· 數據入湖:通過實時消費 Kafka,或者讀取 RDB 的 CDC 數據,將業務數據實時打入數據湖,構建實時湖倉的 ODS 層,為後續的流/批讀寫提供統一的數據基礎
· 湖倉加工:藉助湖表格式的事務特性、快照特性等能力,通過 FlinkSQL 任務讀寫湖表,構建湖倉中間層
· 流批一體:在湖倉加工過程中,根據不同的業務場景,可以選擇流讀或批讀。在流批一體的設計上,你可以選擇先批讀存量數據,無縫銜接流讀增量數據;也可以選擇流讀增量數據,批讀進行數據訂正
湖倉治理
在湖倉開發過程中,我們可以通過湖倉治理能力,不斷優化完善實時湖倉:
· 湖表文件治理:在湖倉開發過程中,會產生大量小文件、過期快照、孤兒文件等數據,嚴重影響湖表的讀寫性能。通過文件治理功能,可以定期合併小文件、清理過期快照/孤兒文件,提高開發效率
· 元數據查詢:在提供 Catalog/Database/Table 基礎信息查詢的同時,會對湖表的存儲、行數、任務依賴等信息進行統計,方便全局判斷湖表價值
· Hive 表轉換:對於歷史 Hive 表,平臺支持在不影響歷史數據的前提下,一鍵轉換表類型
實操案例分享
下麵通過一個數開案例,詳細介紹如何在平臺實現數據入湖、湖倉開發、湖倉治理。
數據入湖(實時採集 DB2 數據,寫入 PaimonA 湖表)
● 先創建 DB2-CDC 的 Flink 映射表和 Paimon 湖表
● 開發入湖任務
湖倉開發(流式讀取 PaimonA,流式寫入 PaimonB)
● 創建 PaimonB
方式同上,此處不再重覆演示。
● 開發讀寫湖表任務
平臺支持讀寫參數的配置化開發,無需在 SQL 代碼中定義,從而極大地提高了開發效率。例如,在湖表讀取時選擇時間戳,如果使用 SQL 開發,需要先在後臺查詢快照數據,併進行時間戳轉換才能理解。而通過配置化方式,可以直接選擇或輸入日期時間,在提交任務時自動進行時間戳轉換。
湖倉治理
● 元數據查詢
提供 Catalog、Database、湖表(Paimon/Hudi/Iceberg)、Flink 映射表的元數據查詢。
● 數據文件治理
湖表的讀寫,特別是實時場景下的讀寫,會產生大量的小文件,小文件過多又會影響讀取性能。因此對於湖表文件的治理功能,是建設實時湖倉必不可缺的一部分。
總結
實時湖倉是「實時計算」和「數據湖」的一種結合應用場景,並不是具體指一個產品模塊。平臺通過相關功能的設計,讓數據開發可以更簡單更直觀地瞭解 Flink Catalog、數據湖、流批一體等概念,併在實際業務場景中更方便地去落地實踐。
本文根據《實時湖倉實踐五講第二期》直播內容總結而來,感興趣的朋友們可點擊鏈接觀看直播回放視頻及免費獲取直播課件。
直播課件(點擊文末閱讀原文可直接跳轉):
https://www.dtstack.com/resources/1053?src=szgzh
直播回放視頻:
https://www.bilibili.com/video/BV1Uw411k7iS/?spm_id_from=333.999.0.0
《數棧產品白皮書》:https://www.dtstack.com/resources/1004?src=szsm
《數據治理行業實踐白皮書》下載地址:https://www.dtstack.com/resources/1001?src=szsm
想瞭解或咨詢更多有關袋鼠雲大數據產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szbky
同時,歡迎對大數據開源項目有興趣的同學加入「袋鼠雲開源框架釘釘技術qun」,交流最新開源技術信息,qun號碼:30537511,項目地址:https://github.com/DTStack