十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
本篇文章為大家展示了Wormhole大數(shù)據(jù)流式處理平臺(tái)的設(shè)計(jì)思想是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)10余年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的營(yíng)銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都工商代辦等企業(yè),備受客戶贊賞。
導(dǎo)讀:互聯(lián)網(wǎng)的迅猛發(fā)展使得數(shù)據(jù)不再昂貴,而如何從數(shù)據(jù)中更快速獲取價(jià)值變得日益重要,因此,數(shù)據(jù)實(shí)時(shí)化成為了一個(gè)大趨勢(shì)。越來(lái)越多的業(yè)務(wù)場(chǎng)景需要實(shí)時(shí)分析,以極低的延遲來(lái)分析實(shí)時(shí)數(shù)據(jù)并給出分析結(jié)果,從而提高業(yè)務(wù)效率,帶來(lái)更高價(jià)值。流式處理作為實(shí)時(shí)處理的一種重要手段,正在因數(shù)據(jù)實(shí)時(shí)化的發(fā)展而蓬勃發(fā)展。本文是敏捷大數(shù)據(jù)(Agile BigData)背景下的實(shí)時(shí)流式處理平臺(tái)Wormhole的開(kāi)篇介紹:Wormhole具體是一個(gè)怎樣的平臺(tái)?
在流式計(jì)算領(lǐng)域,越來(lái)越多成熟的技術(shù)框架出現(xiàn)在開(kāi)源世界,如Storm、Heron、Spark、Samza、Flink、Beam等。流式技術(shù)也逐步進(jìn)化發(fā)展,支持流上豐富計(jì)算語(yǔ)法(類SQL)、支持at least once或exactly once語(yǔ)義、支持高可靠高可用、支持高吞吐低延遲、支持基于事件時(shí)間計(jì)算、支持統(tǒng)一整合接入抽象等,這些都從不可能變?yōu)榭赡堋?/p>
然而,雖然流式處理的技術(shù)已經(jīng)很豐富,流式處理在企業(yè)中的實(shí)施仍然存在較大難度,主要原因是成本高,需求上線周期長(zhǎng)等,而產(chǎn)生這樣問(wèn)題的原因又分兩個(gè)方面,一是企業(yè)組織結(jié)構(gòu),二是技術(shù)。
傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)和BI的組織結(jié)構(gòu)都是集中相關(guān)技術(shù)人員成立獨(dú)立大數(shù)據(jù)部門(mén),各個(gè)業(yè)務(wù)部門(mén)向其提需求,做定制化開(kāi)發(fā)。
(企業(yè)組織結(jié)構(gòu))
如上圖,大數(shù)據(jù)部門(mén)不僅僅做大數(shù)據(jù)環(huán)境運(yùn)維,還做定制化開(kāi)發(fā)和線上業(yè)務(wù)維護(hù)。恰恰這兩點(diǎn)會(huì)消耗大量的人力,也增加了管理和溝通成本。舉一個(gè)需求開(kāi)發(fā)的例子,如下圖:
(需求開(kāi)發(fā)流程)
上圖是企業(yè)普遍使用的一個(gè)開(kāi)發(fā)流程,這里邊就反應(yīng)出一些問(wèn)題:
人力成本高
從此圖可以看出,至少需要3個(gè)角色的人員才能完成一個(gè)需求,而且流式開(kāi)發(fā)人員要花很多時(shí)間了解需求、業(yè)務(wù)、表結(jié)構(gòu)等等。
上線周期長(zhǎng)、效率低
所有需求都是由產(chǎn)品人員提出,由業(yè)務(wù)人員分析,然后與流式開(kāi)發(fā)人員一起設(shè)計(jì)開(kāi)發(fā)完成,且需要大量時(shí)間測(cè)試及驗(yàn)證結(jié)果。
復(fù)用低
在需求中,有很多業(yè)務(wù)是類似的,但因業(yè)務(wù)和定制化問(wèn)題,所以無(wú)法很好的做到代碼復(fù)用,導(dǎo)致重復(fù)開(kāi)發(fā)比較多。
業(yè)務(wù)維護(hù)成本高
當(dāng)上線的需求有變化時(shí),就要在原有代碼的基礎(chǔ)上改造,流式處理開(kāi)發(fā)人員也需要再一次了解業(yè)務(wù)流程、表結(jié)構(gòu)等等,還是需要很多的人力資源,并且周期也很長(zhǎng),同時(shí)改動(dòng)會(huì)增加出問(wèn)題的概率。
大量消耗資源
為了功能隔離和降低維護(hù)難度,每個(gè)定制化功能都要啟動(dòng)一個(gè)流式應(yīng)用,無(wú)法復(fù)用,需要占用大量硬件資源。
目前流式處理的種種問(wèn)題很大的制約了企業(yè)實(shí)時(shí)大數(shù)據(jù)的發(fā)展,各個(gè)公司都在尋找一條更輕量的解決之道。我們根據(jù)多年在實(shí)時(shí)大數(shù)據(jù)項(xiàng)目中的實(shí)踐和經(jīng)驗(yàn)積累,自主研發(fā)了流式處理平臺(tái)——Wormhole,很大程度上解決了上述各類問(wèn)題。下面我們來(lái)介紹一下Wormhole的具體情況。
Wormhole是一個(gè)面向?qū)崟r(shí)大數(shù)據(jù)項(xiàng)目實(shí)施者的流式處理平臺(tái),致力于統(tǒng)一并簡(jiǎn)化大數(shù)據(jù)開(kāi)發(fā)和管理,尤其針對(duì)典型流式實(shí)時(shí)/準(zhǔn)實(shí)時(shí)數(shù)據(jù)處理應(yīng)用場(chǎng)景,屏蔽了底層技術(shù)細(xì)節(jié),提供了極低的開(kāi)發(fā)門(mén)檻。項(xiàng)目實(shí)施者只需簡(jiǎn)單配置及編寫(xiě)SQL即可支持大部分業(yè)務(wù)場(chǎng)景,使得大數(shù)據(jù)業(yè)務(wù)系統(tǒng)開(kāi)發(fā)和管理變得更加輕量、可控可靠。
(Wormhole數(shù)據(jù)處理樣例)
Wormhole主要基于Spark技術(shù),實(shí)現(xiàn)了基于SQL的流上數(shù)據(jù)處理和異構(gòu)系統(tǒng)冪等寫(xiě)入等相關(guān)功能。如上圖所示,Wormhole接入流上的數(shù)據(jù),然后將數(shù)據(jù)中的出生日期通過(guò)用戶編寫(xiě)的SQL處理為年齡,寫(xiě)入到另外一個(gè)存儲(chǔ)系統(tǒng)中。
Wormhole通過(guò)技術(shù)手段實(shí)現(xiàn)基于SQL的流式處理方案,大大降低了流式處理的技術(shù)門(mén)檻;同時(shí)通過(guò)平臺(tái)化和可視化等實(shí)現(xiàn)了職能的變化,減少了整個(gè)需求生命周期的參與角色數(shù)量,精煉了整個(gè)開(kāi)發(fā)過(guò)程,進(jìn)而縮短了開(kāi)發(fā)周期,也減少了開(kāi)發(fā)和維護(hù)成本。
基于敏捷大數(shù)據(jù)的思想,Wormhole的設(shè)計(jì)目標(biāo)如下:
平臺(tái)化/組件化
通過(guò)平臺(tái)化支持,組件化組裝實(shí)施,可以快速對(duì)原型進(jìn)行驗(yàn)證,和需求方形成反饋閉環(huán)快速迭代
標(biāo)準(zhǔn)化
對(duì)數(shù)據(jù)格式進(jìn)行標(biāo)準(zhǔn)化,達(dá)到通用效果,減少數(shù)據(jù)格式化和維護(hù)的成本
配置化/可視化
用戶可視化配置、部署、管理、監(jiān)控,降低大數(shù)據(jù)產(chǎn)品開(kāi)發(fā)門(mén)檻,確保高質(zhì)量產(chǎn)出
低延遲/高性能/高可用
根據(jù)實(shí)時(shí)性的要求,流式處理要求更低的延遲,并且要求更高的吞吐量,以及容錯(cuò)能力,保證系統(tǒng)7*24正常運(yùn)行
自助化/自動(dòng)化
讓企業(yè)從數(shù)據(jù)中心化轉(zhuǎn)型為平臺(tái)服務(wù)化,讓每個(gè)數(shù)據(jù)從業(yè)者都能夠有更多的自助服務(wù),并釋放數(shù)據(jù)處理能力,系統(tǒng)替代人工完成重復(fù)低級(jí)的工作,讓從業(yè)者回歸數(shù)據(jù)和業(yè)務(wù)本質(zhì)
Wormhole平臺(tái)的建設(shè)帶來(lái)的效果主要體現(xiàn)在以下幾方面:
組織結(jié)構(gòu)更合理:
如下圖,大數(shù)據(jù)相關(guān)部門(mén)不再做定制化開(kāi)發(fā)和業(yè)務(wù)維護(hù),而是更專注平臺(tái)化和大數(shù)據(jù)環(huán)境的穩(wěn)定,大大減少了人力資源的浪費(fèi)。
(基于Wormhole的組織結(jié)構(gòu))
降低了流式處理開(kāi)發(fā)的技術(shù)門(mén)檻:
流式處理的開(kāi)發(fā)模式變?yōu)榱藰I(yè)務(wù)人員通過(guò)可視化配置和編寫(xiě)SQL即可完成80%以上的業(yè)務(wù)場(chǎng)景,不再需要對(duì)流式處理技術(shù)有很深的理解
縮短了需求上線周期:
如下圖所示基于Wormhole的需求開(kāi)發(fā)流程,一個(gè)需求從提出到上線只需要產(chǎn)品人員和業(yè)務(wù)人員,大幅降低了溝通和學(xué)習(xí)成本,進(jìn)而大大縮短了需求開(kāi)發(fā)上線周期。
(Wormhole流程設(shè)計(jì)圖)
上圖是Wormhole的一個(gè)設(shè)計(jì)介紹,體現(xiàn)了流式處理的從輸入到輸出的過(guò)程,在這個(gè)過(guò)程中,Wormhole定義新的概念,將整個(gè)流式處理進(jìn)行了標(biāo)準(zhǔn)化,將定制化的流式計(jì)算變?yōu)闃?biāo)準(zhǔn)化的流式處理,并從三個(gè)緯度進(jìn)行了高度抽象。
統(tǒng)一數(shù)據(jù)邏輯表命名空間——Namespace
Namespace:數(shù)據(jù)的“IP”,通過(guò)7層結(jié)構(gòu)唯一定位數(shù)據(jù)對(duì)應(yīng)的物理位置,即
[Data System].[Instance].[Database].[Table].[Table Version]. [Database Partition].[Table Partition]
1)統(tǒng)一通用流消息協(xié)議——UMS
UMS是Wormhole定義的流消息協(xié)議規(guī)范
UMS試圖抽象統(tǒng)一所有結(jié)構(gòu)化消息
UMS自身攜帶結(jié)構(gòu)化數(shù)據(jù)Schema信息,方便數(shù)據(jù)處理
UMS支持每一個(gè)消息中存在一份Schema信息及多條數(shù)據(jù)信息,這樣,在存在多條數(shù)據(jù)時(shí)可以降低數(shù)據(jù)大小,提高處理效率
說(shuō)明:
protocol-type目前支持data_increment_data(增量數(shù)據(jù))和data_initial_data(初始化全量數(shù)據(jù))
schema-namespace指定數(shù)據(jù)對(duì)應(yīng)的namespace
schema-fields描述每個(gè)字段的名稱、類型、是否可空。ums_id_代表記錄id,要求保證遞增;ums_op_代表數(shù)據(jù)操作(i:插入;u:更新;d:刪除);ums_ts_代表數(shù)據(jù)更新時(shí)間
payload-tuple指一條記錄的內(nèi)容,與schema-fields一一對(duì)應(yīng)
注:在Wormhole_v0.4.0版本后,應(yīng)社區(qū)需求,支持用戶自定義半結(jié)構(gòu)化JSON格式
2)統(tǒng)一數(shù)據(jù)計(jì)算邏輯管道——Flow
Flow是Wormhole抽象的流式處理邏輯管道
Flow由Source Namespace、Sink Namespace和處理邏輯構(gòu)成
Flow支持UMS和自定義JSON兩種消息協(xié)議
Flow支持Event和Revision兩種Sink寫(xiě)入模式
Flow統(tǒng)一計(jì)算邏輯標(biāo)準(zhǔn)(SQL/UDF/接口擴(kuò)展)
(Flow)
說(shuō)明:上圖中藍(lán)色框和箭頭組成了一個(gè)Flow,首先從TopicA中讀取Namespace1 (SourceNamespace)的數(shù)據(jù),數(shù)據(jù)協(xié)議為UMS或者自定義JSON,然后處理用戶配置好的數(shù)據(jù)處理邏輯,輸出到Namespace2 (SinkNameSpace)對(duì)應(yīng)的數(shù)據(jù)系統(tǒng)中,寫(xiě)入支持insertOnly和冪等(對(duì)同key且不同狀態(tài)的數(shù)據(jù)保證最終一致性)。
作為一個(gè)實(shí)時(shí)大數(shù)據(jù)流式處理平臺(tái),Wormhole的設(shè)計(jì)目標(biāo)和設(shè)計(jì)規(guī)范最終都是為流上處理數(shù)據(jù)而服務(wù)。
上述內(nèi)容就是Wormhole大數(shù)據(jù)流式處理平臺(tái)的設(shè)計(jì)思想是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。