玩轉(zhuǎn)大數(shù)據(jù)開發(fā)工具(上下全篇)
為了降低大數(shù)據(jù)應(yīng)用開發(fā)的門檻,簡化開發(fā)過程,星環(huán)隨Transwarp Data Hub 5.0開發(fā)出了大數(shù)據(jù)開發(fā)套件Transwarp Studio。Studio由一套PaaS產(chǎn)品構(gòu)成,提供從提取、存儲、計算、展示的全鏈路大數(shù)據(jù)開發(fā)服務(wù),全面覆蓋大數(shù)據(jù)開發(fā)流水線上的各項(xiàng)環(huán)節(jié),為開發(fā)人員帶來流暢的數(shù)據(jù)分析體驗(yàn)。
隨著TDH 5.1的發(fā)布與性能提升,Studio各個產(chǎn)品也獲得了核心性的改進(jìn)和升級,并擴(kuò)大了家族成員,發(fā)展進(jìn)入一個新的階段。
多維度分析引擎 Rubik
Rubik作為Studio中的多維度分析引擎,用于OLAP Cube的設(shè)計與實(shí)例化,幫助實(shí)現(xiàn)高并發(fā)的百億行規(guī)模高維度SQL交互分析,對海量數(shù)據(jù)分析實(shí)現(xiàn)秒級甚至毫秒級的響應(yīng)。Rubik 5.1在原有版本上得到了多方面的增進(jìn),對六個關(guān)鍵模塊做了提升和豐富,在效率與應(yīng)用性上得到成長。
圖1 Rubik Cube設(shè)計界面
增量構(gòu)建
當(dāng)新增數(shù)據(jù)進(jìn)入系統(tǒng)后,在進(jìn)行Cube模型實(shí)例化時,Rubik不再對數(shù)據(jù)做全量構(gòu)建,而是基于原基礎(chǔ)對新增部分做增量構(gòu)建。Rubik的使用靈活性大幅提升,支持插入舊數(shù)據(jù),以及向主表或碼表插入數(shù)據(jù),同時通過完善增量合并機(jī)制,對增量數(shù)據(jù)立方體做有效的自動管理,在修改歷史數(shù)據(jù)的場景中也能夠快速更新模型實(shí)例,保證Cube模型的準(zhǔn)確性和時效性。
新增降維優(yōu)化策略
Rubik以原有的聚合組、聯(lián)合維度、衍生維度、層次維度、部分維度降維手段為基礎(chǔ),新增必備維度和互斥維度兩種策略。其中必備維度是總會在查詢中用到的一組維度,互斥維度指總是不可能一起出現(xiàn)的一組維度。通過結(jié)合各維度間的維度關(guān)系以及維度自身特征,Rubik會在Cube模型預(yù)計算時,減少建模時實(shí)際的維度組合,縮減建模時間與空間占用。
更多的度量分析函數(shù)
Rubik將支持的度量分析函數(shù)增加到10余個,可以在建模時實(shí)現(xiàn)更加豐富的函數(shù)分析。其中,增加的函數(shù)包括percentile的計算函數(shù),以及精確重寫和誤差重寫兩種SELECT DISTINCT方式:精確重寫的預(yù)計算速度和存儲代價的較大,但是結(jié)果精確;誤差重寫的預(yù)計算和存儲代價小,卻影響精確度,但用戶可以自主決定相對標(biāo)準(zhǔn)差的大小。
更有效的工作流控制
在數(shù)據(jù)量規(guī)模極大的情況下,Cube模型構(gòu)建時間較長,存在失敗風(fēng)險。因此從5.1開始,Rubik將對接Workflow,獲得更方便的調(diào)度和風(fēng)險管控,以及實(shí)現(xiàn)任務(wù)重試、推遲構(gòu)建、調(diào)整構(gòu)建優(yōu)先級等更豐富的功能。
模型導(dǎo)入導(dǎo)出
Rubik允許用戶將Cube模型以JSON文本的方式導(dǎo)入導(dǎo)出平臺,做半自動化的計算構(gòu)建,同時支持跨集群的團(tuán)隊(duì)協(xié)助,方便遠(yuǎn)程診斷。
精細(xì)的權(quán)限控制
Rubik 5.1同安全管控產(chǎn)品Guardian進(jìn)行無縫對接,實(shí)現(xiàn)賦權(quán)操作,用戶可以在Guardian頁面上對Rubik相關(guān)權(quán)限進(jìn)行操作。Guardian為Rubik提供精細(xì)的權(quán)限控制,分別以域、項(xiàng)目、數(shù)據(jù)立方體劃分權(quán)限級別,保證權(quán)限管理的靈活度。
目前,Rubik在金融行業(yè)的實(shí)際的落地項(xiàng)目中,能夠靈活自如的應(yīng)對報表查詢和多維分析的需求,創(chuàng)造極速的高維度分析,同時帶來良好的用戶開發(fā)體驗(yàn)。
基于Web的報表工具
Transwarp Pilot是在5.1中新加入Transwarp Studio家庭的成員。作為輕量的自助式分析BI工具,Pilot克服了傳統(tǒng)BI工具的缺陷,提供智能的分析體驗(yàn),不論是對于可視化報表展現(xiàn)的豐富度,還是對于處理性能,都有極致的表現(xiàn)。
圖2 Pilot報表界面
Pilot覆蓋了用戶對于報表工具的多項(xiàng)關(guān)鍵性需求,可應(yīng)用于多種行業(yè)領(lǐng)域。
輕量
Pilot作為基于Web的報表展現(xiàn)工具,輕量、靈活,可以快速部署,允許用戶在任意移動終端上訪問,隨時隨地用報表展現(xiàn)目標(biāo)業(yè)務(wù)數(shù)據(jù)。Pilot將加速笨重的傳統(tǒng)BI工具成為歷史產(chǎn)品。
豐富的展現(xiàn)
Pilot提供幾十種報表樣式,支持時序數(shù)據(jù),支持?jǐn)?shù)據(jù)預(yù)覽。能夠快速構(gòu)建報表,滿足用戶多種分析需求,使得商業(yè)智能得以以更加豐富的表現(xiàn)形式表展現(xiàn)。
圖3 Pilot支持的圖表類型
極速分析
Pilot充分利用Inceptor分布式引擎加速自助分析,借助列式存儲以及OLAP模型對多維分析的加速能力,提供秒級報表生成和語句分析響應(yīng)速度。幫助業(yè)務(wù)人員有效把握時間,適應(yīng)市場的快速變化。
自助SQL IDE
Pilot內(nèi)置SQL IDE,對接Inceptor調(diào)試執(zhí)行SQL語句。使SQL語句的調(diào)試執(zhí)行與結(jié)果集的圖表生成一氣呵成。
交互式分析體驗(yàn)
Pilot通過拖拽式界面支持自助的儀表盤布局設(shè)計,用戶可將相關(guān)報表組合在同一儀表盤,任意放大縮小報表尺寸,并通過過濾器聚焦關(guān)注內(nèi)容。通過Pilot,用戶可以對報表進(jìn)行有效的觀察和比對,了解趨勢發(fā)現(xiàn)問題,實(shí)現(xiàn)多種數(shù)據(jù)分析需求。
HDFS文件管理
內(nèi)置HDFS文件系統(tǒng)管理模塊,提供HDFS目錄瀏覽,并以可視化的方式取代命令行方式實(shí)現(xiàn)HDFS文件上傳,實(shí)現(xiàn)便捷的HDFS文件管理。
支持多種數(shù)據(jù)源
Pilot可支持多種數(shù)據(jù)源,包括文件、Inceptor以及Oracle、MySQL等關(guān)系數(shù)據(jù)庫。
目前,Pilot在某一網(wǎng)站分析的實(shí)際落地案例中,有效的為內(nèi)部分析人員提供對訪問者以及閱讀量情況的精確、多樣化的報表分析,幫助站運(yùn)營人員實(shí)現(xiàn)網(wǎng)站內(nèi)容管理的調(diào)整和優(yōu)化。
玩轉(zhuǎn)大數(shù)據(jù)開發(fā)套件--下篇
接下來將繼續(xù)介紹Studio 5.1中的三個工具:高吞吐低延遲的日志存儲分析工具M(jìn)ilano、界面化的全新數(shù)據(jù)流同步工具Transporter、以及功能再升級的工作流引擎Workflow。
日志存儲分析 Milano
Milano是Studio家族的第六個新成員,提供集群日志分析服務(wù),既可以用于TDH平臺日志分析,也可以直接作為客戶應(yīng)用的日志處理平臺使用。Milano采用Filebeat+Kafka+Logtash+Elasticsearch+Kibana的架構(gòu),為用戶提供便利的接口實(shí)現(xiàn)日志檢索和統(tǒng)計分析,以及基于日志的預(yù)警功能,克服了傳統(tǒng)方式在大規(guī)模集群中做高級統(tǒng)計分析的障礙,并實(shí)現(xiàn)可視化的監(jiān)測。
Milano提供優(yōu)秀的吞吐量性能,以及低延遲的響應(yīng);保證水平可擴(kuò)展,且不丟數(shù)據(jù);同時提供可靠的安全保護(hù),謹(jǐn)防系統(tǒng)日志的泄漏。因此,其技術(shù)優(yōu)勢可以總結(jié)為以下三點(diǎn):全鏈路高吞吐、全鏈路安全管控、全鏈路高可用。
全鏈路高吞吐
Milano的構(gòu)成組件之中的Kafka和Elasticsearch本身具備高吞吐可擴(kuò)展特性,可以根據(jù)壓力靈活擴(kuò)展。Milano單節(jié)點(diǎn)的每秒日志收集量可達(dá)15000條,3節(jié)點(diǎn)的Milano監(jiān)控集群日志量每日收集可以達(dá)到10億條。同時,Milano保障低延遲的入庫,從日志產(chǎn)生到入庫僅需10秒內(nèi)的時間間隔。
全鏈路安全管控
Milano在日志收集、傳輸、分析等各個環(huán)節(jié)上實(shí)現(xiàn)安全管控。Kafka和Elasticsearch的數(shù)據(jù)通信都經(jīng)過Kerberos加密,保障數(shù)據(jù)在傳輸過程的安全性。每個租戶的數(shù)據(jù)只允許進(jìn)入授權(quán)的Kafka Topic或Elasticsearch Index,使各個租戶日志之間相互隔離,確保數(shù)據(jù)隱私。此外,對于可視化的監(jiān)控界面Kibana,每個用戶都擁有自己的Kibana實(shí)例,通過LDAP實(shí)現(xiàn)安全認(rèn)證。
全鏈路高可用
Milano的高可用性通過以下兩方面保證。首先,Kafka、Elasticsearch自身提供高可用保證,其他無狀態(tài)的組件通過Kubernetes多實(shí)例部署的方式保證高可用。其次,Kafka、Elasticsearch、Filebeat等服務(wù)自身都提供狀態(tài)監(jiān)控,配合告警服務(wù),可保證數(shù)據(jù)高可用,以及數(shù)據(jù)不丟不重。
數(shù)據(jù)流同步 Transporter
Transporter是一款數(shù)據(jù)流控制工具,用于控制數(shù)據(jù)在數(shù)據(jù)源之間的流轉(zhuǎn)和同步。Transporter隨TDH 5.0推出,但當(dāng)時采用文件定義和命令的方式實(shí)現(xiàn)數(shù)據(jù)流轉(zhuǎn)的設(shè)計和實(shí)現(xiàn),對于沒有技術(shù)基礎(chǔ)的用戶比較難上手。因此我們投入Transporter界面化的工作,使之在5.1中正式上線。
Transporter 5.1以圖形化操作取代配置文件編寫,極大提升數(shù)倉構(gòu)建效率。Transporter基于Web提供數(shù)據(jù)流設(shè)計和控制,允許用戶自助設(shè)計數(shù)據(jù)流轉(zhuǎn)的業(yè)務(wù)規(guī)則,提供數(shù)據(jù)實(shí)時同步、ETL、卸數(shù)功能。
近實(shí)時同步
Transporter可對接Oracle GoldenGate、DataStage等ETL工具,并近實(shí)時的將數(shù)據(jù)同步進(jìn)Inceptor;支持讀取MySQL和TxSQL日志,并近實(shí)時同步到數(shù)據(jù)倉庫,同時支持分Shard模式的日志同步;提供分鐘級的數(shù)據(jù)同步方案。
圖形化ETL
Transporter允許用戶在設(shè)計面板上通過拖拽圖形化控件和配置參數(shù),將數(shù)據(jù)源和各種數(shù)據(jù)轉(zhuǎn)換操作定義在數(shù)據(jù)流轉(zhuǎn)流程中。同時支持豐富的數(shù)據(jù)源,除了可以對接Inceptor外,還支持外部數(shù)據(jù)源JDBC、CSV文本和定寬文件。
卸數(shù)功能
Transporter提供從Inceptor卸數(shù)的服務(wù),將數(shù)據(jù)以CSV文件格式導(dǎo)出并存放在HDFS上。
工作流設(shè)計 Workflow
Workflow作為工作流引擎,使工作流的觸發(fā)與執(zhí)行被自動化,大幅簡化工作流調(diào)度設(shè)計與管理工作,圖形化的設(shè)計方式讓作業(yè)任務(wù)之間的邏輯關(guān)系更清晰,業(yè)務(wù)人員可以快速上手。Workflow在Studio 5.1中得到進(jìn)一步升級,設(shè)計界面更豐富,主要的提升點(diǎn)有:增加工作組概念、界面化調(diào)度周期設(shè)置、豐富監(jiān)控頁面內(nèi)容。
新增工作組
Workflow 5.1增加了工作組的概念,支持將任務(wù)以組為單位進(jìn)行組合設(shè)計,實(shí)現(xiàn)調(diào)度和監(jiān)控。工作組提高了工作流設(shè)計的邏輯性,使工作流管理更方便。
調(diào)度周期
Workflow 5.1開始實(shí)現(xiàn)交互式的表達(dá)式設(shè)計頁面,用于配置調(diào)度周期,并提供多周期的調(diào)度支持。
升級的監(jiān)控頁面
Workflow 5.1在監(jiān)控頁面上新增一級子頁面,提供更多的工作流監(jiān)控歷史信息。同時,在工作流監(jiān)控頁的詳情頁面中,用戶可以查看某段指定時間區(qū)間的工作流任務(wù)執(zhí)行詳情。
結(jié)語
大數(shù)據(jù)開發(fā)套件的價值在于,它可以切合大數(shù)據(jù)開發(fā)需求,消除大數(shù)據(jù)開發(fā)工具在用戶體驗(yàn)上的痛點(diǎn),讓大數(shù)據(jù)產(chǎn)品就像日常工具一樣,不論我們是否懂它內(nèi)部的技術(shù)原理,拿到它或者經(jīng)過簡單的學(xué)習(xí)就可以上手使用。今后我們會繼續(xù)投入提升Transwarp Studio的各項(xiàng)能力,構(gòu)建完善的大數(shù)據(jù)生態(tài)體系,使用戶能夠自主打造自己的大數(shù)據(jù)應(yīng)用。