天天看點

DataWorks 資料服務功能介紹 | 學習筆記

開發者學堂課程【DataWorks 使用教程:DataWorks 資料服務功能介紹】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/107/detail/1861

DataWorks 資料服務功能介紹

内容簡介:

一.資料服務的含義

二.資料服務使用流程

三.關鍵特性

四.資料服務功能解析

五.資料服務用法解析

DataWorks 建構了從資料內建,資料開發,資料服務到應用開發的全鍊路雲研發平台。

一、資料服務

是“零代碼”快速生成 API 服務,這個産品完全可以不寫代碼就可以生成 API 的服務,這是資料服務産品的優勢。

傳統模式下,開發一個接口服務需要七個步驟:

1. 準備好資料庫

2. 開發資料庫連接配接代碼

3. 開發 API 邏輯代碼

4. 開發 API 鑒權 流控邏輯

5. 搭建 web Server

6. 部署 API 接口服務

7. 服務運維擴容縮容。

鑒于 Serverless 架構的 dataworks 資料服務開發一個接口服務隻需2步:

2. 配置API查詢邏輯

 應用場景:

1.資料源,生成 API,

2.現有 API,注冊 API,釋出到 API 網關,可以調用 API,也可分享資料.

二、資料服務使用流程

配置資料源,然後生成 API,再釋出 API,最後授權 API,再然後調用 API,自己用則可以在釋出 API後可以調用 API,注冊API也可釋出 API。

 線上存儲:

支援的關系型資料庫:

RDS,MySQL,SQL Server,PostgreSQL,Oracle……

支援的非關系型資料庫:

AnalyticDB,TableStore,MongoDB……

離線存儲:

Maxcomputer,通過 lightning 引鑒查詢加速

 關于 Maxcomputer lightning

DataWorks  mhadatn woR MaxCompute Lightning 是 MaxCompute 産品的互動式查詢服務,支援以 PostgreSQL 協定及文法連接配接通路。

Maxcompute 項目,讓您使用 JDBC 協定以标準 SQL 查詢分析 MaxCompute 項目中的資料,秒級擷取查詢結果。

三、關鍵特性

1.相容 PostgreSQL Lightning 提供相容 PostgreSQL 協定的 JDBC 接口,可輕松地連接配接到 MaxCompute 項目。  

2.顯著提升性能針對 MaxCompute 表的快速查詢進行了優化,對于GB級分區資料,能夠實作秒級查詢。

3.統一的權限管理 作為 MaxCompute産品内的服務,通過 Lightning 連接配接到MaxCompute項目的通路完全遵循  Maxcompute項目的權限體系,在通路使用者權限範圍内安全地查詢資料。

4.開箱即用,按查詢付費 Lightning 是在 MaxCompute 已有的計算資源之外提供的 Serverless 方式的計算服務,您不需要設定  管理或運維MaxCompute Lightning資源,通過 Lightning 連接配接後即可查詢。

使用 Lightning 時,隻需為  每次查詢所實際處理的資料量付費,不查詢時不産生費用。(目前為公測階段,完全免費,商業化另  行通知)

通過 lighting 查詢加速直接将 MaxComputer 表生成API。

架構圖,最底層是計算引擎,中間有一個查詢加速服務,将 lightning 作為一個資料源,通過 JDBC 去通路,然後資料服務就可以生成API,API就可以上承到應用APP,ERP,BI,大屏, API 市場,有了這個就不需手工同步 Maxcomputer 到 RDS 再通過 API 查詢,lighting 支援 GB 級 Maxcomputer 表秒級查詢。

四、資料服務功能解析

支援編寫 Python 腳本對 API 結果進行二次加工(後置過濾器)

①資料服務可視化向導模式生成 API(零代碼生成 API)

向導模式生成 API

支援通過可視化配置快速資料表生成 API  

可視化配置,易上手,分析師和業務人員  也能生成 API 提供單表資料查詢

.支援 API 傳回結果分頁

.支援字元串模糊比對

.支援 IN 查詢

②腳本模式生成 API

.支援通過 SQL 腳本,自定義資料API的複雜查詢邏輯提供自定義查詢 SQL 的功能  

.支援複雜條件查詢

.支援多表關聯查詢

.支援聚合函數

.支援字元串模糊比對 支援排序

③後置過濾器

支援編寫 Python 腳本,對API結果進行二次加工過濾

.對查詢結果進行二次處理

.自定義 API 傳回結構

.資料脫敏

④注冊 API

資料服務支援将您手裡現成的 API 服務注冊上來  與通過資料表生成的 API 統一管理和釋出到 API 網  關,統一對接各類應用

.支援 Restful 風格的 API 注冊

.支援 GET/POST/PUT/DELETE 四類常見請  求方式

.支援表單 /JSON/XML 三種資料格式

⑤自動生成 API 文檔

生成的 API 及注冊的 API,資料服務都支援自動 API 文檔,無需您手工編寫,包含有: .

.API 基本資訊

.API 請求參數

.API 傳回參數

.API 正常傳回示例

. API 異常傳回示例  

.錯誤碼

⑥一鍵釋出至 API 網關

資料服務生成及注冊的API,支援一鍵釋出到 API 網關,由API網關提供 API 管理功能,包含、

.API 權限控制(授權與鑒權)

.API 調用 SDK

(支援 Objective-C/Android  Java/PHP/Python/.NET/Node.JS 等語言)

.API 流量控制

