從理論到實踐,實時湖倉功能架構設計與落地實戰

来源:https://www.cnblogs.com/DTinsight/archive/2023/10/18/17771677.html
-Advertisement-
Play Games

在上篇文章中,我們向大家解釋了為什麼實時湖倉是當前企業數字化轉型過程中的解決之道,介紹了實時計算和數據湖結合的應用場景。(“數據驅動”時代,企業為什麼需要實時湖倉?) 在這篇文章中,我們將詳細介紹在數棧實時開發平臺內,實時湖倉的功能架構設計和具體實操案例。 功能架構介紹 實時湖倉並不是一個獨立的產品 ...


在上篇文章中,我們向大家解釋了為什麼實時湖倉是當前企業數字化轉型過程中的解決之道,介紹了實時計算和數據湖結合的應用場景。(“數據驅動”時代,企業為什麼需要實時湖倉?

在這篇文章中,我們將詳細介紹在數棧實時開發平臺內,實時湖倉的功能架構設計和具體實操案例。

功能架構介紹

實時湖倉並不是一個獨立的產品模塊,它的完整實踐是基於數棧實時開發平臺進行的。為了更直觀地介紹我們建設實時湖倉的完整思路,我們單獨拆出了架構圖供大家參考。

file

湖倉管理

湖倉管理是建設實時湖倉的基礎,通過這一層的建設,你可以:

· 藉助 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 湖表

file
file

● 開發入湖任務

file

湖倉開發(流式讀取 PaimonA,流式寫入 PaimonB)

● 創建 PaimonB

方式同上,此處不再重覆演示。

● 開發讀寫湖表任務

平臺支持讀寫參數的配置化開發,無需在 SQL 代碼中定義,從而極大地提高了開發效率。例如,在湖表讀取時選擇時間戳,如果使用 SQL 開發,需要先在後臺查詢快照數據,併進行時間戳轉換才能理解。而通過配置化方式,可以直接選擇或輸入日期時間,在提交任務時自動進行時間戳轉換

file

湖倉治理

● 元數據查詢

提供 Catalog、Database、湖表(Paimon/Hudi/Iceberg)、Flink 映射表的元數據查詢。

file

● 數據文件治理

湖表的讀寫,特別是實時場景下的讀寫,會產生大量的小文件,小文件過多又會影響讀取性能。因此對於湖表文件的治理功能,是建設實時湖倉必不可缺的一部分。

file

總結

實時湖倉是「實時計算」和「數據湖」的一種結合應用場景,並不是具體指一個產品模塊。平臺通過相關功能的設計,讓數據開發可以更簡單更直觀地瞭解 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


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

-Advertisement-
Play Games
更多相關文章
  • 有一個具體的例子 :https://github.com/OrchardCMS/OrchardCore.Samples 1、先使用教程,安裝cms -可以是完全 也可以是採用前後端分離管理。 修改對應的program.cs 的內容: `var builder = WebApplication.Cre ...
  • Visual Studio智能提示出現慢的問題解決辦法如下: 清理Visual Studio緩存。通過"文件"→"打開文件或項目"→"取消"→"是,清理所有項目"進行清理。 清理Visual Studio實例。通過"文件"→"關閉解決方案"進行清理。 重置用戶數據。打開Visual Studio的開 ...
  • 在WPF應用端開發,它的界面類似於Winform端,因此我們也需要對系統的菜單進行動態配置,這樣才能把系統的功能彈性發揮到極致,通過動態菜單的配置方式,我們可以很容易的為系統新增所需的功能,通過許可權分配的方式,可以更有效的管理系統的菜單分配到不同的角色用戶,本篇隨筆介紹在WPF應用端中實現系統動態菜... ...
  • 哈嘍大家好,我是鹹魚 不知道大家在日常學習或者工作當中用 dig 命令多不多 dig 是 Domain Information Groper 的縮寫,對於網路管理員和在功能變數名稱系統(DNS)領域工作的小伙伴來說,它是一個非常常見且有用的工具。 無論是簡單的 DNS 解析查找還是更高級的故障排除和分析,d ...
  • 背景及需求 之前提到我們模型驅動的實現選擇的是解釋型,需要模型的元數據信息,在接到請求後動態處理邏輯. 此外,應用的通用能力中還包括:頁面dsl查詢,菜單查詢等. 而且後期加入觸發器,用戶自定義api後,這些元數據也需要提供查詢服務. 所以我們需要一個元數據模塊,需要提供兩個基礎功能:載入元數據和提 ...
  • Linux系統中,DBA一般使用oracle用戶登陸/訪問Linux操作系統,然後使用sqlplus命令登陸資料庫進行一些維護操作,如果由於某些特殊原因,系統管理員創建了一個db_support用戶,如果使用dba_support這個普通賬號登陸了Linux操作系統,如何使用sqlplus訪問資料庫 ...
  • 下載jdk-8u361-linux-x64.tar.gz https://www.oracle.com/java/technologies/downloads 上傳jdk-8u361-linux-x64.tar.gz 到node1 以下命令都是在node1上執行 解壓 tar -zxvf jdk-8 ...
  • 2023金融業資料庫技術大會上,華為雲資料庫服務產品部總經理蘇光牛、華為雲資料庫服務產品部CTO莊乾鋒受邀出席,分享了關於華為雲GaussDB資料庫的設計思考和關鍵技術能力。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...