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

1. 概述

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

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開發和大屏展示的使用方法。安全

2. 使用數據服務一分鐘生成API

經過數據服務生成API主要包含建立數據源->配置API->發佈API三個步驟,本文將簡要介紹使用方法。架構

2.1 新建數據源

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

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

1

隨後將打開數據集成中的數據源頁面,在這裏能夠新建您須要訪問的數據源。機器學習

2

本文將以Lightning數據源爲例。經過Lighning數據源能夠直接實時查詢MaxCompute中的數據。函數

注意:Lightning目前是內測階段,須要單獨申請才能開通,申請地址:https://help.aliyun.com/document_detail/89747.html。
也能夠加入數據服務用戶羣(釘釘羣號21993540)諮詢Lightning服務的開通事項。

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

3

注意:JDBC擴展參數中的「sslmode=require&prepareThreshold=0」是必須的,不可刪除,不然會沒法鏈接。

2.2 新建API

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

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

4

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

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

選擇好表以後,會自動展現表的字段列表。而後勾選你要做爲API請求參數的字段和做爲返回參數的字段。在本例中,咱們爲了查詢成交金額趨勢,所以要返回全部數據,即將日期和成交金額都做爲返回參數,不設請求參數。

5

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

6

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

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

7

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

2.3 發佈API

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

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

3. 在DataV中調用數據服務的API

接下來要進行DataV數據大屏的配置,主要分爲「添加數據」-「新建可視化」兩個步驟。

3.1 添加數據服務爲數據源

依次點擊「個人數據」-「添加數據」,在「類型」中選擇「DataWorks數據服務」,填寫數據源名稱,而後選擇您的DataWorks項目(工做空間)。DataV對接數據服務採用的是更加安全的加密簽名身份認證,所以這裏須要填寫AppKey和AppSecret。

8

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

9

添加好數據服務數據源後,就能夠在大屏中進行數據展現了。

3.2 在大屏中調用數據服務API

在「個人可視化」中點擊「新建可視化」,本文選擇了「智能工廠」模板,以下所示:

0

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

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

10

點擊「查看數據響應結果」能夠看到API的查詢結果。
而後填寫字段映射關係,在「x」中填寫「date」將日期做爲橫軸,在「y」中填寫「amount」將成交金額做爲縱軸。 

11

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

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

12

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

13

但此時折線圖並無正確展現,因爲API返回的日期格式與組件默認的格式不同,所以咱們還須要設置一下折線橫軸的日期格式。切換到「配置」面板,在「x軸」-「軸標籤」中選擇數據種類爲「時間型」,數據格式選擇本API所返回的格式「2016/01/01」,便可看見折線圖已經能夠正常展現了。

14

最後預覽一下,看當作品。

15

至此,咱們就完成了經過數據服務將MaxCompute表生成API,而後在DataV數據大屏中進行展現的全部步驟。採用相似的步驟,將大屏的其餘組件的數據源都配置爲DataWorks數據服務API就能夠完成整個大屏的創做,是否是感受很easy!

4. 總結

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」來區分系列,此時要注意使用過濾器進行格式轉換。

 


原文連接本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索