.API 通路控制(IP白名單)

.支援将 AP 上架到阿裡雲 API 市場銷售

⑦API調用鑒權 DataWorks make data work

資料服務提供了簡單身份認證及加密簽名身份認證兩種方式,可針對不同場景靈活選擇。

1. 簡單身份認證:

AppCode 隻需要擷取一個 AppCode,并放在請求的 Query 或 Header 中即可調用 API,适用于報表、資料大屏等場景。 xxxxxxxxx&id=1&name=pony 如

http://example.com/api/path?appCode=xxxxxxxxxxxx

.

2.加密簽名身份認證:

AppKey&AppSecret 通過加密算法計算一個簽名并放在請求的 Header 中即可調用 API,具備更高的安全性,适用于應用開發場景,  具體簽名算法請參考 API 網關文檔,或者直接使用 API 網關的 SDK 進行加密簽名計算。

1.向導模式生成 API

2.生成的 API 在 DataV 中應用

資料服務 FAQ1

DataWorks  make data work

Q:資料服務收費嗎?

A:資料服務目前是公測階段,不收費。未來可能會收費,商業化另行通知。

Q:如何進行 IN 查詢?

A:SQL中寫法:in(${params}),向導模式中直接在操作符中選擇 IN。字元串時傳參寫法:params='1',2’整型時傳參寫法params=1,2

Q:腳本模式中,如何實作可選參數?

A:目前參數配置中不支援可選參數,可以通過 case when 自行在 SQL 中實作可選參數。

Q:API 調用提示使用者沒有有效的應用

A:檢查調用時,是否傳入了 AppCode 或者 AppKey&AppSecret.

Q:API 調用提示使用者沒有權限

A:檢查是否擁有 API 的調用權限,如果沒有,可以向 API 的建立者申請授權。

Q:TableStore(OTS) 資料源隻能按順序選擇入參

A:是的,這是 TableStore 的特性,查詢的主鍵必須從前往後按順序查,不能直接查後面的主鍵

Q:什麼情況下必須用分頁查詢?

A:資料服務預設傳回2000條資料,如果資料量超過2000條,請開啟分頁查詢,以免丢失資料。

Q:已經釋出的 API,如何檢視 SQL 腳本?

A:目前暫不支援直接檢視,可通過克隆一個 API,然後進入編輯狀态檢視。未來會提供檢視已釋出 API 配置的功能。

為何要儲存正常傳回示例?

因為正常傳回示例系統無法自動産出,需要在測試的時候産出。儲存正常傳回示例是為了在 API 文檔中展示,以友善 API 的調用者。

資料服務 FAQ 2

DataWorks  miake dald wok

Q:Lightning 如何申請試用?

A:Lightning 現在是邀測階段,公共雲使用者請釘釘聯系@曲甯申請開通,申請時請提供應用場景等相關資訊,以更快通過申請。彈内使用者  可以直接使用

Q:Lightning 資料源如何建立?

A:公共雲,可通過 PostgreSQL 資料源連接配接 Lightning;彈内使用者直接通過 Lightning資料源連接配接。

Q:Lightning 查詢有時調用出問題,有時又是正常的

A:在JDBC擴充參數中增加參數:prepareThreshold=0

Q:Lightning 查詢提示分區數不能超過50個

A:一般是彈内出現此問題,需要在 JDBC 擴充參數中增加參數以調高分區數上限:axf_odps_partition_limit=N(N 為最大分區數) 

Q:Lightning 可以用哪些函數?

A:支援 PostgreSQL 函數。MaxCompute 函數隻支援 Max_PT,用于擷取最新分區 Q:Lightning 查詢有時會比較慢 A:檢查資料表分區是否很大,是否查詢了多個分區,建議将分區作為請求參數,分區資料控制在 GB 量級。

Q:提供 function ifxxx 不存在

A:不支援 if 函數,用 case when 替代

Q:Lightning 收費嗎?

A:目前不收費,未來會根據查詢時掃描的 MaxCompute 資料量計費,具體收費方式另行通知,請關注MaxCompute官網。

資料服務FAQ 3

DataWorks  make cata work

Q:Lightning如何申請試用?

A;Lightning現在是邀測階段,公共雲使用者請釘釘聯系@曲甯申請開通,申請時請提供應用場景等相關資訊,以更快通過申請。彈内使用者  可以直接使用。

Q:Lightning資料源如何建立?

A:公共雲,可通過PostgreSQL資料源連接配接Lightning;彈内使用者直接通過Lightning資料源連接配接。

Q:Lightning查詢有時調用出問題,有時又是正常的

A:在JDBC擴充參數中增加參數:prepareThreshold=O

Q:Lightning查詢提示分區數不能超過50個

A:一般是彈内出現此問題,需要在JDBC擴充參數中增加參數以調高分區數上限:axf_odps_partition limit=N(N為最大分區數)

Q:Lightning可以用哪些函數?

A:支援PostgreSQL函數。MaxCompute函數隻支援Max_PT,用于擷取最新分區

Q:Lightning查詢有時會比較慢

A:檢查資料表分區是否很大,是否查詢了多個分區,建議将分區作為請求參數,分區資料控制在GB量級。

Q:提供function ifxxxx不存在

A:不支援if函數,用case when替代

Q:Lightning收費嗎?

A:目前不收費,未來會根據查詢時掃描的MaxCompute資料量計費,具體收費方式另行通知,請關注MaxCompute官網。