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