分鐘級實時資料分析的背後——實時湖倉產品解決方案

數棧DTinsight發表於2024-01-26

隨著資訊科技的深入應用,企業對市場的響應速度也在不斷提升,而且這種響應速度正在變得越來越快,沒有最快只有更快。對資料實時性要求的提高,是眼下很多企業遇到的一個新的挑戰。

從生產側的視角來看,系統實時監控與實時健康狀態檢測已成為確保系統穩定性和可靠性不可或缺的關鍵功能。它們能夠即時捕捉並處理潛在問題,對系統的順暢執行起到保駕護航的作用。而在營銷側領域,搜尋推薦、實時營銷策略制定以及 ,則成為了企業運營團隊的核心競爭力。具體到業務實操層面,實時欺詐檢測技術、異常交易監測機制、精準的行為認證手段和高效的賬戶校驗系統等,在現今的商業環境中都扮演著至關重要的角色。

簡單來說,資料的時效性,是否足夠“快、精、準”,會真正影響到一個企業的生存。

隨著技術的發展, 的概念開始被提出,袋鼠雲在結合當前資料湖技術的基礎上,建設 ,滿足客戶亟待解決的資料需求。本文將詳細介紹實時湖倉解決方案,讓企業能夠更專注地去解決他們的業務價值。

實時業務場景遇到的問題

數字化時代,實時資料運用廣泛,尤其在網際網路、電商、金融等行業,實時資料反饋對業務運營和決策制定至關重要,對於資料時效的要求都達到了分鐘級甚至秒級。

file

下文以信貸業務的銀行動帳場景為例,介紹當前實時資料應用的業務場景,以及遇到的困境。

動帳交易,主要指開通帳戶線上發生的業務,包括支付轉帳、內部轉帳、轉存、網上繳費等交易。如:“交易流水錶” 23:00:00,張三轉入100元;“客戶表” 張三的餘額從100元更新為200元。

file

每次的一次動賬操作都是一個事務,至少要操作兩張表。第一張表是交易流水錶,記錄轉賬的一次行為,第二張則是使用者的屬性表,其中有一個欄位是使用者的餘額,需要隨著轉賬同步更新。

• 使用者交易流水錶

主要為 Insert 操作,記錄行為資訊,適合增量計算,如:統一開/戶、取款、貸款、購買理財等事件行為。

• 客戶屬性表

主要為 Update 操作,記錄屬性資訊,適合全量計算,如:客戶存款、貸款、理財、基金、保險等產品的餘額。

file

在湖倉技術出現以前,企業在做資料建設時基本採用 Lambda 架構實現流和批資料流的架構。原因在於,Lambda 架構是當時比較成熟穩定的流/批資料處理模式,在各個領域的應用也非常廣泛;同時因為其耦合度低,標準化高的優點,使得 Lambda 架構資料處理模式可以更簡便、高效、穩定地應用於各個場景。出於穩妥的考慮,大多數企業會將 Lambda 流批分離的方式建構實時和離線的數倉。

應用在銀行動帳場景中,如下圖所示:

file

但是它有很多致命的弱點:

· 資料具有二義性,難保證一致

· 資料重複計算,資源佔用多

· 需要開發和維護兩套程式碼邏輯

· ……

同時,Lambda 架構下 Hive 和 Kafka 也存在問題。Kafka 作為高效能的訊息佇列和流處理平臺,資料無法持久化儲存,並且不支援直接 OLPA 查詢。

Hive 作為大資料倉儲工具,存在不支援 ACID,無法同時讀寫;不支援行列更新,只能全表更新;對於 Schema、Patition 變更不友好;資料查詢效能慢等問題。

實時湖倉技術架構

面對上述問題,應該如何應對?袋鼠雲給出了「 」這個答案。

新型的湖倉一體格式,都有一個共同特點,就是可以做 ,比如:流批的讀寫介面都具備,擁有 ACID 的能力,流批一體可以併發去讀寫。能夠很好地解決 Kafka 和 Hive 中存在的問題:

· 基於資料湖儲存,可以讓流資料持久化

· 支援使用 直接查詢中間結果資料

· 支援 (併發讀寫),支援行級資料更新

· ,可靈活修改表、分割槽資訊

· 更高效掃描計劃,資料查詢效率提升

file

只是湖倉一體還不夠,面對如上文所述的實時場景需求,以前的T+1已經不能滿足,T+0實時場景越來越多。針對實時場景,做一個新的技術架構,這就是實時湖倉,實現技術與應用場景的支援和融合。

file

批處理技術在離線數倉場景中扮演關鍵角色,有效解決了資料更新滯後、表結構變更復雜等長期存在的痛點問題;而流處理則著力於解決流式數倉所面臨的挑戰,諸如資料不落地導致的易丟失風險。將兩者融合為 ,透過減少資料在不同處理階段間的流轉環節,從而提高了整個系統從資料輸入到輸出的一致性和可靠性,滿足了實時和歷史資料分析的雙重需求。

