Apache Flink 在实时金融数据湖的应用
本文由中原銀行大數(shù)據(jù)平臺研發(fā)工程師白學余分享,主要介紹實時金融數(shù)據(jù)湖在中原銀行的應用。主要內容包括:
1、背景概況
2、實時金融數(shù)據(jù)湖體系架構
3、場景實踐
一、背景概況
首先簡單介紹一下中原銀行,它位于河南省鄭州市,是河南省唯一的省級法人銀行,是河南省最大的城市商業(yè)銀行。2017 年 7 月 19 日在香港成功上市。中原銀行在成立之初就將科技利行和科技興行作為我行的戰(zhàn)略,我行立志要成為一個科技銀行和數(shù)據(jù)銀行。我們一直在從事技術,也崇尚技術,希望用技術的手段來解決現(xiàn)在的問題。
本文將從實時金融數(shù)據(jù)湖的建設背景、體系架構、場景實踐三個方面分享。
1.數(shù)據(jù)湖誕生的業(yè)務背景
■ 決策方式變遷
下面來看一下背景概況,我們認為現(xiàn)在的銀行的決策方式正面臨巨大的變遷。
- 首先,傳統(tǒng)的銀行數(shù)據(jù)分析主要集中在銀行的收入、成本、利潤的分配和應對監(jiān)管部門的監(jiān)管。這些數(shù)據(jù)分析非常復雜,但也存在一定的規(guī)律,它屬于財務數(shù)據(jù)分析。隨著互聯(lián)網(wǎng)金融的不斷發(fā)展,銀行的業(yè)務不斷受到擠壓,如果仍然將數(shù)據(jù)分析集中在收入、成本、分配及監(jiān)管方面,已經(jīng)不能滿足業(yè)務的需求。如今,更好的了解客戶,收集大量的數(shù)據(jù),做更多有針對性的營銷和決策分析是當務之急。因此,現(xiàn)在銀行的業(yè)務分析決策由傳統(tǒng)的財務分析逐步轉向面向 KYC 的分析。
- 其次,傳統(tǒng)的銀行業(yè)務主要依靠業(yè)務人員進行決策以滿足業(yè)務的發(fā)展需求。但是隨著銀行業(yè)務的不斷發(fā)展,各種各樣的應用產(chǎn)生大量的多類型數(shù)據(jù)。僅僅依靠業(yè)務人員去做決策,已無法滿足業(yè)務的需求。當前面臨的問題更加復雜,影響因素也日漸增多,需要用更全面、智能的技術方式來進行解決。因此,銀行需要將傳統(tǒng)的純業(yè)務人員決策方式轉變?yōu)樵絹碓蕉嘁揽繖C器智能的決策方式。
■ 問題分析
大數(shù)據(jù)的時代最大的特點就是數(shù)據(jù)量大、數(shù)據(jù)的類型多。在使用大規(guī)模數(shù)據(jù)的過程中涉及各種各樣的技術,包括:
- 傳統(tǒng)的面向財務分析離線數(shù)據(jù)分析
- 面向非財務的數(shù)據(jù)分析
- 面向事件或日志等頻繁變更
- 實時性較高的數(shù)據(jù)分析
我們需要多樣化的數(shù)字營銷手段來描繪更全面、準確、科學的客戶畫像。同時,也需要實時風險決策技術來實時監(jiān)控業(yè)務面臨的風險、多模數(shù)據(jù)加工技術來有效支撐不同類型的數(shù)據(jù),包括結構化數(shù)據(jù)、半結構化數(shù)據(jù)、非結構化數(shù)據(jù)等。當然也需要機器學習和人工智能技術來支持問題的智能分析和決策。
如此多的技術,加上數(shù)據(jù)驅動決策的場景,決定了當前銀行的數(shù)據(jù)分析面臨著一個巨大的變遷,從傳統(tǒng)的面向財務的、面向離線的數(shù)據(jù)分析,逐步轉向面向客戶的、面向實時的數(shù)據(jù)分析。以上是實時金融數(shù)據(jù)湖建設的第一個觀點。
2.數(shù)據(jù)湖誕生的技術背景
實時金融數(shù)據(jù)湖建設的第二個觀點是,在銀行體系下,面向規(guī)范化、精準加工的傳統(tǒng)數(shù)倉體系,能夠較好的解決財務分析等場景,并在很長時間內仍會是主流方案。
■ 傳統(tǒng)數(shù)倉架構
下圖展示的是傳統(tǒng)的數(shù)倉架構。從下往上,依次是基礎貼源層、公共數(shù)據(jù)的整合層、業(yè)務集市層和應用加工層。不同的層每天通過批的方式執(zhí)行大量的運算,來得到業(yè)務想要的結果。銀行很長時間內非常依賴傳統(tǒng)的數(shù)倉體系,因為它非常好的解決了財務分析的問題。其特點也比較明顯:
- 精準、規(guī)范
- 多層數(shù)據(jù)加工
- 口徑統(tǒng)一
- T+1 數(shù)據(jù)處理
- 具備較高的性能
- 經(jīng)過長時間積累沉淀
- 適合財務分析
以上是傳統(tǒng)數(shù)據(jù)倉庫的優(yōu)勢。當然它的缺點也比較明顯:
- 變更困難
- 單位存儲成本較高
- 不適合海量日志、行為等變更頻繁,實時性高的數(shù)據(jù)
- 半結構化數(shù)據(jù)和非結構化數(shù)據(jù)兼容差
以上是實時金融數(shù)據(jù)湖建設的第二個觀點,即傳統(tǒng)的數(shù)據(jù)倉庫有它的優(yōu)勢和不足,并將長期存在。
■ 數(shù)倉的變遷
實時金融數(shù)據(jù)湖建設的第三個觀點是,面向 KYC、機器智能的分析,需要支持多類型數(shù)據(jù)、多時效數(shù)據(jù)、更加敏捷的使用,因此需要新的與數(shù)據(jù)倉庫互補的架構體系。
3.實時金融數(shù)據(jù)湖的特點
通過以上介紹的三個觀點引出今天介紹的主題,實時金融數(shù)據(jù)湖。 主要有三個特點:
- 第一,開放性。支持多類型場景,如 AI、非結構化、歷史數(shù)據(jù),海納百川。
- 第二,時效性。具備有效的支持實時分析與實時決策的體系架構。
- 第三,融合性。與銀行數(shù)據(jù)倉庫技術架構融合,統(tǒng)一數(shù)據(jù)視圖。
整體的實時金融數(shù)據(jù)湖是一個融合的數(shù)據(jù)湖,它的融合理念主要體現(xiàn)在以下 6 個方面:
- 第一,數(shù)據(jù)匯聚的融合,各種海量、多樣數(shù)據(jù)匯聚的地方,包括結構化、半結構以及非結構數(shù)據(jù)。
- 第二,技術實現(xiàn)的融合,包含云計算、大數(shù)據(jù)、數(shù)據(jù)倉庫的融合以及流計算和批處理技術的融合。
- 第三,規(guī)范設計的融合,數(shù)據(jù)模型主題設計靈活,同時支持 Schema-on-read 和 Schema-on-write 模式,支持多維、關系數(shù)據(jù)模型。
- 第四,數(shù)據(jù)管理的融合,數(shù)據(jù)湖和數(shù)倉元數(shù)據(jù)管理的統(tǒng)一以及用戶開發(fā)體驗的統(tǒng)一。
- 第五,物理位置的融合,可以是物理集中的單一大集群,也可以是物理分散,邏輯集中的邏輯集群。
- 第六,數(shù)據(jù)存儲的融合,分析數(shù)據(jù)統(tǒng)一存儲的技術平臺,符合入湖倉標準的數(shù)據(jù)按照要求放入,降低存儲和運維成本。
1
二、體系架構
1.實時金融數(shù)據(jù)湖架構
■ 功能架構
首先來看一下實時金融數(shù)據(jù)湖的功能架構。在功能上,包括數(shù)據(jù)源、統(tǒng)一的數(shù)據(jù)接入、數(shù)據(jù)存儲、數(shù)據(jù)開發(fā)、數(shù)據(jù)服務和數(shù)據(jù)應用。
第一,數(shù)據(jù)源。不僅僅支持結構化數(shù)據(jù),也支持半結構化數(shù)據(jù)和非結構化數(shù)據(jù)。
第二,統(tǒng)一數(shù)據(jù)接入。數(shù)據(jù)通過統(tǒng)一數(shù)據(jù)接入平臺,按數(shù)據(jù)的不同類型進行智能的數(shù)據(jù)接入。
第三,數(shù)據(jù)存儲。包括數(shù)據(jù)倉庫和數(shù)據(jù)湖,實現(xiàn)冷熱溫智能數(shù)據(jù)分布。
第四,數(shù)據(jù)開發(fā)。包括任務開發(fā),任務調度,監(jiān)控運維,可視化編程。
第五,數(shù)據(jù)服務。包括交互式查詢,數(shù)據(jù) API,SQL 質量評估,元數(shù)據(jù)管理,血緣管理。
第六,數(shù)據(jù)應用。包括數(shù)字化營銷,數(shù)字化風控,數(shù)據(jù)化運營,客戶畫像。
■ 邏輯架構
實時金融數(shù)據(jù)湖的邏輯架構主要有 4 層,包括存儲層、計算層、服務層和產(chǎn)品層。
- 在存儲層,有 MPP 數(shù)據(jù)倉庫和基于 OSS/HDFS 的數(shù)據(jù)湖,可以實現(xiàn)智能存儲管理。
- 在計算層,實現(xiàn)統(tǒng)一的元數(shù)據(jù)服務。
- 在服務層,有聯(lián)邦數(shù)據(jù)計算和數(shù)據(jù)服務 API 兩種方式。其中,聯(lián)邦數(shù)據(jù)計算服務是一個聯(lián)邦查詢引擎,可以實現(xiàn)數(shù)據(jù)跨庫查詢,它依賴的就是統(tǒng)一元數(shù)據(jù)服務,查詢的是數(shù)據(jù)倉庫和數(shù)據(jù)湖中的數(shù)據(jù)。
- 在產(chǎn)品層,提供智能服務:包 RPA、證照識別、語言分析、客戶畫像、智能推薦。商業(yè)分析服務:包括自助分析、客戶洞察、可視化。數(shù)據(jù)開發(fā)服務:包括數(shù)據(jù)開發(fā)平臺,自動化治理。
2.實時金融數(shù)據(jù)湖工程實踐
下面講一下實時金融數(shù)據(jù)湖的工程實踐,主要針對實時結構化數(shù)據(jù)分析。整體基于開源架構搭建,如下圖所示,主要有 4 層,包括存儲層、表結構層、查詢引擎層和聯(lián)邦計算層。
- 存儲層和表結構層是數(shù)據(jù)智能分布的組成部分,支持 Upsert/Delete、Table Schema 和 ACID 的語義保證,并且它可以兼容存儲半結構化數(shù)據(jù)和非結構化數(shù)據(jù)。
- 查詢引擎層和聯(lián)邦計算層是統(tǒng)一數(shù)據(jù)開發(fā)平臺的一個組成部分。統(tǒng)一數(shù)據(jù)開發(fā)平臺提供的是一站式的數(shù)據(jù)開發(fā),可以實現(xiàn)實時數(shù)據(jù)任務的開發(fā)和離線數(shù)據(jù)任務的開發(fā)。
本次分享主要針對的是實時數(shù)據(jù)任務的開發(fā)。后面主要介紹的是一站式流計算開發(fā)平臺,它可以實現(xiàn)實時任務的開發(fā)、管理、運維,保障實時任務的穩(wěn)定運行。
1
3.流計算開發(fā)平臺
為什么銀行需要流計算開發(fā)平臺,流計算開發(fā)平臺的優(yōu)勢是什么?
■ 優(yōu)勢
流計算開發(fā)平臺的優(yōu)勢在于可以有效降低實時數(shù)據(jù)開發(fā)準入門檻,助力實時業(yè)務快速發(fā)展。通過流計算開發(fā)平臺,提供一個一站式的實時數(shù)據(jù)開發(fā)平臺,包括可視化的數(shù)據(jù)開發(fā),任務管理,實現(xiàn)多租戶和多項目的管理,統(tǒng)一運維管理、權限管理,可以在這個平臺上完成實時數(shù)據(jù)任務的開發(fā)。流計算開發(fā)平臺是基于 Flink SQL 來做的,Flink SQL 本身是一種生產(chǎn)力。
通過 Flink SQL 的不斷應用,可以把流計算開發(fā)平臺的能力下推至分支行,分支行可以通過平臺,按照業(yè)務需求自主的開發(fā)實時數(shù)據(jù)的任務,以此來促進銀行業(yè)務的發(fā)展。
■ 架構
流計算開發(fā)平臺的架構如下圖所示。主要有數(shù)據(jù)存儲、資源管理、計算引擎、數(shù)據(jù)開發(fā)、Web 可視化等。
它可以實現(xiàn)多租戶的管理、多項目的管理,并且用戶可以在上面實現(xiàn)一個實時任務的運維監(jiān)控。流計算開發(fā)平臺資源管理方式,支持物理機和虛擬機的方式,同時支持統(tǒng)一的云底座 K8s。平臺計算引擎是基于 Flink,提供了數(shù)據(jù)集成、實時任務的開發(fā)、運維中心、數(shù)據(jù)管理,和可視化數(shù)據(jù)開發(fā) IDE 等功能。
■ “直通式”實時場景
上面主要介紹了流計算開發(fā)平臺的架構和優(yōu)勢,下面針對具體的場景做進一步介紹。首先是“直通式”實時場景架構。
不同的數(shù)據(jù)源數(shù)據(jù)被實時的接入到 Kafka,Flink 實時讀取 Kafka 數(shù)據(jù)進行處理,將處理的結果發(fā)送給業(yè)務端。業(yè)務端可以是 Kafka,也可以是 HBase 等不同的下游。業(yè)務的維表數(shù)據(jù)是用 Elastic 來存儲。“直通式”架構可以實現(xiàn) T+0 的數(shù)據(jù)的時效性,主要用在實時決策場景中。
- 實時決策分析
這里舉了一個簡單的例子,臨期貸后催收業(yè)務。貸款快過期了需要進行催收。業(yè)務依賴賬戶余額、交易金額、本期應還金額。通過三個數(shù)據(jù),針對不同的業(yè)務進行決策,是通過短信催收、智能語音催收,還是電話催收?
如果是基于原有的離線數(shù)倉的架構,得到的數(shù)據(jù)都是 T+1 的。用過期的數(shù)據(jù)決策,可能客戶已經(jīng)還款,但是仍然存在電話催收的問題。而通過“直通式”場景架構的應用,可以實現(xiàn) T+0 的賬戶余額,交易金額和本期應還金額,實時進行決策,提升用戶的體驗。
- 實時 BI 分析
再來看一個例子,實時獲取過去一段時間到現(xiàn)在的理財產(chǎn)品銷量信息,這個需求有一些關鍵字,需要“實時獲取”,即需要 T+0 的數(shù)據(jù)?!耙欢螘r間到現(xiàn)在”,它涉及歷史數(shù)據(jù)的查詢。理財產(chǎn)品的銷量信息涉及到銀行業(yè)務,一般都比較復雜,需要用到多流 join。
整個需求是一個實時 BI 需求,這個需求使用“直通式”的架構無法有效解決,“直通式”架構用的是 Flink SQL,但 Flink SQL 無法有效應對歷史數(shù)據(jù)的查詢,并且銀行的業(yè)務一般都比較復雜,現(xiàn)在主要用的雙流 join。要解決這個問題,需要探索區(qū)別于“直通式”實時場景架構的新架構。
■ “落地式”實時場景
下面介紹“落地式”的實時場景架構,數(shù)據(jù)源被實時接入到 Kafka 之后,Flink 可以實時處理 Kafka 的數(shù)據(jù),并將處理的結果寫入到數(shù)據(jù)湖中。數(shù)據(jù)湖整體基于開源方案搭建,數(shù)據(jù)的存儲是用的 HDFS 和 S3,表格式用的是 Iceberg。Flink 讀取完 Kafka 的數(shù)據(jù)之后進行實時處理,這時候可以把處理的中間結果寫入到數(shù)據(jù)湖中,然后再進行逐步處理,最終得到業(yè)務想要的結果。處理的結果可以通過查詢引擎對接應用,包括 Flink、Spark、Presto 等。
4.實時金融數(shù)據(jù)湖
■ 架構
下面是中原銀行的實時金融產(chǎn)品架構。包括“直通式”實時應用場景和“落地式”的實時金融場景。數(shù)據(jù)會實時的接入到 Kafka,然后 Flink 實時的讀取 Kafka 中的數(shù)據(jù)進行處理。如果涉及維表數(shù)據(jù),則是存在 Elastic 中。這里存在兩種情況:
- 業(yè)務邏輯簡單,Flink 實時讀取 Kafka 中的事件數(shù)據(jù)和 Elastic 中的維表數(shù)據(jù)進行處理,處理的結果會直接發(fā)送給業(yè)務。
-
業(yè)務邏輯復雜,會進行分步處理,將中間結果先寫到數(shù)據(jù)湖,再進行逐步的處理,得到最終的結果。然后最終的結果會通過查詢引擎對接不同的應用。
■ 數(shù)據(jù)流向
這是實時金融數(shù)據(jù)湖的數(shù)據(jù)流向圖。實時數(shù)據(jù)的數(shù)據(jù)源都來自于 Kafka,然后 Flink SQL 通過 ETL 方式實時讀取 Kafka 中的數(shù)據(jù)。通過實時數(shù)據(jù)的 ETL 和數(shù)據(jù)湖平臺兩種方式對接應用,提供的是實時和準實時的輸出結果。其中,實時數(shù)據(jù) ETL 對應的是“直通式”實時場景架構,而數(shù)據(jù)湖平臺對應的是“落地式”的實時應用場景架構。
■ 實時金融數(shù)據(jù)湖特點
實時金融數(shù)據(jù)湖的特點有三點。
- 第一,開放性。數(shù)據(jù)湖兼容支持復雜 SQL,支持大量的金融場景。
- 第二,時效性。支持實時和準實時的數(shù)據(jù)分析處理,并且有落地和非落地的兩種應用對接的方式。
- 第三,融合性。數(shù)據(jù)湖提供的是一個金融數(shù)據(jù)湖的架構,支持流批統(tǒng)一的結構化數(shù)據(jù)的分析處理。當然也支持半結構化和非結構化,因為數(shù)據(jù)湖用的是分布式存儲。
■ 建設成果
通過數(shù)據(jù)湖的不斷建設,整體也取得了一系列成果。我們現(xiàn)在是 T+0 的數(shù)據(jù)時效性,已經(jīng)支持 20+ 的金融產(chǎn)品,存儲成本可以降低 5 倍。
三、場景實踐
1.智能實時反欺詐
實時金融數(shù)據(jù)湖主要應用在兩個大的方面,一個是實時 BI,一個是實時決策。其中,實時決策的典型應用是智能實時反欺詐業(yè)務,它依賴于實時計算平臺、知識圖譜平臺、機器學習平臺、實時數(shù)據(jù)模型,提供一系列的數(shù)據(jù)服務,包括關系欺詐服務、設備指紋服務、行為監(jiān)測服務、位置解析服務和共性匹配服務,以此來支持交易反欺詐場景、申請反欺詐場景和營銷反欺詐場景。
當前已經(jīng)實現(xiàn)日均實時處理 140 萬條風險數(shù)據(jù),日均實時阻斷 110 次,日均實時預警 108 次。
2.實時 BI
再來看一個實時 BI 場景,主要是客戶實時洞察平臺,內部叫知秋平臺,依賴于實時計算平臺、知識圖譜平臺、客戶畫像平臺、智能分析平臺。不同的平臺組合在一起,提供了交互式查詢服務、統(tǒng)一的元數(shù)據(jù)管理服務、SQL 質量評估服務、配置式開發(fā)服務、統(tǒng)一可視化數(shù)據(jù)展示等。支持了趨勢分析、圈子分析、留存分析、客戶客群分析等場景?,F(xiàn)在已經(jīng)可以打通實時分析類場景常用需求和服務,實現(xiàn)實時 BI 分析閉環(huán)可視化,分行自主數(shù)字化實時 BI 分析,已落地實時 BI 分析用例 26800 個,實時 BI 分析平臺平均月活 10000+,每天輔助分析各類實時 BI 需求 30000+。
原文鏈接:https://developer.aliyun.com/article/781340?
版權聲明:本文內容由阿里云實名注冊用戶自發(fā)貢獻,版權歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權,亦不承擔相應法律責任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權保護指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權內容。 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Apache Flink 在实时金融数据湖的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mPaas 研发流程和线上运维介绍
- 下一篇: 解读云原生下的可观察性发展方向