新一代流式計算框架在金融行業的應用
大資料時代,資料計算已經滲透到了各行各業。業務沉澱資料,資料計算產生新的業務價值,資料計算正不斷地用這種方式推動業務向前發展。

大資料的計算模式主要分為批量計算(batch computing)、流式計算(stream computing)等,分別適用於不同的大資料應用場景。對於先儲存後計算,實時性要求不高,同時資料規模大、計算模型複雜的應用場景,更適合使用批量計算。對於無需先儲存,可以直接進行資料計算,實時性要求嚴格,但單次計算涉及資料量相對較小的應用場景,流式計算具有明顯優勢。
與傳統批量計算相比,流式計算的特點主要有以下幾方面:
無邊界:資料到達、處理和向後傳遞均是持續不斷的。
瞬時性和有限永續性:通常情況下,原始資料單遍掃描,只有計算結果和部分中間資料在有限時間內被儲存和向後傳遞。
價值的時間偏倚性:隨著時間的流逝,資料中所蘊含的知識價值往往也在衰減,即流中資料項的重要程度是不同的,最近到達的資料往往比早先到達的資料更有價值。
金融行業是一種典型的流式計算應用領域,涵蓋了包括使用者行為分析、實時營銷、個性化推薦、實時風控、實時反欺詐等多個計算場景。以實時金融風控場景為例,需要流式計算系統實時分析海量的使用者行為資料,根據既定的規則計算出相應的指標,並與風險模型進行匹配,第一時間判斷風險等級、發現異常事件,並作出相應的風險控制措施,自動告警通知、改變業務流程。
流式計算框架的技術選型
目前主流的流式計算框架有Storm、Spark Streaming、Flink三種,其基本原理如下:
Apache Storm:以單事件來處理資料流(所有記錄一個接一個處理),延遲性低(毫秒級),但訊息保障能力弱,訊息傳輸可能重複但不會丟失。

Storm在執行中可分為spout與bolt兩個元件,Spout是Stream的訊息產生源,Bolt類接收由Spout或者其他上游Bolt類發來的訊息,對其進行處理,以實現業務邏輯。Storm執行的應用程式叫做拓撲(Topology),拓撲中定義了Spout和Bolt的組合關係。
Apache Spark Streaming:屬於Spark API的擴充套件,以設定的時間間隔(如幾秒種)處理一段段的批處理作業(即“微批處理”)。這種框架的延遲性較高(秒級),但能夠保證訊息傳輸既不會丟失也不會重複。

spark程式是使用一個spark應用例項一次性對一批歷史資料進行處理,spark streaming是將持續不斷輸入的資料流轉換成多個batch分片,使用一批spark應用例項進行處理。
Apache Flink:針對流資料+批資料的計算框架。把批資料看作流資料的一種特例,延遲性較低(毫秒級),且能夠保證訊息傳輸不丟失不重複。

Flink創造性的統一了流處理和批處理,作為流處理看待時輸入資料流是無界的,而批處理被作為一種特殊的流處理,只是它的輸入資料流被定義為有界的。Flink程式由Stream和Transformation這兩個基本構建塊組成,其中Stream是一箇中間結果資料,而Transformation是一個操作,它對一個或多個輸入Stream進行計算處理,輸出一個或多個結果Stream。

從上述指標對比可以看出,Flink作為流式處理框架中的新興之秀,兼具了storm的低延遲和spark的高吞吐、高訊息保障特性。隨著框架成熟度和社群活躍度越來越高,目前Flink已在國內外各大企業中有很多成功應用,很多企業紛紛將原有基於storm、spark streaming框架的流式計算系統轉投為基於Flink,Flink成為當下流式計算框架的首選。

流式計算在金融行業的應用架構
頂象技術目前已為多個銀行及網際網路金融客戶設計並搭建了基於Flink流式計算框架的一站式實時計算平臺,滿足金融客戶實時風控、實時反欺詐等多個場景下的計算需求。
金融行業的資料具有來源廣泛、實時性要求高、吞吐量大、計算模型複雜等特性,頂象技術基於Flink引擎,進行了大量的功能及可用性設計,設計了一套可支援風控、反欺詐,流式計算和同步計算的一站式實時計算平臺,滿足金融行業實時風控、實時反欺詐等多個場景下的計算需求。
頂象一站式實時計算平臺的概要架構及特點:

多資料來源支援:支援從多種型別的訊息中介軟體中獲取訊息流,以及從關係資料庫或NoSql資料庫中抽取全量/增量資料,並提供服務介面供其他系統實時推送資料。保證了計算資料的完整性和多樣性。
統一的非同步/同步計算服務:基於Flink的流式計算僅能滿足客戶的實時非同步計算需求,而無法滿足需要實時返回計算結果的計算場景。因此,頂象一站式實時計算平臺包含了高效能的同步計算框架,可滿足同步返回計算結果的應用場景。該框架與非同步流式計算框架結合,提供統一的計算服務,完美覆蓋所有實時計算需求。
視覺化的計算配置和實時分析:為提高系統的易用性,使沒有程式設計經驗的業務人員也可通過流式計算快速實現業務目標,平臺提供了視覺化計算規則配置引擎,可針對各類應用場景,定義相應的計算規則。如針對風控場景,可定義各類風控事件的指標計算規則。同時,平臺提供實時線上分析功能,業務人員線上選擇資料來源,設定報表統計規則,自動生成並實時重新整理各種維度的圖表,達到了資料的實時視覺化分析。
目前,頂象技術的一站式實時計算平臺已在多個知名銀行及網際網路金融企業中部署上線,結合頂象實時決策引擎,實現了毫秒級風控指標計算與風控預警,同時為行內其他系統提供了統一實時資料計算服務,達到了很好的應用效果。
金融機構在應用大資料的過程中,不僅需要看到其對於海量資料的儲存、查詢和分析類場景的需要,更需要探索如何運用多種大資料技術正規化為業務提供解決方案。在應用較多的領域如使用者畫像、精準營銷、實時反欺詐等領域,實時流計算的運用已經成為事實標準,未來在量化交易、風險檢測、實時機器學習、實時決策引擎、裝置異常分析等領域,相信還有更多用武之地。