技術上,透過流批一體設計,實時湖倉能夠整合流處理與批次處理,從而有效降低資料鏈路的重複開發成本;在儲存層面,它解決了傳統架構中儲存分離的問題,實現統一的資料儲存管理,進而降低了儲存運維成本。同時,在資料管理方面, 提供了統一的後設資料和許可權管理體系,確保了資料的安全性和一致性,實現了從技術到儲存再到資料安全層面的高度融合與最佳化。

file

袋鼠雲實時湖倉產品解決方案

基於上述實時湖倉技術架構和技術優勢,袋鼠雲推出 。

可以幫助使用者快速構建實時湖倉平臺,提供流批一體儲存、 、湖內後設資料管理、 、湖內資料探索的能力。解決傳統數倉的痛點難點,無縫對接不同的計算引擎,為資料價值挖掘提供統一的資料基礎。

file

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

· 藉助 Flink Catalog 管理,構建一套虛擬湖倉分層架構,類似傳統離線數倉中的主題域、DW 分層設計

· ,平臺支援 Hudi、Paimon、Iceberg 三種湖表建立,並分別提供對應的 DDL DEMO

· 透過 Flink 表管理,持久化儲存基於 RDB、Kafka 建立的 Flink 對映表,和湖表一起,為實時計算提供表管理能力

· 作為實時計算領域最常用的資料介質,平臺同時也支援對 Kafka Topic 進行基礎的增刪改查、資料統計分析等功能

湖倉開發,建設實時湖倉的核心能力,按應用場景主要分為:

· 資料入湖:透過實時消費 Kafka,或者讀取 RDB 的 CDC 資料,將業務資料實時打入資料湖,構建實時湖倉的 ODS 層,為後續的流/批讀寫提供統一的資料基礎

· :藉助湖表格式的事務特性、快照特性等能力,透過 FlinkSQL 任務讀寫湖表,構建湖倉中間層

· 流批一體:在湖倉加工過程中,根據不同的業務場景,可以選擇流讀或批讀。在流批一體的設計上,可以選擇先批讀存量資料,無縫銜接流讀增量資料,也可以選擇流讀增量資料,批讀進行資料訂正

湖倉治理,在湖倉開發過程中,我們可以透過湖倉治理能力,不斷最佳化完善實時湖倉:

· 湖表檔案治理:在湖倉開發過程中,會產生大量小檔案、 、孤兒檔案等資料,嚴重影響湖表的讀寫效能。透過檔案治理功能,可以定期合併小檔案、清理過期快照/孤兒檔案,提高開發效率

· 後設資料查詢:在提供 Catalog/Database/Table 基礎資訊查詢的同時,會對湖表的儲存、行數、任務依賴等資訊進行統計,方便全域性判斷湖表價值

· Hive 錶轉換:對於歷史 Hive 表,平臺支援在不影響歷史資料的前提下,一鍵轉換表型別

下文以 Hudi 版為例,具體介紹袋鼠雲實時湖倉產品實踐。

資料入湖,搭建實時湖倉貼源層

● 建立 Flink 源端對映表

file

● 建立 Hudi 湖表

file

● 開發入湖任務

file

湖倉開發,搭建實時湖倉計算層

● 建立 Hudi Source 表

file

● 建立 Hudi Sink 表

file

● 建立維表

file

● 實時湖倉開發

file

湖倉治理,賦湖表查詢和治理能力

● Hive-湖錶轉表任務建立

file

● 湖倉治理任務模板建立

file

● 湖倉治理任務例項運維

file

湖倉治理,賦查詢和檔案治理能力

● 湖倉治理任務模板建立

file

● 湖倉治理任務例項運維

file

主要特色

袋鼠雲實時湖倉產品解決方案以低耦合度為主要特色,提供全方位、端到端的湖倉構建與賦能服務。該方案具備開箱即用和簡易部署的特點,透過模組化設計的 ,以及低感知的湖倉構建能力,極大地簡化了實施過程。

易用性也是其中的一大特色,旨在釋放技術生產力。採用統一封裝方式,介面友好直觀,不僅支援 ,還實現了一站式的資料開發與治理體系,使得使用者在操作過程中更為便捷高效。

此外,該方案還具備足夠的開放性。它能靈活對接並自由選擇各種服務,全面相容主流資料湖架構及大資料生態系統,並已適配國產化信創環境,確保在多元化的業務場景和個性化需求中都能遊刃有餘。這種高度開放性和適應性賦予了袋鼠雲實時湖倉產品解決方案廣泛的適用性和強大的生命力。

本文根據《實時湖倉實踐五講第五期》直播內容總結而來,感興趣的朋友們可點選連結觀看直播回放影片及免費獲取直播課件。

直播課件:

直播影片:

《資料治理行業實踐白皮書》下載地址:


《數棧V6.0產品白皮書》下載地址:


想了解更多有關大資料產品、行業解決方案、客戶案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szitpub



來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69995740/viewspace-3005344/,如需轉載,請註明出處,否則將追究法律責任。

相關文章