行業挑戰
近年來,随着網際網路金融行業的飛速發展,傳統金融機構(如交易所、證券公司、銀行等)的各類業務與網際網路的結合也越來越緊密,如:各大金融機構紛紛推出手機 APP 用戶端,支援使用者自主辦理移動支付、理财、網絡借貸、購買金融産品等各類金融業務。新的業務方式對金融行業也提出了新的要求:
- 長鍊路且快速變化的業務:從業務需求出發,需要分析使用者的行為軌迹和交易記錄,以應對業務的快速變化。
- 越來越多的實時資料需求:目前需要更多的實時資料來支援業務決策。比如需要依據流量監控、銷售情況等,對不同的資源位做出相應調整;同時部分活動也需要實時資料來增強與使用者的互動,尤其在金融産品營銷活動中需要實時針對使用者行為調整政策。
- 越來越高的資料品質要求:資料的結果會直接影響業務決策和線上營運活動的效果,資料品質也決定了計算結果是否可以作為判斷的依據。
- 越來越多的實時風控需求:傳統風控系統需要完成從依賴專家規則到智能風控的實時化轉變,如信用違約、賬戶安全、貸款欺詐等典型場景:
- 欺詐檢測:在辦理業務過程中,對使用者賬号、交易行為等進行實時監控與識别。快速識别異常交易,減少造成使用者财産損失的可能。
- 信用評估:在貸款等銀行業務稽核過程中,快速識别虛假資料、資訊僞冒等惡意欺詐行為,并進行高危人群鑒别,整體信用風險評估等,縮短業務稽核流程。
解決方案
基于實時計算 Flink 版的解決方案可幫助金融機構從容應對上述挑戰,通過 Flink 建構實時數倉、實時反欺詐系統,助力金融機構快速建構實時風控體系。整個數倉體系架構如下:
實時數倉的資料處理過程涉及到以下幾個關鍵環節:
- 資料産生:一般場景下,資料有兩個來源:
- 使用者行為日志:使用者在 App 上的操作會産生一系列日志,包括點選、跳轉、浏覽、停留時長、機型、IP等資訊。
- 資料庫中相關資訊:使用者下單等業務類行為會被記錄到資料庫中。
- 資料采集:日志和資料庫的内容,需要上報到消息隊列中,使整條資料鍊路“流動”起來。比如日志中的資料,可通過日志采集等工具被實時上報到消息隊列中。而資料庫的資料(Binlog),可通過阿裡雲資料內建、DTS 産品或者其他開源元件被實時采集到消息隊列中。
- 資料加工:消息隊列(比如 DataHub/Kafka)的原始資料,往往在格式不齊、内容不全,需要經過資料清洗(ETL)之後,才能更好的被下遊業務利用。而整個 ETL 過程,是實時數倉架構設計上非常重要的一環。該環節要做到延時小、成本低、可擴充性好、業務名額計算準确。
在系統選型上,需要選擇 Flink 對資料進行處理,Flink 具有強大的資料處理能力,低延時、高吞吐,進而保證業務産出。同時阿裡雲上也推出了實時計算 Flink 版産品,為使用者提供一站式高可用的 Flink 服務。
在資料架構設計上,也可以依據數倉的基本方法論來建構 ODS/DWD/ADS 層,進而減少資料備援,降低資料存儲成本,并且使資料結構具備更好的可擴充性。
- 資料分析:經過 Flink(ETL)處理好的部分資料可以直接被業務方使用,如 App 當日激活/PV/UV 等實時名額。另一部分資料需要經過多元分析才能被業務方使用,這就需要用到 OLAP 系統(如阿裡雲互動式分析),将資料寫入 OLAP 系統後,通過與曆史資料的合并查詢,即可得到相關資料。
- 資料挖掘:從曆史中預測未來一直是人類的夢想,對公司來說,能對未來趨勢作出正确的判斷才能基業長青。機器學習就是通過曆史資料對未來進行預測的一種手段,可以使資料發揮最大的價值。
- 業務系統:經過處理的資料,可直接服務于相關業務方,如營運、決策者、相關應用等,如營運人員可通過實時報表中的資料及時調整營運政策,提高活動轉化率;利用實時風控系統,實時預警風險事件,可避免業務損失等。
基于 Flink 的實時數倉架構:
Flink 主要用于實時數倉 ETL 及 BI 部分的名額計算,與各種上下遊打通。
成功案例
衆安保險
衆安保險基于阿裡雲實時計算 Flink 版産品建構了實時數倉,其應用場景分為三類: 營銷活動、實時大屏及反欺詐。
- 在營銷活動中主要應用于營銷活動流量和交易。通過實時計算可以動态觀察使用者進入活動各個入口的流量情況,以及活動的 PV/UV、交易量等。通過動态觀測的使用者行為,可制定更精準的營銷政策,提高轉化。
- 實時大屏主要應用于實時 KPI 名額監控,如當日保費、當日投保量、當日總體和分平台 PV/UV 等。
- 反欺詐主要應用于積分獎勵等現金類的權益監控;針對某個入口是否為使用者真實行為的實時監控判斷、經緯度判斷等。
随着業務快速變化發展,對實時計算的要求也越來越高,需要平台提供低延時、低資源消耗、高效率、高精準度等能力。在滿足業務最基本需求的同時,我們也在充分利用實時計算 Flink 版平台的特性,豐富輸入輸出接口,保證資料品質。在未來的一段時期裡, Flink 的 ML 和 Scala 版本也将會在 SQL 版本之上讓實時計算在反欺詐方面和複雜的業務領域綻放精彩。
深交所
深圳證券交易所新一代監察系統圍繞異常交易行為監管、違法違規線索篩查等核心業務,全面支援交易監控、調查分析、業務研究的一體化監管工作,遵循“安全高效、持續演進、主流開放、自主可控”的設計原則,打造了安全高效、靈活易用、具備較高包容性的分布式架構技術系統。
實時監控平台是監察系統的核心子系統。從架構設計、核心技術、計算能力、高可用和容災設計等多方面考察,認為 Flink 能夠代表實時計算技術的未來趨勢,是實時監控平台技術路線的最佳選擇。與 Storm 比較,Flink 提供了強大的狀态管理機制,更加友好的程式設計接口以及 Exactly-Once 語義;與 Spark Streaming 比較,Flink 提供了更加強大的視窗計算能力,并且在性能上更加能夠滿足低延遲時間的要求。
Flink 幫助應用管理狀态,自動儲存狀态(Checkpoint),并提供多種後端實作。當應用需要維護大量狀态時,可使用 RocksDB 狀态後端,大大降低記憶體開銷,緩解 GC 問題。在故障時,能夠将應用狀态恢複到最近一個檢查點。
Flink SQL 強大的表達能力大大降低了流計算業務開發的門檻,可滿足監察系統的實時統計和實時告警業務 80% 以上的開發需求。擴充 UDF、UDAF、UDTF,實作特定的業務功能性函數,進一步簡化了業務研發。
Flink 視窗計算支援業務時間(Event Time),支援全量計算和增量計算等模式,優化的内部算法讓性能名額十分出色,友善實作區間值名額計算。
Flink 基于 Chandy-Lamport 分布式快照算法,實作了自動故障處理。在系統出現故障時,作業可以從最近的一個狀态快照中恢複并繼續運作,且能保證内部資料處理的 Exactly-Once 語義。為監察系統實作高可用的分布式實時計算平台提供牢固的基礎。
2019 年深交所與阿裡巴巴實時計算團隊簽訂合作協定。新一代監察系統的實時計算平台已安全、可靠地運作了近 300 天。截至 2020 年 4 月底,原始業務消息數量平均達 5千多筆/秒,峰值達到 120多萬/秒,關鍵業務統計、監察報警計算平均耗時百毫秒,為核心監察實時業務提供了強有力的支撐。
[1]
https://www.leiphone.com/news/201705/ZVhqW69XRJaKe3cD.html[2]
https://www.infoq.cn/article/wIwa7N6sFBR4QV-ScOgO實時計算 Flink 版産品交流群
阿裡雲實時計算Flink - 解決方案: https://developer.aliyun.com/article/765097 阿裡雲實時計算Flink - 場景案例: https://ververica.cn/corporate-practice 阿裡雲實時計算Flink - 産品詳情頁: https://www.aliyun.com/product/bigdata/product/sc