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