海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

  1. 概述
    數據服務(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks產品家族的一員,提供了快速將數據表生成API的能力,通過可視化的嚮導,一分鐘“零代碼”就可以生成API,讓API開發從未有過如此便捷!同時支持自定義API查詢SQL功能,對您的個性化複雜查詢邏輯支持照樣不在話下。

DataWorks數據服務提供HTTP API服務,採用Serverless架構,您只需關注API本身的查詢邏輯,無需關心運行環境等基礎設施,零運維成本。

DataWorks提供了涵蓋“數據集成-數據開發-機器學習-數據服務”全鏈路數據研發平臺,數據服務作爲連接數據應用與數據倉庫的橋樑,通過MaxCompute Lightning加速引擎,數據服務可以直接將原本只能離線查詢的MaxCompute表直接生成數據API並進行實時查詢,免去了您手工同步數據的煩惱,數據服務是您將數倉建設成果服務化輸出的最佳工具。

目前,DataWorks數據服務已經與數據可視化的神器——DataV(https://data.aliyun.com/visual/datav)深度打通,數據服務生成的API,可以直接在DataV中進行可視化展現。您無需手工同步數據,無需編寫複雜的Java代碼,無需搭建WebServer,普通數據開發工程師、算法開發工程師、數據分析師甚至是產品業務人員,都可以使用數據服務“開發”數據API,然後快速在DataV中調用API和展示來自MaxCompute的數據成果。數據服務爲您解決了從數倉開發和數據大屏展現之間的最後一公里

本文將重點介紹數據服務與DataV聯合進行API開發和大屏展現的使用方法。

  1. 使用數據服務一分鐘生成API
    通過數據服務生成API主要包含創建數據源->配置API->發佈API三個步驟,本文將簡要介紹使用方法。

2.1 新建數據源
數據服務支持豐富的數據源類型,基本上常見數據源都囊括了,包含:
關係型數據庫:RDS/DRDS/MySQL/PostgreSQL/Oracle/SQL Server
分析型數據庫:AnalyticDB(ADS)
NoSQL數據庫:TableStore(OTS)/MongoDB
大數據存儲:Lightning(MaxCompute)

在數據服務中的“服務開發”點擊新建按鈕,在下拉菜單中選擇“新建數據源”。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

隨後將打開數據集成中的數據源頁面,在這裏可以新建您需要訪問的數據源。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

本文將以Lightning數據源爲例。通過Lighning數據源可以直接實時查詢MaxCompute中的數據。

注意:Lightning目前是內測階段,需要單獨申請才能開通,申請地址:https://help.aliyun.com/document_detail/89747.html

申請開通MaxCompute項目的Lightning服務後,就可以進行數據源配置了。點擊“新建數據源”,選擇“Lightning”,按頁面提示進行配置,測試連通性測試通過後即可。您可以點擊這裏(https://help.aliyun.com/document_detail/89757.html)查看Lightning的連接信息,如Lightning Endpoint、Port。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

注意:JDBC擴展參數中的“sslmode=require&prepareThreshold=0”是必須的,不可刪除,否則會無法連接。

2.2 新建API
創建好數據源後,回到數據服務產品頁面,我們就可以進行API的生成配置了,本文以嚮導模式生成API爲例。

點擊"服務開發"-“新建”-“生成API”-“嚮導模式”,以嚮導模式可視化配置的方式生成API。在彈出的對話框中填寫API基本信息,這裏以查詢成交金額增長趨勢API爲例,如下所示:

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

點擊確認後,進行API配置頁面。

首先進行表設置,依次選擇數據源類型-數據源名稱-數據表名稱。這裏選擇上一步創建的Lightning數據源,然後選擇你要查詢的MaxCompute表,這裏以成交金額表“demo_trade_amount”爲例,該表中存儲了一個月的成交金額數據。

選擇好表之後,會自動展示表的字段列表。然後勾選你要作爲API請求參數的字段和作爲返回參數的字段。在本例中,我們爲了查詢成交金額趨勢,因此要返回所有數據,即將日期和成交金額都作爲返回參數,不設請求參數。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

然後點擊右側的“返回參數”,設置參數描述信息。
注意:如果不設置請求參數,則需要開啓“返回結果分頁”開關,進行分頁查詢,以避免單次查詢返回數據量過大影響性能。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

最後進行API測試。點擊工具條右邊的“測試”,填寫API請求參數(由於打開了分頁查詢開關,系統會自動添加兩個分頁參數),點擊“開始測試”即可,如下圖所示。

在測試頁面中可以看到API延遲,可以看到通過Lightning查詢MaxCompute表只花費了1秒多,比直接通過MaxCompute SQL查詢快了幾十上百倍!

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

到此,一個API就已經生成好了,是不是超簡單!

2.3 發佈API
API測試通過後就可以進行發佈。點擊工具條右方的“發佈”即可將API發佈。發佈後,可以點擊項部導航條中的“服務管理”查看API詳情。若您要調用API,請查看“服務管理”-“API調用”頁面,數據服務提供了簡單身份認證(AppCode)和加密簽名身份認證(AppKey&AppSecret)兩種認證方式,您可以自由選擇。下方將介紹在DataV中進行數據服務API的調用。

是不是有點小激動?“開發”一個API如來沒有過如此簡單!這簡直不能稱之爲“開發”!

  1. 在DataV中調用數據服務的API
    接下來要進行DataV數據大屏的配置,主要分爲“添加數據”-“新建可視化”兩個步驟。

3.1 添加數據服務爲數據源
依次點擊“我的數據”-“添加數據”,在“類型”中選擇“DataWorks數據服務”,填寫數據源名稱,然後選擇您的DataWorks項目(工作空間)。DataV對接數據服務採用的是更加安全的加密簽名身份認證,因此這裏需要填寫AppKey和AppSecret。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

AppKey和AppSecret從數據服務的“服務管理”-“API調用”頁面中查看,如下所示:

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

添加好數據服務數據源後,就可以在大屏中進行數據展示了。

3.2 在大屏中調用數據服務API
在“我的可視化”中點擊“新建可視化”,本文選擇了“智能工廠”模板,如下所示:

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

模板中的組件自帶了靜態數據,下面將通過將模板中間的“基本折線圖”改爲調用上面創建好的“查詢成交金額增長趨勢”的API爲例,講解如何在組件中使用數據服務API。

選中基本折線圖組件,切換到數據面板,在“數據源類型”中選擇“DataWorks數據服務”,然後選擇剛剛創建的數據源“我的數據服務”,選擇“查詢成交金額增長趨勢”這個API,再設置查詢參數,這裏將pageSize設置爲“31”以查詢一個月的數據。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

點擊“查看數據響應結果”可以看到API的查詢結果。
然後填寫字段映射關係,在“x”中填寫“date”將日期作爲橫軸,在“y”中填寫“amount”將成交金額作爲縱軸。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

可以看到,當前x和y無法匹配到字段。這是由於DataV對數據格式有一定要求,不能識別結構較深的字段,因此這裏要添加一個數據過濾器,過濾掉不必要的字段,在本例中直接返回“rows”數組即可。

勾選“使用過濾器”,點擊“新建過濾器”,這裏支持編寫JS代碼對數據結果進行二次過濾和處理,過濾器的data參數爲API返回結果JSON對象。在本例中,我們只需要返回API結果中的rows數組,故只需要輸入代碼 "return data.data.rows;" 即可,然後在下方就可以查看過濾後的結果,點擊“完成”即可。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

添加好過濾器後就可以看到此時字段已經可以匹配成功了。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

但此時折線圖並沒有正確展示,由於API返回的日期格式與組件默認的格式不一樣,因此我們還需要設置一下折線橫軸的日期格式。切換到“配置”面板,在“x軸”-“軸標籤”中選擇數據種類爲“時間型”,數據格式選擇本API所返回的格式“2016/01/01”,即可看見折線圖已經可以正常展示了。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

最後預覽一下,看看成品。

海量大數據大屏分析展示一步到位:DataWorks數據服務對接DataV最佳實踐

至此,我們就完成了通過數據服務將MaxCompute表生成API,然後在DataV數據大屏中進行展示的所有步驟。採用類似的步驟,將大屏的其他組件的數據源都配置爲DataWorks數據服務API就可以完成整個大屏的創作,是不是感覺很easy!

  1. 總結
    DataWorks數據服務與DataV進行無縫打通後,則不需要使用DataV中的"API"數據源去填寫一個URL調用API,直接新建一個DataWorks數據服務作爲數據源,就可以直接選用數據服務中的API,無需每個API都設置AppKey和AppSecret認證信息,並且支持通過表單填寫API參數,使用起來十分快捷方便和安全可靠。通過數據服務,您可以將MaxCompute中加工好的數據結果,直接在DataV中進行呈現,“數據開發-數據服務-數據分析展現”一氣呵成!

最後,提供一些小貼士及注意事項,供大家參考:

DataWorks數據服務嚮導模式生成API只支持單表簡單條件查詢,腳本模式支持用戶編寫查詢SQL語句,支持多表關聯查詢、函數以及複雜條件。大家可以根據自己的需求靈活選擇。
Lightning採用的PostgreSQL的語法,故在編寫SQL時,要注意使用PostgreSQL函數,而不是MaxCompute的UDF。目前Lightning還只支持max_pt這個MaxCompute UDF,可用於獲取當前最新分區。還有,連接字符串時使用“||”。
Lightning目前只支持秒級查詢,並且查詢的MaxCompute不宜過大(控制在GB級),儘量將分區作爲請求參數,儘量避免掃描過多分區,否則會比較慢。
如果您要求毫秒級API查詢,則建議採用關係型數據庫、NoSQL數據庫或AnalyticDB作爲數據源。
DataV組件要求的數據格式是個數組,數據服務生成的API返回結果是個帶有錯誤碼的完整JSON,因此要使用過濾器對API結果進行處理。您可以選擇在DataV中添加過濾器,也可以選擇直接在數據服務配置API時添加過濾器。一般來說,對於未分頁查詢的API,直接返回“data”數組就行,對於分頁查詢的API直接返回“data.rows"數組。
若你要在DataV的折線圖或柱狀圖中添加多個系列,DataV一般要求每個系列的數據是一個對象,並通過字段“s”來區分系列,此時要注意使用過濾器進行格式轉換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章