DataWorks數(shù)據(jù)服務(wù)對(duì)接DataV最佳實(shí)踐
DataV通過(guò)與DataWorks數(shù)據(jù)服務(wù)的對(duì)接,通過(guò)交互式分析Hologres連接DataWorks數(shù)據(jù)服務(wù)開(kāi)發(fā)并生成API,快速在DataV中調(diào)用API并展現(xiàn)MaxCompute的數(shù)據(jù)分析結(jié)果。
數(shù)據(jù)服務(wù)對(duì)接DataV產(chǎn)生背景
MaxCompute是阿里巴巴集團(tuán)自主研究的快速、完全托管的TB、PB和EB級(jí)數(shù)據(jù)倉(cāng)庫(kù)解決方案。當(dāng)今社會(huì)數(shù)據(jù)收集的方式不斷豐富,行業(yè)數(shù)據(jù)大量積累,導(dǎo)致數(shù)據(jù)規(guī)模已增長(zhǎng)到傳統(tǒng)軟件行業(yè)無(wú)法承載的海量級(jí)別。MaxCompute服務(wù)于批量結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和計(jì)算,已經(jīng)連續(xù)多年穩(wěn)定支撐阿里巴巴全部的離線分析業(yè)務(wù)。
過(guò)去,如果您想要通過(guò)DataV展示海量數(shù)據(jù)的分析結(jié)果,需要自建一套離線數(shù)據(jù)計(jì)算自動(dòng)導(dǎo)入MySQL的任務(wù)流程,過(guò)程繁瑣且成本高?,F(xiàn)在通過(guò)DataWorks為您提供的
的全鏈路數(shù)據(jù)研發(fā)平臺(tái),結(jié)合MaxCompute即可快速搭建企業(yè)數(shù)倉(cāng)。DataWorks數(shù)據(jù)服務(wù)提供了快速將數(shù)據(jù)表生成API的功能,通過(guò)可視化的向?qū)J讲僮?,無(wú)需代碼便可快速生成API,然后通過(guò)DataV調(diào)用API并在大屏中展示數(shù)據(jù)分析結(jié)果,高效實(shí)現(xiàn)數(shù)倉(cāng)的開(kāi)發(fā)和數(shù)據(jù)的展示。
前提條件
要想實(shí)現(xiàn)DataWorks數(shù)據(jù)服務(wù)與DataV的對(duì)接,您需要提前準(zhǔn)備好數(shù)據(jù)源,并開(kāi)通什么是DataV數(shù)據(jù)可視化。
新建數(shù)據(jù)源
數(shù)據(jù)服務(wù)支持豐富的數(shù)據(jù)源類型,如下所示:
關(guān)系型數(shù)據(jù)庫(kù):RDS、DRDS、MySQL、PostgreSQL、Oracle和SQL Server
分析型數(shù)據(jù)庫(kù):AnalyticDB
NoSQL數(shù)據(jù)庫(kù):TableStore和MongoDB
登錄DataWorks控制臺(tái),切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的數(shù)據(jù)服務(wù),在下拉框中選擇對(duì)應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)服務(wù)。
鼠標(biāo)懸停至,單擊新建數(shù)據(jù)源,跳轉(zhuǎn)至數(shù)據(jù)源列表頁(yè)面。
單擊新增數(shù)據(jù)源,在新增數(shù)據(jù)源對(duì)話框中,選擇數(shù)據(jù)源類型為Hologres。
本文將以Hologres數(shù)據(jù)源為例,通過(guò)Hologres數(shù)據(jù)源可以直接實(shí)時(shí)查詢MaxCompute中的數(shù)據(jù)。
配置新增Hologres數(shù)據(jù)源的相關(guān)參數(shù)。
說(shuō)明如果是標(biāo)準(zhǔn)環(huán)境,請(qǐng)同時(shí)配置開(kāi)發(fā)和生產(chǎn)環(huán)境。
參數(shù)
描述
數(shù)據(jù)源名稱
數(shù)據(jù)源名稱必須以字母、數(shù)字、下劃線組合,且不能以數(shù)字和下劃線開(kāi)頭。
數(shù)據(jù)源描述
對(duì)數(shù)據(jù)源進(jìn)行簡(jiǎn)單描述,不得超過(guò)80個(gè)字符。
Hologres實(shí)例
需要同步的Hologres實(shí)例ID。切換地域,找到目標(biāo)Hologres實(shí)例。
說(shuō)明如果沒(méi)有Hologres實(shí)例,可根據(jù)界面提示,單擊創(chuàng)建實(shí)例。
數(shù)據(jù)庫(kù)名
Hologres的數(shù)據(jù)庫(kù)名稱。
單擊測(cè)試連通性。
測(cè)試連通性通過(guò)后,單擊完成。
新建API
數(shù)據(jù)源創(chuàng)建完成后,進(jìn)入數(shù)據(jù)服務(wù)頁(yè)面。本文以向?qū)J缴葾PI為例,為您介紹如何新建API。
單擊左上角的圖標(biāo),選擇
,進(jìn)入數(shù)據(jù)服務(wù)頁(yè)面。鼠標(biāo)懸停至,選擇
。配置生成API對(duì)話框中的參數(shù)。
參數(shù)
描述
API名稱
支持中文、英文、數(shù)字、下劃線,且只能以英文或中文開(kāi)頭,4~50個(gè)字符。
API Path
API存放的路徑,例如/user。
協(xié)議
目前支持HTTP和HTTPS協(xié)議。
請(qǐng)求方式
目前支持GET和POST請(qǐng)求方式。
返回類型
目前僅支持JSON返回類型。
描述
對(duì)API進(jìn)行簡(jiǎn)要描述。
配置完成后,單擊確認(rèn),即可進(jìn)入API參數(shù)配置頁(yè)面。
配置API參數(shù)
在選擇表模塊, 選擇數(shù)據(jù)源類型Hologres、數(shù)據(jù)源名稱和數(shù)據(jù)表名稱。
說(shuō)明您需要提前在數(shù)據(jù)集成中配置好數(shù)據(jù)源,數(shù)據(jù)表下拉框支持表名搜索。
創(chuàng)建好API后,會(huì)自動(dòng)跳轉(zhuǎn)至數(shù)據(jù)表配置頁(yè)面,您可以直接進(jìn)行配置。
在環(huán)境配置模塊,設(shè)置內(nèi)存和超時(shí)時(shí)間。
選擇好數(shù)據(jù)表后,下方的選擇參數(shù)模塊會(huì)自動(dòng)列出該表的所有字段。勾選需要設(shè)為請(qǐng)求參數(shù)和設(shè)為返回參數(shù)的字段,分別添加至請(qǐng)求參數(shù)和返回參數(shù)列表中。
編輯請(qǐng)求參數(shù)信息。
單擊頁(yè)面右側(cè)的請(qǐng)求參數(shù),設(shè)置參數(shù)名稱、參數(shù)類型、操作符、是否必填、示例值、默認(rèn)值和描述。
編輯返回參數(shù)信息。
單擊頁(yè)面右側(cè)的返回參數(shù),設(shè)置參數(shù)名稱、參數(shù)類型、示例值和描述,并可以進(jìn)行返回結(jié)果分頁(yè)和使用過(guò)濾器等高級(jí)配置。
配置過(guò)程中需要注意返回結(jié)果分頁(yè)的設(shè)置:
如果不開(kāi)啟返回結(jié)果分頁(yè),則API默認(rèn)最多返回2,000條記錄。
如果返回結(jié)果可能超過(guò)2,000條,請(qǐng)開(kāi)啟返回結(jié)果分頁(yè)功能。
測(cè)試API
完成API參數(shù)的配置并保存后,單擊右上角的測(cè)試,即可進(jìn)入API測(cè)試環(huán)節(jié)。
填寫(xiě)參數(shù)值,單擊開(kāi)始測(cè)試,即可在線發(fā)送API請(qǐng)求,在右側(cè)可以查看API請(qǐng)求詳情及返回內(nèi)容。如果測(cè)試失敗,請(qǐng)仔細(xì)查看錯(cuò)誤提示并進(jìn)行相應(yīng)的修改重新測(cè)試。
發(fā)布API
完成API測(cè)試后,返回服務(wù)開(kāi)發(fā)頁(yè)面。
單擊發(fā)布,即可成功生成一個(gè)數(shù)據(jù)API。
發(fā)布完成后,單擊右上角服務(wù)管理查看API詳情。
如果您需要調(diào)用API,請(qǐng)進(jìn)入服務(wù)管理API調(diào)用頁(yè)面,數(shù)據(jù)服務(wù)為您提供簡(jiǎn)單身份認(rèn)證(AppCode)和加密簽名身份認(rèn)證(AppKey&AppSecret)兩種認(rèn)證方式,您可以自由選擇。下文將為您介紹如何在DataV中進(jìn)行數(shù)據(jù)服務(wù)API的調(diào)用。
添加數(shù)據(jù)服務(wù)為數(shù)據(jù)源
登錄DataV控制臺(tái)。
進(jìn)入我的數(shù)據(jù)頁(yè)面,單擊添加數(shù)據(jù)。
填寫(xiě)添加數(shù)據(jù)對(duì)話框中的配置。
參數(shù)
描述
類型
添加的數(shù)據(jù)源類型。
自定義數(shù)據(jù)源名稱
數(shù)據(jù)源的顯示名稱,可以自由命名。
項(xiàng)目
選擇DataWorks工作空間。
AppKey/AppSecret
擁有DataWorks數(shù)據(jù)服務(wù)中某一項(xiàng)目訪問(wèn)權(quán)限的賬號(hào)的AppKeyID和AppSecret。
說(shuō)明您可以登錄DataWorks數(shù)據(jù)服務(wù)控制臺(tái),進(jìn)入
頁(yè)面進(jìn)行查看。
在大屏中調(diào)用數(shù)據(jù)服務(wù)API
進(jìn)入DataV控制臺(tái)中的我的可視化頁(yè)面,單擊新建可視化。
選擇一個(gè)模板,單擊創(chuàng)建,本文以智能工廠模板為例。
模板中的組件自帶了靜態(tài)數(shù)據(jù),下文將以把模板中間的基本折線圖改為調(diào)用上文創(chuàng)建好的查詢成交金額增長(zhǎng)趨勢(shì)的API為例,為您介紹如何在組件中使用數(shù)據(jù)服務(wù)API。
選中基本折線圖組件,切換到數(shù)據(jù)面板,在數(shù)據(jù)源類型中選擇DataWorks數(shù)據(jù)服務(wù)。
選擇剛剛創(chuàng)建的數(shù)據(jù)源和API,并設(shè)置查詢參數(shù),本示例將pageSize設(shè)置為31,以查詢一個(gè)月的數(shù)據(jù)。
單擊查看數(shù)據(jù)響應(yīng)結(jié)果,即可查看API的查詢結(jié)果。
填寫(xiě)字段映射關(guān)系,在x中填寫(xiě)date,將日期作為橫軸,在y中填寫(xiě)amount,將成交金額作為縱軸。
由上圖可見(jiàn),當(dāng)前x和y無(wú)法匹配到字段。這是因?yàn)镈ataV對(duì)數(shù)據(jù)格式有一定要求,不能識(shí)別結(jié)構(gòu)較深的字段,因此需要添加一個(gè)數(shù)據(jù)過(guò)濾器,過(guò)濾掉不必要的字段,在本例中直接返回rows數(shù)組即可。
勾選使用過(guò)濾器,單擊新建圖標(biāo)。此處支持編寫(xiě)JS代碼對(duì)數(shù)據(jù)結(jié)果進(jìn)行二次過(guò)濾和處理,過(guò)濾器的data參數(shù)為API返回結(jié)果JSON對(duì)象。
本示例只需返回API結(jié)果中的rows數(shù)組,因此輸入
return data.data.rows;
在下方預(yù)覽過(guò)濾后的結(jié)果,并單擊完成。添加過(guò)濾器后,字段便會(huì)匹配成功。
由于API返回的日期格式與組件默認(rèn)的格式不一樣,此時(shí)的折線圖并沒(méi)有正確展示,您還需要設(shè)置折線橫軸的日期格式。
切換至配置面板,在
中選擇數(shù)據(jù)種類為時(shí)間型,數(shù)據(jù)格式選擇本API所返回的格式2016/01/01,即可看見(jiàn)折線圖的正常展示。
至此,便完成了通過(guò)數(shù)據(jù)服務(wù)將MaxCompute表生成API,然后在DataV數(shù)據(jù)大屏中進(jìn)行展示的所有操作,效果如下圖所示。
注意事項(xiàng)
DataWorks數(shù)據(jù)服務(wù)與DataV進(jìn)行無(wú)縫對(duì)接后,無(wú)需使用DataV中的API數(shù)據(jù)源去填寫(xiě)一個(gè)URL調(diào)用API,直接新建一個(gè)DataWorks數(shù)據(jù)服務(wù)作為數(shù)據(jù)源,便可直接選用數(shù)據(jù)服務(wù)中的API。無(wú)需每個(gè)API都設(shè)置AppKey和AppSecret認(rèn)證信息,且支持通過(guò)表單填寫(xiě)API參數(shù),操作快捷方便并安全可靠。
通過(guò)數(shù)據(jù)服務(wù),您可以將MaxCompute中加工好的數(shù)據(jù)結(jié)果,直接在DataV中進(jìn)行呈現(xiàn),實(shí)現(xiàn)數(shù)據(jù)開(kāi)發(fā)-數(shù)據(jù)服務(wù)-數(shù)據(jù)分析展現(xiàn)的全鏈路開(kāi)發(fā)。
在開(kāi)發(fā)過(guò)程中,請(qǐng)注意以下事項(xiàng):
DataWorks數(shù)據(jù)服務(wù)向?qū)J缴葾PI僅支持單表簡(jiǎn)單條件查詢,腳本模式支持您編寫(xiě)查詢SQL語(yǔ)句,支持多表關(guān)聯(lián)查詢、函數(shù)以及復(fù)雜條件。您可以根據(jù)自己的需求靈活選擇。
如果您要求毫秒級(jí)API查詢,建議使用關(guān)系型數(shù)據(jù)庫(kù)、NoSQL數(shù)據(jù)庫(kù)或AnalyticDB作為數(shù)據(jù)源。
DataV組件要求的數(shù)據(jù)格式是個(gè)數(shù)組,數(shù)據(jù)服務(wù)生成的API返回結(jié)果是帶有錯(cuò)誤碼的完整JSON,因此要使用過(guò)濾器對(duì)API結(jié)果進(jìn)行處理。您可以選擇在DataV中添加過(guò)濾器,也可以選擇直接在數(shù)據(jù)服務(wù)配置API時(shí)添加過(guò)濾器。
通常對(duì)于未分頁(yè)查詢的API,直接返回data數(shù)組即可,對(duì)于分頁(yè)查詢的API直接返回data.rows數(shù)組。
如果您要在DataV的折線圖或柱狀圖中添加多個(gè)系列,通常DataV要求每個(gè)系列的數(shù)據(jù)是一個(gè)對(duì)象,并通過(guò)字段來(lái)區(qū)分系列,此時(shí)需要注意使用過(guò)濾器進(jìn)行格式轉(zhuǎn)換。