如今,隨著企業業務規模的擴張、互聯網應用的普及以及智能硬件的發展,可用的信息量及其規模正在呈現爆發增長的趨勢。從采集到的異構數據中挖掘更深層次的信息并進行深度分析來賦予其價值對于業務發展來說至關重要。并且,這些異構數據的價值在于其時效性,通過對實時流產生的海量數據進行實時處理或進行歷史數據關聯分析等復雜處理可以全方位支持業務決策的制定,而這些都離不開流計算的支持。
Slipstream是星環科技自主研發的一款企業級、高性能實時流計算引擎,通過提供豐富的組件與產品功能可以幫助用戶快速開發實時數據倉庫、實時報表分析、實時智能推薦、實時欺詐檢測與風險控制等應用。目前Slipstream已在金融 、交通、能源、電信、電商等多個行業數百個生產集群中部署使用。
近日,星環科技實時流計算引擎Transwarp Slipstream正式發布9.0版本,新版本新增了無窗口關聯功能,在聚合計算能力上進行了深度優化,充分提升了實時報表分析能力。Slipstream9.0借助引擎新特性,打破了窗口的局限性,進一步簡化了大屏展示、實時報表等業務的開發,全面保證了數據的時效性和正確性,做到和實時同步任務幾乎相同時延,產品的實時性提升了一個新臺階。本文將重點介紹全新的Slipstream9.0及其可視化開發監控工具Slipboard帶來的全新功能以及在性能上帶來的提升。
產品優勢
隨著流計算的不斷發展,客戶可以使用流計算引擎開發出越來越復雜的實時應用來實現對數據價值的挖掘。Slipstream是企業級流計算引擎,可以全方位支持用戶在不同業務場景下的應用。例如在實時數倉方面,Slipstream可以很好地應對上百任務、近萬Task并發的數據同步,并做到自動容災、實時告警、數據不丟不重,這些核心特性在某港務公司和制藥公司得到了很好的落地。相對于采用編程方式開發流應用,Slipstream主要核心優勢包括:
SQL兼容性極高
Slipstream通過SQL的方式為用戶提供開發接口,完整支持NSI SQL 2003、2016標準,提供豐富的算子、函數,滿足大多數流處理場景。相比以往流處理平臺的高技術門檻,用戶使用Slipstream無需編碼,省去項目構建發布打包等流程,僅通過SQL即可輕松上手開發部署應用,大幅度降低用戶開發以及學習成本。并且,Slipstream支持豐富的存儲類型,對星環各類數據庫產品以及其他第三方產品提供良好支持,全方位滿足用戶在各類業務場景下的使用需求。通過配合Slipboard可視化流應用開發及管理工具,也可以在界面生成流應用,并實時監控任務狀態,配置告警規則等。此外,采用編程方式可能對性能的影響不可控,無法將引擎性能發揮到極致。Slipstream就數據處理和訪問進行了諸多優化,例如使用SQL可以無縫對接引擎內部。
高可用支持
Slipstream支持服務高可用及任務高可用。支持端到端Exactly-Once,任務自動故障恢復,多種狀態存儲和Checkpoint存儲選擇,滿足各種高可用場景需求。在服務發生故障時,將業務的影響程度降到最低,高效提升故障恢復速度。隨著流計算的不斷發展,用戶可以使用Slipstream開發出越來越復雜的實時應用來實現對數據的價值挖掘,例如金融領域的反洗錢反欺詐、交通領域的人車路管控、道路交通運行態勢預警研判等。
新版本優化與新增功能
Slipstream9.0在性能和功能上都實現了全面增強,接下來將為您介紹此系列版本帶來的全新變化。
全新功能加持
新增規則引擎V3,助力用戶靈活配置業務規則,提高開發效率
規則引擎是處理復雜規則集合的引擎。通過模擬業務決策過程,根據預設規則庫中預定義的語義模塊處理事件并觸發相應操作得到最終的執行結果。規則引擎的核心作用在于將復雜、易變的規則與應用系統的執行邏輯分離,由靈活可變的規則來描述業務需求。其大大降低了系統的維護成本,使企業的決策能夠更加快速的反應到應用系統中。規則引擎通常由三部分組成,即規則庫、事實收集和推理引擎。規則是由條件和結論組成的推理語句,可以進行推演或歸納。當事實滿足條件時,相應的結論被激活。此類引擎廣泛應用于銀行信貸、交易風控、反洗錢、業務發展等諸多領域。Slipstream在9.0新增了規則引擎V3,其充分兼容Drools語法,支持本地調試,提供異步接口,訪問數據庫的同時可以保證高吞吐。通過內置規則引擎,可助力用戶靈活配置業務規則,分離應用開發者的技術決策和商業決策者的商業決策邏輯,有效提高復雜邏輯的代碼的可維護性,提高開發效率。
異步運行UDF,提升處理性能
Slipstream為用戶提供了許多的解決方案來處理復雜的業務場景,但是隨著用戶業務規模的增長,原生函數很難應對一些復雜情況。因此,Slipstream支持用戶使用UDF(User-Defined Functions自定義函數)。但是,一些用戶定義的函數在使用過程中必須等待資源,在等待時,計算線程極易被阻塞而影響性能。因此,Slipstream支持異步運行UDF,其使用多路復用線程模型,異步非阻塞的處理數據,從而提升UDF處理性能。
無窗口流流Join,避免窗口出現數據進度不一致等風險
Join是處理數據流的重要操作符之一,為了在無限的數據流上連續產生輸出,通常使用窗口來限制join處理的范圍。但是,在同一個窗口的兩個數據流之間進行join往往存在數據亂序或者延時的情況,導致兩個流的數據進度不一致,出現數據跨窗口的情況,那么數據就無法在同一個窗口內join。并且,窗口無法支持時間跨度較大的延遲。因此,為了避免上述問題的產生,Slipstream9.0支持用戶無需創建窗口即可實現流流Join。
新增KeyByte存儲支持,業務邏輯涉及KeyByte時可以高效開發管理
Slipstream9.0新增KeyByte存儲支持,其引擎內置支持輸出到KeyByte,并提供查詢功能。在過往版本中,用戶在進行數據查詢時,需要先查詢KeyByte,再去跟表進行聯合查詢。并且,當數據需要進行更新時,需要單獨寫程序。在引進KeyByte后,用戶可以直接拿KeyByte的數據來做計算,并且可以直接更新KeyByte數據,無需再單獨寫程序來跟KeyByte做交互,可以同步進行資源管理。
新增json字段類型,充分提升產品易用性
Slipstream9.0支持SQL 2016 標準中json的創建和訪問,新增json 字段、以及豐富的查詢和編輯json功能,為json提供更全的支持,整體簡化了json 對象的處理,極大程度地提升了Slipstream的易用性。
關鍵性能提升
引進無鎖隊列和多路復用技術,改善流控機制,提高吞吐
如果流任務中有聚合計算,就需要對數據進行Shuffle,使相同聚合key的數據匯聚到同一個節點計算。為了提升Shuffle性能,Slipstream引進了無鎖隊列,在并發量高的環境下有效避免了使用鎖帶來的性能損失,并避免了死鎖問題。另外,數據源消費環節也使用了無鎖隊列,支持異步拉取Event Store、RabbitMQ等數據,處理速度更快。流控與背壓是Shuffle的重要一環,當下游處理能力下降的時候,通過流控和背壓很好地控制住上游數據的拉取速率,減小集群的負載,保障了服務的穩定。Slipstream在使用無鎖隊列的同時,改善流控機制,采用多路復用技術,非阻塞傳遞數據與消息,任務之間共享TCP連接,充分利用資源并控制內存使用,使流上Shuffle性能步入一個新臺階。
狀態與高可用優化,提升故障恢復效率
分布式流處理系統被用來處理不斷擴展的實時數據,它能夠組織共享的分布式計算資源并實時處理多個數據流。但是,一旦發生系統故障,單個節點的故障會中斷甚至停止整個流處理進程,導致數據集不完整以及結果不準確,最終危及對數據較為敏感的應用程序(例如,醫療監控、財務分析和警報系統)。因此,流計算系統的容錯機制十分重要。容錯機制的核心是checkpoint(檢查點)。Checkpoint是一個全局的程序快照,通過定期執行checkpoint來對狀態變量的內容進行快照并進行持久化存儲。當發生故障時,可以使用最新的checkpoint進行重啟。然而,隨著業務量與數據規模的增長,創建checkpoint的時間會十分耗時并且消耗大量資源。Slipstream基于屏障機制實現了輕量級的異步checkpoint技術,通過定期觸發任務檢查點,將對應時刻的任務狀態持久化到分布式存儲上來保證系統崩潰下計算的一致性,保證了系統高可用和高效率。并且,為了避免資源的浪費并降低故障恢復的時長,Slipstream引入RocksDB作為狀態存儲,支持增量checkpoint,使用RocksDB內置的備份機制來合并檢查點數據。這樣,checkpoint的數據會自動合并老的檢查點數據并自動清理,從而保障故障恢復的效率。此外,Slipstream9.0可將checkpoint的數據存于Event Store中,進一步避免由于讀寫頻繁所導致的性能影響。
對數據處理和拷貝進行優化,充分提升mapjoin性能
MapJoin簡單來說就是在Map階段將小表讀入內存,順序掃描大表完成Join。在CPU使用率比較高的時候mapJoin的性能很容易受到影響。在運行時基本類型的自動裝箱一定程度上降低了性能并消耗額外的內存,codegen減少了數據轉換的周期消耗,避免了資源的浪費,整體性能有所提高。因此,Slipstream通過codegen技術充分提升了mapjoin性能,有效避免了性能退化。
優化Source Event Store Offset重置策略,方便進行數據回溯,提升整體易用性
當第一次啟動流任務的時候,會從Event Store最新的Offset開始讀取,但是有時候需要消費任務啟動之前的數據。Slipstream優化了靈活的消費Event Store Offset策略,支持用戶按Offset ,按時間來重置,更加方便靈活,可以有效防止數據丟失。
優化可視化開發監控工具Slipboard,全方位提升監控、運維、告警功能
傳統的監控系統展現能力比較弱,Slipstream結合多年來實際生產部署的管理運維經驗,深入分析實時處理監控的痛點,開發了一套完整的指標收集框架,并通過Slipboard 進行配置管理和監控。例如任務監控到故障數據后進行預警和告警,對集群的整體運行狀況進行監控,提供任務處理的延遲、吞吐、實時數據量、使用資源等豐富指標。除了告警、輔助用戶進行頁面運維以外,Slipboard還提供了一套圖形化的任務設計接口,降低了對應用開發人員的技術門檻要求,降低了開發人員的學習成本,進一步提高了應用開發的效率。
總結
實時分析在應用場景中至關重要,通過對實時數據進行實時處理,用戶可以快速制定出可行的業務決策,防止數據價值的流失。星環Slipstream實時流計算引擎已為上千家行業用戶提供實時的數據采集、存儲、查詢、處理等服務。用戶通過使用Slipstream可以快速開發出一系列應用,充分應用于欺詐檢測、實時風控、實時推薦、設備故障檢測、預測性維護等應用場景。例如,基于星環實時流計算引擎Slipstream構建的實時郵政監管平臺每天都會有上億的異構數據寫入,在確保數據高并發寫入的同時需要保障數據不丟不重,入庫即可進行查詢和分析。通過Slipstream,平臺實現了不同結構數據的高并發寫入,寫入性能達到了數百萬記錄/秒,每天接入70億業務數據,累計接入了PB級海量數據,具備數據采集、存儲、處理、加工等一系列重要功能,幫助實現了離線業務、在線業務的即席秒級查詢分析、秒級上億數據的交互式復雜查詢、分析、探索等應用需求。實時數據處理可以幫助多個應用領域,例如股票交易、新產品監控、欺詐檢測和監管合規監控,通過實時警報和實時分析支持趨勢感知和決策制定。并且,實時任務的故障更可能給企業造成經濟損失,嚴重的甚至會導致生產事故,因此,實時處理的監控也尤為重要。Slipstream通過配合Slipboard可視化流應用開發及管理工具,可以在界面生成流應用,并實時監控任務狀態,配置告警規則,實現系統與應用級實時監控,高效保障系統的穩定運行。此次,Slipstream9.0在產品易用性、性能、開發效率、存儲成本等方面實現了全面升級。未來,Slipstream將持續對更多核心優勢進行迭代與升級,幫助用戶挖掘實時數據價值。