GaussDB(DWS)基於Flink的實時數倉構建

华为云开发者联盟發表於2024-04-18

本文分享自華為雲社群《GaussDB(DWS)基於Flink的實時數倉構建》,作者:胡辣湯。

大資料時代,廠商對實時資料分析的訴求越來越強烈,資料分析時效從T+1時效趨向於T+0時效,為了給客戶提供極速分析查詢能力,華為雲數倉GaussDB(DWS)基於流處理框架Flink實現了實時數倉構建。在本期《GaussDB(DWS)基於Flink的實時數倉構建》的主題直播中,華為雲數倉GaussDB(DWS)解決方案專家Eric老師,為您深度解析GaussDB(DWS)+Flink如何增強湖倉增量資料在不同資料模型層之間的實時流動能力,如何為訊息資料流提供高效能通用入庫能力,又如何構建極致的端到端實時數倉解決方案。

1、增量計算的背景

隨著數智化時代的到來,資料量不斷增長,為了充分挖掘資料價值,實時獲取資料動態,GaussDB(DWS)透過與流引擎Flink結合,最佳化ETL Pipeline,從而資料分析時效實現T+0。

Flink是一款開源的流處理框架,它能夠實時處理大規模資料流,並具有高可靠性和高效能的特點。Flink支援流式資料處理、批處理和圖形處理等多種計算模式,並提供了豐富的API和工具,可以方便地進行資料處理和分析。GaussDB(DWS)與Flink結合構建下一代Stream Warehouse,實現增量計算,可以為使用者提供更加全面、高效的資料處理和分析能力。

為什麼需要增量計算能力?增量計算能力解決了哪些場景的痛點問題?

  • 高效能場景

一些需要高效能的典型場景如下:

(1)增量資料的實時ETL並更新物化檢視,秒級更新;

(2)資料在倉湖之間實時流動能力;

(3)實時流資料不落盤,直達實時大屏。

  • 資料入庫場景

Kafka的資料直接入湖

2、GaussDB(DWS)+Flink實現增量計算的架構設計

GaussDB(DWS)與流引擎結合,實現企業數倉模型的分層、增量化加工,統一批流處理邏輯,一站式支援批、流、互動式、點查等多種場景,簡化資料生產線架構複雜度,構建新一代實時增量數倉,滿足企業日趨便捷化的資料生產線場景。

三大實時能力

GaussDB(DWS)

Flink

實時入出倉

提升入庫效能,支援Binlog表CDC功能,實現 “流表一體”

GaussDB(DWS)對接Flink後設資料,GaussDB(DWS)可以作為Flink的源表、結果表

實時增量加工

支援基於資料流表達的增量加工

複雜SQL下推GaussDB(DWS),流表關聯,多流關聯等

實時查詢

支援資料高效點查

GaussDB(DWS)對接Flink後設資料,GaussDB(DWS)可以作為Flink的維表,支援維表點查

如下圖,增量資料可以被流引擎實時地感知捕獲到,並執行預置的增量計算任務,然後再寫回到數倉的下一層模型裡面。透過幾次流引擎的迭代,使得貼源層的增量資料能迅速的反映到明細層以及最終的集市層,來支撐實時的BI報表分析、互動式分析等業務場景。

GaussDB(DWS)基於Flink的實時數倉構建

3、 GaussDB(DWS)+Flink增量計算能力圖介紹

GaussDB(DWS)結合Flink的能力構建,涵蓋以下四大功能:

Catalog

打通Flink後設資料與湖倉後設資料。

GaussDB(DWS)基於Flink的實時數倉構建

Source

倉內表透過Binlog將增量資料暴露出來讓Flink及時感知,從而驅動實時增量資料運算任務的開始。

GaussDB(DWS)基於Flink的實時數倉構建

Source connector運算元,可以將一些條件下推至倉中完成點查任務。

GaussDB(DWS)基於Flink的實時數倉構建

Sink

Sink connector運算元可以將job中的資料寫回數倉中。

GaussDB(DWS)基於Flink的實時數倉構建

流維

流維運算元提供了流資料關聯維表的能力。

GaussDB(DWS)基於Flink的實時數倉構建

GaussDB(DWS)結合Flink的非功能性構建:

  • CKPT建設

每個運算元implements flink的指定介面,將計算中間結果持久化下去,並做到功能冪等,即可接入flink災難恢復處理能力,做到job的端到端資料exactly once。

GaussDB(DWS)基於Flink的實時數倉構建

4、 生態工具streamer介紹

為了便於使用者一鍵運算元據入庫,GaussDB(DWS)研發了streamer生態工具,使用者不再需要自己寫SQL,只需要在IDE中進行操作。

操作步驟如下:

第一步:配置kafka及數倉表。

GaussDB(DWS)基於Flink的實時數倉構建

第二步:建立POJO類分別對應kafka訊息體及數倉錶行資料。

GaussDB(DWS)基於Flink的實時數倉構建

GaussDB(DWS)基於Flink的實時數倉構建

第三步:編寫自定義運算元,實現自定義Mapping功能。系統提供預設1對1 Mapping運算元,可直接使用。

GaussDB(DWS)基於Flink的實時數倉構建

本期分享到此結束,更多關於GaussDB(DWS)產品技術解析、數倉產品新特性的介紹,請關注GaussDB(DWS)開發者平臺,GaussDB(DWS)開發者平臺為開發者們提供最新、最全的資訊諮詢,包括精品技術文章、最佳實踐、直播集錦、熱門活動、海量案例、智慧機器人。讓您學+練+玩一站式體驗GaussDB(DWS)。

GaussDB(DWS)開發者平臺連結:https://bbs.huaweicloud.com/contents/dws/learning.html

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章