“數據驅動”時代,企業為什麼需要實時湖倉?

来源:https://www.cnblogs.com/DTinsight/archive/2023/09/06/17681694.html
-Advertisement-
Play Games

當談到[數據湖](https://www.dtstack.com/dtengine/easylake?src=szsm)的時候,大家都在說,可以把所有數據(結構化/半結構化/非結構化)一股腦都丟進去,進行統一的元數據管理。然後上層計算對接,進行[流批計算](https://www.dtstack.c ...


當談到數據湖的時候,大家都在說,可以把所有數據(結構化/半結構化/非結構化)一股腦都丟進去,進行統一的元數據管理。然後上層計算對接,進行流批計算/OLAP 分析/演算法分析。

這個沒問題,數據湖確實能承接底層的這部分能力,但是同時出現的問題也是不容忽視的。

本文將關註討論,利用湖倉架構,統一結構化/半結構化數據的流批計算,和大家聊聊為什麼企業需要實時湖倉。非結構化的視頻/圖片/文本等數據的存儲和計算不在本文的討論範圍內。

當前的企業困境

下圖是一個經典的 Lambda 架構,雖然這套架構的優點很明顯:技術方案成熟、應用實踐廣泛,適用於企業發展過程中各階段、各場景下的大數據開發需求。

file

但是,隨著業務對數據時效性要求的提高,許多企業的實時任務體量,正在逐步接近存量離線任務。在數據開發和運維資源有限的情況下,這套架構的問題正在逐漸暴露出來:

· 離線開發鏈路中的數據更新問題,在當前技術環境下顯得越來越難以容忍

· 實時開發鏈路中的數據不落地問題,無法支持歷史數據回溯、查詢分析等場景

· 多種計算引擎,造成數據開發學習成本和運維管理成本的居高不下

· 多種存儲介質,造成數據存儲冗餘、批/流數據不一致

· ……

解決之道:實時湖倉

下圖是一種實時湖倉解決方案,利用湖存儲的特性和 Flink 的流批計算能力,統一存儲和計算,解決 Lambda 架構的問題。

file

本文以 Paimon 為例,Paimon 是 Flink 內部基於 Flink Tablestore 孵化的一款湖存儲產品。和 Hudi/Iceberg 相比,Paimon 和 Flink 引擎有著更完整的相容能力。

下麵將就袋鼠雲的實踐經驗,展開說說如何使用“Flink+數據湖”三步構建實時湖倉。

● Step1:搭建實時 ODS 層

不管是通過 Flink 消費 Kafka,還是通過 FlinkCDC 採集日誌,都可以將源庫數據實時同步至 Paimon 中。

這樣,無論上層是要做批計算還是流計算,都有份統一的實時 ODS 數據做基礎,避免了數據不一致和存儲冗餘的問題。

file

● Step2:加工湖倉中間層

關於實時湖倉的層級設計,可以參考成熟的離線數倉劃分方案

file

從上面的架構圖中可以看出,Paimon 存儲將文件分為 DataFile 和 LogFile:

· DataFile 用於存量數據的批計算

· LogFile 用於增量數據的流計算,但畢竟是一種文件存儲格式,其實時性只能做到分鐘級別。如果業務場景對實時性有秒級/毫秒級要求,Paimon 也支持將 Kafka 外掛為 LogFile 使用,同時對上層應用暴露的,仍然只有一張 Paimon 表。

基於上面的特性,如何在實際應用體現出流/批一體能力,可以參考如下幾種開發場景:

01 流、批獨立任務

根據實際業務場景需要,使用 Flink+Paimon 的統一技術棧,進行離線任務和實時任務的獨立開發。

02 批流一體任務

在很多實時統計類的數據開發場景下,往往需要在完成存量數據統計的基礎上,再銜接實時增量計算。傳統的 Lambda 架構要完成這種場景,實現上相對比較複雜,而使用 Flink+Paimon,一個任務即可滿足。

03 流批一體任務

傳統的 Lambda 架構中,為了保障 Flink+Kafka 實時計算的準確性,往往需要將 Kafka 數據雙寫一份到離線存儲中,然後通過離線定時任務對實時計算結果做一次覆蓋修正。而使用 Flink+Paimon,一個任務即可滿足。

● Step3:湖倉分析應用層

這層有兩種不同的落地方案,可以根據企業技術棧自由選型:

· ADS 層數據也在數據湖加工落地,然後使用 OLAP 引擎如 Trino、StarRocks 直接對接數據湖,向上層提供數據分析能力。這樣做可以實現存儲的完全統一,但是在查詢分析性能上會有一定的犧牲。

file

· 將 DWS 層數據加工後打入 StarRocks 或者 ClickHouse 這類存儲+分析的統一引擎。該方案可以充分利用這類引擎的查詢加速能力,對於 OLAP 場景有較高要求的企業,是個比較合適的方案。

file

企業的其他選擇?

目前業內比較熱門的探索實踐,不依賴 Hadoop 體系,僅利用 StarRocks/Doris 構建實時數倉的方式,大致的架構圖如下:

file

理論上,該方案確實可行。StarRocks/Doris 本身作為計算+存儲一體的引擎,具備向量化、MPP 架構、CBO、智能物化視圖、可實時更新等能力,在一定程度上可以滿足構建實時數倉的要求。

但是,在我們接觸過的一些金融客戶的實際應用中發現,當數據體量較大、視圖邏輯較複雜時,該方案存在明顯的性能瓶頸。

而根據 StarRocks/Doris 官網對自己高性能分析型數倉的定位,將它作為企業 OLAP 的選型,完全沒有問題,但是寄希望於它承擔全鏈路的大數據計算,目前來看還有很長的路要走。

所以,將實時湖倉部分層級的計算,前移至“Flink+數據湖”的架構中,仍然是當前技術方案中最優的選擇。

本文根據《實時湖倉實踐五講第一期》直播內容總結而來,感興趣的朋友們可免費獲取直播課件:

直播課件:

https://www.dtstack.com/resources/1050?src=szsm

《數棧產品白皮書》: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
更多相關文章
  • >雙系統grub意外消失怎麼辦? 不用重裝系統、不用去維修店、不會丟數據,教你一招,完美恢復grub! ### 背景 我的電腦是windows和linux雙系統,啟動項使用的grub。某天準備切換linux時突然發現grub不見了。近期可疑操作有:更新BIOS、多次切換UEFI、添加第三方風扇管理軟 ...
  • 哈嘍大家好,我是鹹魚 昨天老大讓我初始化一批伺服器,吭哧吭哧弄完之後需要把這批機器添加到 zabbix 上去 但是我發現一臺一臺添加效率好低,而且特別繁瑣,當時我沒有想出有什麼好的方法,今天上網搜了一下相關資料之後,發現 zabbix 還有個自動發現功能 手動添加監控主機的效率會非常低下,而 Zab ...
  • [toc] # Linux運維工程師面試題(8) > 祝各位小伙伴們早日找到自己心儀的工作。 > 持續學習才不會被淘汰。 > 地球不爆炸,我們不放假。 > 機會總是留給有有準備的人的。 > 加油,打工人! ## 1 docker 的網路類型,使用場景 - none:在使用none模式後,Docker ...
  • 本文介紹了非連續空間存放方式中的兩種常見形式:鏈式分配和索引分配。鏈式分配通過鏈表的方式實現了文件的非連續分配,其中包括了隱式鏈接和顯式鏈接兩種方式。隱式鏈接通過遍歷鏈表來獲取下一個節點的指針,適合於文件的擴展,但查找效率較低。顯式鏈接則將指針存儲在文件分配表中,提高了檢索速度,但不適用於大磁碟空間... ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202309/3076680-20230905123241037-972099517.png) # 1. 基本信息 SQL學習指南(第3版) Learning SQL, Third Edition [美] 艾倫 ...
  • # 調研背景: 資料庫連接建立是比較昂貴的操作(至少對於 OLTP),不僅要建立 TCP 連接外還需要進行連接鑒權操作,所以客戶端通常會把資料庫連接保存到連接池中進行復用。連接池維護到彈性資料庫(JED)的長連接,彈性資料庫預設不會主動關閉客戶端連接(除非報錯),但一般客戶端到彈性資料庫之間還會有負 ...
  • ![file](https://img2023.cnblogs.com/other/2685289/202309/2685289-20230906144112614-1233246750.png) ## 導讀 蜀海供應鏈是集銷售、研發、採購、生產、品保、倉儲、運輸、信息、金融為一體的餐飲供應鏈服務企 ...
  • ![file](https://img2023.cnblogs.com/other/2685289/202309/2685289-20230906105454530-376816477.jpg) > 導讀:國內某頭部理財服務提供商成立於 2019 年,是股份制銀行中首批獲准籌建、首家獲准開業、首家成 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...