舉個例子來說:我們把數據當成水庫的話,水庫里面存在的水就是批式大數據,進來的水是流式大數據
目前主流的大數據處理技術體系主要包括hadoop[1]及其衍生系統。Hadoop技術體系實現并優化了MapReduce[2]框架。Hadoop技術體系主要由谷歌、推特、臉書等公司支持。自2006年首次發布以來, Hadoop技術體系已經從傳統的“三駕馬車”(HDFS[1]、MapReduce和HBase[3])發展成為包括60多個相關組件的龐大生態系統。在這一生態系統中,發展出了Tez、Spark Streaming[4]等用于處理流式數據的組件。其中,Spark Streaming是構建在Spark基礎之上的流式大數據處理框架。與Tez相比,其具有吞吐量高、容錯能力強等特點,同時支持多種數據輸入源和輸出格式。除了Spark開源流處理框架,目前應用較為廣泛的流式大數據處理系統還有Storm[5]、Flink[6]等。這些開源的流處理框架已經被應用于部分時效性要求較高的領域,然而在面對各行各業實際而又差異化的需求時,這些開源技術存在著各自的瓶頸。
在互聯網/移動互聯網、物聯網等應用場景中,個性化服務、用戶體驗提升、智能分析、事中決策等復雜的業務需求對大數據處理技術提出了更高的要求。為了滿足這些需求,大數據處理系統必須在毫秒級甚至微秒級的時間內返回處理結果。以國內最大的銀行卡收單機構銀聯商務為例,其日交易量近億筆,需對旗下540多萬個商戶進行實時風險監控,在確保這些商戶合規開展收單業務的同時,最大限度地保障個人用戶的合法權益。這樣的高并發、大數據、高實時應用需求給大數據處理系統提出了嚴峻的挑戰。銀聯商務以前使用的T+1事后風控系統存在風險偵測遲滯高(次日才能發現風險,損害已經造成)、處理時間長(十幾個小時之后才能完成風險識別)、無法處理長周期歷史數據(只能分析最近幾日的流水數據)以及無法支持復雜規則(僅能支持累積求和等簡單規則)等重大缺陷。為此,亟須研發全新的事中風控系統,以重點實現低遲滯(在1 min內甄別突發風險)、高實時(100 ms內返回處理結果)、長周期(可處理長達10年以上的歷史周期數據)以及支持高復雜度規則(如方差、標準差、K階中心矩、最大連續統計等)等目標。這一目標可以抽象為一個大數據處理科學問題:如何在一個完整的大數據集上,實現低遲滯、高實時的即席(Ad-Hoc)查詢分析處理。
2 技術解析
現有的大數據處理系統可以分為兩類:批處理大數據系統與流處理大數據系統。以Hadoop為代表的批處理大數據系統需先將數據匯聚成批,經批量預處理后加載至分析型數據倉庫中,以進行高性能實時查詢。這類系統雖然可對完整大數據集實現高效的即席查詢,但無法查詢到最新的實時數據,存在數據遲滯高等問題。相較于批處理大數據系統,以Spark Streaming、Storm、Flink為代表的流處理大數據系統將實時數據通過流處理,逐條加載至高性能內存數據庫中進行查詢。此類系統可以對最新實時數據實現高效預設分析處理模型的查詢,數據遲滯低。然而受限于內存容量,系統需丟棄原始歷史數據,無法在完整大數據集上支持Ad-Hoc查詢分析處理。因此,研發具有快速、高效、智能且自主可控特點的流式大數據實時處理技術與平臺是當務之急。
實現一個融合批處理和流處理兩類系統且對應用透明的系統級方案,需要攻克以下幾個技術難點。
(1)復雜指標的增量計算
盡管計數、求和、平均等指標能夠依靠查詢結果合并實現,然而方差、標準差、熵等大部分復雜指標無法依靠簡單合并完成查詢結果的融合。再者,當查詢涉及熱點數據維度及長周期時間窗口的復雜指標時,多次重新計算會帶來巨大的計算開銷。
(2)基于分布式內存的并行計算
采用粗放的調度策略(例如約定在每天的固定時間將流數據導入批處理系統)會造成內存資源的極大浪費,亟須研究實現一種細粒度的基于進度實時感知的融合存儲策略,以極大地優化和提升融合系統的內存使用效率。
(3)多尺度時間窗口漂移的動態數據處理
來自業務系統的數據查詢請求會涉及多種尺度的時間窗口,如“最近5筆刷卡交易的金額”“最近10 min內密碼重試次數”“過去10年的月均交易額”等。每次查詢請求都重新計算結果會對系統性能造成極大的影響,亟須研究實現一種支持多種時間窗口尺度(數秒到數十年)、多種窗口漂移方式(數據驅動、系統時鐘驅動)的動態數據實時處理方法,以快速響應來自業務系統的即席查詢請求。
(4)高可用、高可擴展的內存計算
基于內存介質能夠大大提升數據分析及處理能力,然而由于其易揮發的特性,一般需要采用多副本的方式來實現基于內存的高可用方案,這使得“如何確保不同副本的一致性”成為一個待解決的問題。此外,在集群內存不足或者部分節點失效時,“如何讓集群在不間斷提供服務的同時重新平衡”同樣是一個待解決的技術難題。亟須研究分布式多副本一致性協議以及自平衡的智能分區算法,以進一步提升流處理集群的可用性以及可擴展性。
“流立方”流式大數據實時處理技術在上述領域取得了一系列突破,該技術提供基于時間窗口漂移的動態數據快速處理,支持計數、求和、平均、最大、最小、方差、標準差、K階中心矩、遞增/遞減、最大連續遞增/遞減、唯一性判別、采集、過濾等多種分布式統計計算模型,并且實現了復雜事件、上下文處理等實時分析處理模型集的高效管理技術。
3 平臺縱覽
基于“流立方”流式大數據實時處理技術,研發了“流立方”流式大數據實時處理平臺。其應用框架如圖1所示,具有良好的靈活性和適應性。平臺的數據裝載模塊負責從具體業務系統中接入實時流數據,數據抽取模塊負責批量抽取歷史數據,模型裝載模塊負責將分析處理模型集中的計算模型和腳本加載到平臺中。當收到業務系統發出的實時查詢請求時,“流立方”平臺能夠根據分析處理模型在完整大數據集上實時計算出相應的指標,并進行判斷,將結果反饋給業務系統。
圖1 “流立方”平臺應用框架
在測試環境為8臺服務器(每臺服務器配置24核 CPU、256 GB內存),同時計算16個統計指標(涉及4個維度,包含計數、求和、平衡、最大、最小、標準差、過濾、去重、排序、復雜事件處理等多種算法)的性能測試中,“流立方”平臺達到了單節點寫入大于43 000 TPS、8節點讀取大于100萬TPS、平均時延為1~2 ms的優異性能,如圖2所示。
圖2 “流立方”平臺性能指標
“流立方”平臺在解決批式大數據和流式大數據融合實時處理技術難題,實現優異性能的同時,還解決了流式大數據處理平臺面臨的兩大工程化難題。一是作業的編排效率問題。大部分開源流處理平臺在完成一個流處理編排時,都需要經過拓撲設計、代碼編寫、功能測試、打包部署等環節,一般需要一周的時間才能完成。“流立方”平臺通過基于“所見即所得”的在線作業編排管理,將上線任務耗時降低到分鐘級,大大提升了流處理作業的編排效率。二是流處理作業的靈活變更問題。流處理平臺擅長進行邏輯預先定義的增量計算,盡管其計算效率極高,但計算靈活度受到限制。例如,某業務需要統計過去3個月的數據,現有的流處理平臺在該業務上線3個月后才能完全生效,這樣的工作方式使流處理技術在實際應用中受到很大的局限。“流立方”平臺創新性地引入流媒體播放器的錄制與重放思路,在原始數據進入流處理平臺時,通過順序寫的方式持久化一份原始數據,在需要上線新的計算作業時,即刻重發指定時間窗口內的原始數據,從而實現快速(分鐘級甚至秒級)計算作業上線。
“流立方”平臺引入了一系列創新技術,在性能、可用性、可擴展性等多個層面提升了流處理平臺的處理能力,滿足金融領域在內的眾多領域的業務及運維需求。引入數據沖突智能規避技術,解決了流式處理中的熱點數據處理問題,從而解決了大顆粒數據維度的處理效率問題;引入Paxos一致性協議,解決內存存儲計算時多副本一致性問題,提供了面向運維人員透明的一致性解決方案;引入智能分區技術,基于一致性散列技術,進一步將散列值拆解為散列塊,通過散列塊的平滑遷移解決存儲集群的可伸縮性設計問題,確保對于運維人員的集群變更透明性;引入計算作業的動態運行時加載技術,規避了作業手工打包部署的問題,進一步提升了開發人員的工作效率。
在國內某大型銀行卡收單機構組織的招標測試中,測試環節為兩臺低配置虛擬機,測試數據為該機構的數千萬筆交易流水,計算邏輯包括50多條規則,涉及30多個統計指標。在該測試環節下,兩家國外著名廠商中,一家廠商的計算時間長達24 h,另一家老牌數據庫軟件提供商則未能在一天內完成計算。相較于這些國外著名廠商的大數據處理平臺,“流立方”平臺能夠在3 h內完成所有計算,且正確率為100%。
4 應用場景
“流立方”流式大數據實時處理系統在金融、交通、電信、公安等行業具有廣泛的應用場景。以金融風控反欺詐為例,部署“流立方”風控系統僅需在交易前端增加風控探頭,將實時交易數據旁路接入系統。“流立方”風控系統根據融合了專家知識和機器學習結果的數百條規則對每筆交易進行風險評估,判斷是否允許進行該筆交易,流程如圖3所示。該系統平均響應時間在6 ms以下,并發數超過50 000筆/s。同時,實現這一性能僅需要4臺服務器。
圖3 基于“流立方”的金融風控反欺詐流程
基于“流立方”的金融風控反欺詐技術體系包含技術(如設備指紋、代理偵測、生物識別、關聯分析、機器學習等技術)、知識(如盜卡反欺詐、偽卡反欺詐、信用卡套現、營銷反欺詐等規則與模型)、數據(如虛假手機數據、代理IP數據、P2P失信數據等標識數據)三大板塊。技術部分中的設備指紋技術通過主被動混合的形式采集設備中軟硬相關要素,結合概率論等算法為每一個設備頒發一個全球唯一的指紋編碼,這些指紋編碼在反欺詐的整個過程中起到非常積極的作用;代理偵測技術通過短時間內掃描IP相關端口來識別那些開啟代理的IP,并在這些IP訪問金融服務時進行識別;生物識別技術通過采集設備上用戶的鼠標點擊、觸摸、鍵盤敲擊等行為識別操作者是人還是機器以及是否操作者本人的問題;關聯分析技術在底層通過圖數據庫存儲不同節點以及關系信息,最終在界面上通過圖的形式進行欺詐者關聯分析及復雜網絡分析;機器學習技術通過有監督、無監督的機器學習算法提升欺詐識別的準確率及覆蓋率,并結合流立方技術提供模型的事中預測能力。
基于上述技術體系,研發了銀行業務風險實時監控系統、互聯網支付業務風險實時監控系統、電商業務風險實時監控系統等金融風控反欺詐系列解決方案。這些方案已應用到銀行、第三方支付機構、互聯網金融等領域的上百家企業。目前50%以上的線下交易都在“流立方”的保護下進行,基于“流立方”的金融風控反欺詐解決方案每天為我國的金融機構抵御上億次的攻擊。該技術已經成為我國金融安全領域基礎設施必不可少的組成部分。
此外,在互聯網機器防御系統中,“流立方”同樣能發揮巨大作用。如今網絡機器人遍布票務、電商、招聘、銀行、政府、社交等各類網站,消耗了40%~60%的網絡流量。網絡機器人不僅消耗網絡資源、影響正常客戶訪問、增加網站運營成本,還會爬取產品、價格信息,形成不正當競爭,甚至混淆網站用戶生態,影響營銷分析。傳統的控制策略通過采取屏蔽頻繁訪問、設置驗證碼等方式防御網絡機器人,無法應對日益智能化的新型網絡機器人。基于“流立方”的互聯網機器防御系統通過在Web服務器上嵌入插件或者獨立的嗅探器(sniffer)程序,將全流量的Web訪問請求旁路到獨立的機器防御集群,進行實時的流量分析及防御決策,并將決策后的結果實時回饋到Web服務器插件中。Web服務器插件在判定當前訪問的設備或者IP地址等是機器人時,能夠自動改寫響應內容,根據不同的風險級別自動拒絕交易或將訪問者引導到第三方圖形驗證碼服務商進行機器人驗證。訪問者在通過驗證后可以繼續正常訪問Web服務。該系統還創新地將設備指紋以及人機識別服務運用到機器防御系統中,不僅增加了可分析維度,提升了控制顆粒度,同時能夠對基于瀏覽器內核的高級爬蟲進行防護。此外,將機器防御規則、數據服務、設備指紋、人機識別以及圖形驗證碼以軟件即服務(software as a service,SaaS)的形式提供服務,進一步降低了互聯網網站客戶的運維門檻,提升了產品競爭力。該機器防御系統工作過程如圖4所示。
基于“流立方”的實時機器防御系統通過多服務器訪問流水關聯決策、長周期數據決策、復雜規則爬蟲識別、設備維度爬蟲識別、人機識別等技術,實現了微秒級(400~800μs)的識別時延,同時具有機器人識別管控一體化、輕量級接入等優點。根據已經接入機器防御服務的幾十家客戶的反饋,基于“流立方”平臺的防御系統對機器人識別覆蓋率在95%以上,準確率為99.9%。該機器防御系統能夠攔截這些客戶業務系統中占原有訪問總流量80%~90%的來自網絡機器人的訪問流量,使得其業務系統服務器的壓力降為原來的10%。由于基于“流立方”的機器防御系統的卓越識別及控制機器人的能力,當前,全國最大的票務平臺正在對此服務進行全面的測試,希望能夠進一步提升其票務服務能力。
此外,基于“流立方”的流式大數據實時處理平臺在智慧交通領域也大有作為。通過實時分析從預埋在全國各地的攝像頭采集的車牌信息,配合地理位置信息服務以及基于地理信息系統(geographic information system,GIS)的最短交通距離計算,實現實時套牌車信息抓取,為進一步打擊違法犯罪服務提供幫助;通過實時分析交叉路口雙向的車流量信息,實時控制每個路口的紅綠燈、智能變換潮汐車道及可變車道,從而大大提升城市的通行效率。
“熱數據”帶來無與倫比的價值,數據從產生開始,其應用價值隨時間的流逝呈現指數式下降,如何充分應用“熱數據”是一個新生事務,是一個長期任務,也是流式大數據處理技術大有可為之處。“流立方”流式大數據實時處理技術和平臺在金融、電信、交通、公安、海關、網絡安全等需要引入“事中”感知分析決策模式的行業都具有廣闊的應用前景。
基于批式大數據,可以不斷學習新的知識,累積新的經驗。然而,在應用這些知識和經驗時,流式大數據更能夠極大限度地挖掘“熱數據”的潛在價值。這使得流式大數據技術具備更有效的應用推廣價值。
流式大數據實時處理是大數據時代信息化的重要抓手。采用“事中”甚至“事前”模式實現感知、分析、判斷、決策等功能的智能系統需要流式大數據實時處理平臺的支撐。此外,流式大數據實時處理可以為大數據驅動的深度學習提供計算框架支撐。“流立方”流式大數據實時處理平臺可為研制融合邏輯推理、概率統計、眾包、神經網絡等多種形態的下一代人工智能統一計算框架提供支持。