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

来源: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 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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...