5月12日,信服云大數(shù)據(jù)研發(fā)技術(shù)專家Cody在信服云《Tech Talk · 云技術(shù)有話聊》系列直播課上分享了《基于低代碼的數(shù)據(jù)開發(fā)》,詳細(xì)介紹了低代碼平臺(tái)如何提升用戶的數(shù)據(jù)開發(fā)效率,傳統(tǒng)的數(shù)據(jù)倉庫、實(shí)時(shí)計(jì)算開發(fā)、離線計(jì)算開發(fā)場景面臨的挑戰(zhàn)和解決方案,以及信服云大數(shù)據(jù)在安全日志分析、數(shù)據(jù)倉庫方面的數(shù)據(jù)開發(fā)經(jīng)驗(yàn)等內(nèi)容。以下是他分享的內(nèi)容摘要,想要了解更多可以關(guān)注“深信服科技”公眾號觀看直播回放。
一、Studio架構(gòu)和定位
aBDI-Studio是基于aBDI-Base基礎(chǔ)平臺(tái),以數(shù)據(jù)作為經(jīng)營對象,提供全面的數(shù)據(jù)開發(fā)、數(shù)據(jù)管控、數(shù)據(jù)交換、數(shù)據(jù)應(yīng)用能力,打造全生命周期的智能開發(fā)平臺(tái),通過該平臺(tái),可以將低價(jià)值數(shù)據(jù),加工成高價(jià)值數(shù)據(jù)產(chǎn)品和服務(wù)。
Studio 包括數(shù)據(jù)集成、任務(wù)調(diào)度、數(shù)據(jù)服務(wù)、數(shù)據(jù)治理、權(quán)限運(yùn)維、探索開發(fā)。其中,探索開發(fā)包括流數(shù)據(jù)的開發(fā)、融合數(shù)倉的開發(fā)、離線數(shù)據(jù)的開發(fā)、綜合檢索開發(fā)等四大部分。探索開發(fā)關(guān)系到平臺(tái)的開發(fā)效率,也是本次直播的重點(diǎn)內(nèi)容。
aBDI 產(chǎn)品包含兩大部分,一部分是底層 base 平臺(tái),一部分是上層低代碼開發(fā)平臺(tái)Studio。Studio 在 aBDI 產(chǎn)品架構(gòu)中位于上面應(yīng)用層,其功能主要集中在數(shù)據(jù)倉庫開發(fā)、實(shí)時(shí)開發(fā)、離線開發(fā)。數(shù)據(jù)倉庫開發(fā)包含了數(shù)倉的建模、數(shù)倉的質(zhì)量、源數(shù)據(jù)的管理、數(shù)據(jù)資產(chǎn)目錄、數(shù)據(jù)地圖和數(shù)據(jù)服務(wù),以及數(shù)據(jù)同步。
低代碼數(shù)據(jù)開發(fā)平臺(tái)跟傳統(tǒng)的數(shù)據(jù)開發(fā)不同點(diǎn)在于,傳統(tǒng)數(shù)據(jù)開發(fā)用時(shí)較長,中間環(huán)節(jié)較多。以業(yè)務(wù)變化為例,它要先去做一個(gè)業(yè)務(wù)的需求變化確認(rèn),再進(jìn)行代碼開發(fā),代碼開發(fā)完之后聯(lián)調(diào),接著是功能測試和系統(tǒng)部署,最后是停機(jī)發(fā)布。這一整個(gè)流程花費(fèi)時(shí)間較多,效率也不高。
低代碼的應(yīng)用場景,一部分要實(shí)現(xiàn)高穩(wěn)定性,滿足穩(wěn)態(tài)業(yè)務(wù)開發(fā)的維護(hù)需求;同時(shí)也要保障靈活性和通用性,可以適應(yīng)敏態(tài)業(yè)務(wù)快速變化的需求。
基于低代碼的開發(fā)可以簡化這些步驟。針對業(yè)務(wù)變化和需求確認(rèn),用戶只需要做后面的系統(tǒng)配置,聯(lián)調(diào)和測試是在低代碼開發(fā)平臺(tái)直接覆蓋。低代碼開發(fā)平臺(tái)可以說既高效又靈活,不僅節(jié)省了流程需要的時(shí)間,也不需要人力再去做任何配置。
Studio 平臺(tái)的受眾包含四類人群:在數(shù)據(jù)開發(fā)或者應(yīng)用過程中,數(shù)據(jù)開發(fā)者可以編輯和調(diào)度開發(fā)能力,拖拽任務(wù)組件、編排業(yè)務(wù)流程,降低開發(fā)門檻,快速上手;對于數(shù)據(jù)資產(chǎn)的管理人員,可以通過實(shí)現(xiàn)資產(chǎn)的統(tǒng)一管理,平臺(tái)里提供了豐富的資源管理操作功能,包括文件的上傳、下載等;對于運(yùn)維人員來說,通過模型的運(yùn)維可以進(jìn)行數(shù)據(jù)語言的接入配置管理,以及模型運(yùn)行監(jiān)控和異常告警,這樣可以簡化運(yùn)維;對于數(shù)據(jù)分析師來說,平臺(tái)的數(shù)據(jù)探索提供了管道式的檢索語言,最終處理完的數(shù)據(jù)可以通過 spl 去查找數(shù)據(jù),比較自由靈活,屏蔽了底層,不需要感知底層那么復(fù)雜的接口,這解決了編程式探索操作復(fù)雜的痛點(diǎn)。
二、Studio數(shù)據(jù)倉庫開發(fā)
傳統(tǒng)的大數(shù)據(jù)數(shù)倉的建設(shè),一般都是由建模工程師提出分析用戶需求,提供數(shù)倉的建模的指標(biāo)信息,提交給開發(fā)工程師。開發(fā)工程師拿到需求之后進(jìn)行編碼實(shí)現(xiàn),編碼完成后,會(huì)自己去提交測試,測試工程師會(huì)根據(jù)提交的應(yīng)用去測試。測試結(jié)束,應(yīng)用即可發(fā)布。發(fā)布之后,建模工程師就去看發(fā)布后的應(yīng)用,驗(yàn)證模型是否符合用戶的訴求。
在低代碼的開發(fā)平臺(tái),步驟簡化成:數(shù)倉建模工程師會(huì)去分析用戶的需求,借助數(shù)倉的建模平臺(tái)直接開發(fā)數(shù)倉模型,低代碼的大數(shù)據(jù)建模平臺(tái)直接可以給建模的工程師用,可以直接在上面調(diào)試,也不需要寫代碼。模型發(fā)布之后,可以直接看到輸出的結(jié)果,也不需要開發(fā)工程師介入,就直接在一個(gè)平臺(tái)上看到想要的結(jié)果,也可以驗(yàn)證一下模型的輸出是否符合用戶的訴求,以及模型跑完的結(jié)果是否正確。
對比來看,傳統(tǒng)的數(shù)倉建設(shè)參與角色包括建模/開發(fā)工程師、測試工程師等,但Studio 只需要一個(gè)建模工程師,這樣可以減少開發(fā)成本、測試成本、以及溝通成本。同時(shí),Studio 支持可拖拽,通過“拖拽”就可以把一個(gè)模型建好,建模周期大大縮短,由原來“天級別”到了“小時(shí)級別”。模型建完之后,按照傳統(tǒng)的流程需要以周期來發(fā)布,周期可能會(huì)比較久。但是Studio 上的數(shù)倉的建設(shè),剛創(chuàng)建好之后,就可以直接發(fā)布,交付周期也大大縮短。
三、Studio實(shí)時(shí)計(jì)算開發(fā)
傳統(tǒng)方式一般需要寫一段代碼,以Flink 為例,它可能要寫到 Flink 的代碼。在 Flink 的代碼里面,第一部分還要定義一個(gè)數(shù)據(jù)源和一個(gè)數(shù)據(jù)目的。最后數(shù)據(jù)源和目的之間,它會(huì)有個(gè)數(shù)據(jù)算子,比如它要制定一個(gè) map 算子或者是 aggregate 聚合算子或者是轉(zhuǎn)換的算子,模型開發(fā)完之后,進(jìn)行調(diào)試。調(diào)試之后要通過命令行的方式往數(shù)據(jù)源中打入樣例的數(shù)據(jù),然后提交。最后去查看單個(gè)實(shí)時(shí)計(jì)算模型開發(fā)調(diào)試完成的耗時(shí),這樣的開發(fā)流程單次可能需要 8 小時(shí)。
但是在 Studio 里面開發(fā)周期就比較短。首先它要拖一個(gè)數(shù)據(jù)源,然后再拖兩個(gè)數(shù)據(jù)目的,中間是算子。而數(shù)據(jù)源只需要在界面上去配置即可,再配置觸發(fā)條件和數(shù)據(jù)目的。這些也都可以在可視化畫布里面開發(fā)完之后再去配置。配置完成后還可以通過調(diào)試模型的方式調(diào)試,查看數(shù)據(jù)對不對。
四、Studio離線計(jì)算開發(fā)
離線計(jì)算開發(fā)步驟包括:業(yè)務(wù)開發(fā)、資源管理、模型開發(fā)、定時(shí)管理、模型管理。
具體來說,第一步是模型的開發(fā)。開發(fā)人員是要先把算子拖拽到畫布中。第二步,把程序和資源配置到算子中間。比如說要把 Spark 的應(yīng)用或者Flink的應(yīng)用或者一個(gè) Python 的腳本上傳,給應(yīng)用程序運(yùn)行時(shí)使用。第三步,配置一下算子之間的依賴關(guān)系。這里面的算子端就區(qū)分處理類的算子、流程類的算子。當(dāng)上游的算子執(zhí)行成功之后才執(zhí)行下游的算子,在模型開發(fā)中,通過簡單拖拽即可實(shí)現(xiàn)。
aBDI 里面的 Studio 離線開發(fā),底層的技術(shù)實(shí)現(xiàn)跟業(yè)界的方案有些不同,主要是增強(qiáng)穩(wěn)定性和提高易用性。
不同點(diǎn)體現(xiàn)在以下方面:
(1)Studio支持 HA ,去中心化的多 Master 多 Worker ;
(2)對于過載處理,當(dāng)任務(wù)過多時(shí)會(huì)緩存在隊(duì)列中,所有任務(wù)都運(yùn)行在集群中,不會(huì)造成服務(wù)器卡死;
(3)不會(huì)影響正在運(yùn)行的任務(wù)進(jìn)程;
(4)當(dāng)進(jìn)程宕掉的時(shí)候,會(huì)自動(dòng)會(huì)拉起;
(5)監(jiān)控界面上, DAG 監(jiān)控界面支持查看任務(wù)狀態(tài)、任務(wù)類型、重試次數(shù)、任務(wù)運(yùn)行機(jī)器、可視化變量、運(yùn)行時(shí)間、錯(cuò)誤日志;
(6)所有流程定義操作都是可視化的,通過拖拽任務(wù)來繪制DAG,配置數(shù)據(jù)源及資源。同時(shí)對于第三方系統(tǒng)提供API方式操作;
(7)在快速部署上,實(shí)現(xiàn)可視化一鍵部署。
Studio 低代碼平臺(tái)目前主要用在如下三個(gè)場景。第一個(gè)是傳感器的數(shù)據(jù)分析,首先由用戶去采集多個(gè)系統(tǒng)的傳感器數(shù)據(jù),然后聯(lián)動(dòng)多個(gè)系統(tǒng)進(jìn)行數(shù)據(jù)分析,產(chǎn)生告警后及時(shí)輸出告警直觀展示。用戶可以通過 Studio 去完成發(fā)現(xiàn)問題、數(shù)據(jù)采集、數(shù)據(jù)處理轉(zhuǎn)化、可視化的映射、用戶感知的流程等一整套的過程。
第二個(gè)場景是日志分析。平臺(tái)通過數(shù)據(jù)源把日志采集過來,放到消息隊(duì)列之后通過流處理或者是離線的方式處理,之后會(huì)持續(xù)寫到 ES 里,再基于 ES 的結(jié)果,用戶進(jìn)行數(shù)據(jù)的檢索跟行為的分析或者異常分析。Studio也擅長幫助用戶處理有大量并發(fā)寫入的實(shí)時(shí)數(shù)據(jù)、數(shù)據(jù)的存儲(chǔ)、希望能夠?qū)崟r(shí)分析以及從海量日志中提取有價(jià)值的數(shù)據(jù)。
最后一個(gè)場景是數(shù)倉建設(shè),是從數(shù)據(jù)的接入到數(shù)據(jù)的處理、再到數(shù)據(jù)模型的構(gòu)建和數(shù)據(jù)的查詢,這些過程,Studio基本上都能覆蓋到。
以上就是本次直播的主要內(nèi)容。對大數(shù)據(jù)低代碼開發(fā)感興趣的IT朋友可以關(guān)注“深信服科技”公眾號回顧本期直播,了解更多技術(shù)內(nèi)容。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )