SQL模式是基於Dataphin邏輯表,編寫SQL語句建立API。本文為您介紹如何使用SQL模式產生API。
前提條件
基於邏輯表產生API的情境中,需要完成邏輯表(維度邏輯表、事實邏輯表和匯總邏輯表)的建立。具體操作,請參見規範建模。
基於建立好的邏輯表,在整合中配置同步任務,操作如下:
同步任務的目標資料來源需選擇資料服務所支援的資料來源,並具有該資料來源的同步讀許可權。
在營運 > 周期任務中選中邏輯表對應任務,選擇補資料 > 補當前及下遊任務,工作清單選擇6層,全選工作清單,並在補資料執行個體查看是否運行成功。具體操作請參見附錄:周期任務補資料。
在即席查詢中查看資料是否符合預期,確保邏輯表中有資料。具體操作請參見查詢並下載資料。
在整合中配置同步任務,輸入組件選擇邏輯表輸入配置(LogicalTable),輸出組件選擇MySQL輸出組件,具體操作請參見配置LogicalTable輸入組件、配置MySQL輸出組件。
配置完同步任務後,且成功發布後,可在資料服務建立邏輯表API並進行提交/發布。
使用限制
通過邏輯表建立API會受到計算引擎節流,支援的計算引擎請參見資料服務支援的計算引擎。
許可權說明
服務專案系統管理員和開發使用者支援建立API。
注意事項
API的請求參數和返回參數需從同一個Dataphin邏輯表中擷取,否則後續無法正常調用該API。
步驟一:選擇產生API的方式
在Dataphin首頁的頂部功能表列,選擇服務 > API開發。
在左上方選擇專案,單擊左側導覽列API服務,在API頁面,單擊+建立API。
在建立API對話方塊,選擇邏輯表API-SQL模式(Dataphin表)。
步驟二:配置API參數資訊
在建立API頁面,配置API基本資料和參數配置。
API基本資料配置
參數
描述
API名稱
填寫API的名稱。命名規則如下:
只能包含中文、字母、數字或底線(_)。
長度為4~100個字元。
以字母開頭。
全域唯一。
請求方式
API請求方式包括GET和LIST:
GET:請求伺服器擷取指定的某個資源。
LIST:請求伺服器擷取某一部分的資源。
資料更新頻率
定義API返回資料的更新頻率,便於調用方瞭解資料的時效性,支援的更新頻率為每天、每小時、每分鐘以及自訂,若選擇自訂,支援輸入不超過128個字元。
API分組
選擇當前專案下配置的API分組,如需建立,請參見建立服務分組。
描述
填寫對API的簡單描述。不超過128字元。
協議
資料產生API的介面協議,支援HTTP、HTTPS協議。
HTTP:即超文字傳輸通訊協定 (HTTP)HTTP(HyperText Transfer Protocol),是應用最為廣泛的網路通訊協定。
HTTPS:若網關配置為阿里公用雲端API Gateway(專享執行個體或共用執行個體)時,支援選中HTTPS協議,請確保獨立網域名稱的SSL認證有效,避免無法正常調用。請通過選擇平台管理網路設定,在網路設定頁面,進行SSL認證配置。
逾時時間
逾時時間用於監控API的調用時間長度。預設為3秒,支援設定的時間範圍為3到60秒的正整數。
調用API過程中如果超過了設定的逾時時間,則調用API時會報錯,便於您及時發現並處理調用API的異常情況。異常情況查看,詳情請參見查看及管理營運監控API。
緩衝設定
支援開啟或關閉。開啟後需配置緩衝時間長度。預設300秒,支援設定60秒~1000000秒(約277.78小時)之間的正整數。
版本號碼
請填寫API的版本號碼,每份配置資訊會有所屬版本號碼,以便於和上個版本資訊對比。該API下版本號碼唯一。命名規則如下:
不超過64個字元。
支援輸入大小寫英文字母、數字、底線(_)、半形句號(.)、短劃線(-)。
傳回型別
預設JSON。
API請求參數和返回參數配置
在配置API請求參數和返回參數的過程中,您需要先確定入參和出參的來源(Dataphin邏輯表),再編寫API SQL並解析出請求參數和返回參數,最後配置請求參數和返回參數的基本資料。
在參數配置頁面,選擇了模式和Dataphin邏輯表後,頁面下方會為您展示已選擇的Dataphin邏輯表中所有的欄位,便於您編寫API SQL時參考。

參數
描述
模式
需選擇該邏輯表所在的業務板塊及選中的板塊下的邏輯表。支援Basic或Dev_Prod兩種模式。
Basic模式下開發時、提交及發布線上均讀取生產庫。
Dev-Prod模式下開發及提交讀取開發庫,發布線上讀取生產庫。
邏輯表欄位
支援複製全表欄位或單個欄位。
您可根據參考樣本編寫API SQL指令碼,指令碼注意事項如下:
基於服務單元建立API,SQL指令碼需遵循MySQL文法。
不支援以下用法:
不支援多條SQL語句。
不支援INSERT、UPDATE、CREATE和DELETE等非SELECT文法。
不支援多表關聯查詢和巢狀查詢。
不支援對查詢表使用別名
如果使用Min、Max、Sum和Count等彙總函式,必須取別名作為返回參數名。例如:
sum(num) as total_num。
Dataphin能解析出返回參數和請求參數的SQL指令碼模板如下:
模板一:僅查詢和返回資料表中的欄位。
命令格式
select <返回參數> from <資料表名> where <請求參數>=${請求參數值}使用樣本
--在資料表A中查詢當c=id_card時,返回id_card和name。 select 資料表A.id_card,資料表A.name from 業務板塊A.資料表A where 資料表A.c=${id_card}
模板二:查詢和返回資料表包含的欄位。
命令格式
select <返回參數> from <邏輯表名> where <請求參數> in (${請求參數值})使用樣本
--在資料表A中查詢當c %in% id_card時,返回id_card和name。 select 資料表A.id_card,資料表A.name from 業務板塊A.資料表A where 資料表A.c in (${id_card})
模板三:欄位間支援使用max、sum、min和count彙總函式,同時支援使用like進行模糊比對。
命令格式
select max(<返回參數1>) as <別名c>,sum(<返回參數1>) as <別名b> ,min(<返回參數1>) as <別名d>,count(*) as <別名e> from <邏輯表名> where <請求參數名1> like ${請求參數值1}使用樣本
--在資料表A中查詢欄位c %like% id_card時,返回欄位a的最大值,參數名為c;返回a的最小值,參數名為d;返回a的總和,參數名為b。 select max(資料表A.a) as c,sum(資料表A.a) as b ,min(資料表A.a) as d,count(*) as e from 業務板塊A.資料表A where 資料表A.c like ${id_card}
模板四:欄位間的運算支援+(加法)、-(減法)、 * (乘法)、/(除法)、% (求餘數)、 // (整除)、 **(冪次方),同時支援邏輯運算子and(與)和or(或)。
命令格式
select (<返回參數1>+<返回參數2>) as <別名>,(<返回參數2>+<返回參數3>) as <別名> from <邏輯表名> where <欄位c>=${請求參數名1} and <欄位b>>=${請求參數名2} or <欄位c><=${請求參數名3}使用樣本
--在資料表A中查詢當欄位c=id_card,或欄位b>=num,且欄位c<=num1時,返回a+b、b+c的參數值,參數名分別為acd、bcf。 select (資料表A.a + 資料表A.b) as acd, (資料表A.b + 資料表A.c) as bcf from 業務板塊A.資料表A where 資料表A.c=${id_card} and/or 資料表A.b>=${num} and/or 資料表A.c<=${num1}
重要上述四種模板中API的請求參數和返回參數需從同一個邏輯表中擷取,否則後續無法正常調用該API。
單擊解析參數後,Dataphin會自動解析出API SQL的入參和出參並分別添加至請求參數和返回參數地區。
請求參數和返回參數的基本資料基本一致,下表為您介紹請求參數和返回參數的基本資料及需要您配置的資訊。
參數
描述
參數名
顯示對外開放的參數名。
參數類型
參數類型包括DOUBLE、FLOAT、STRING、DATE(yyyy-MM-dd HH:mm:ss)、BOOLEAN、INT、LONG、SHORT、BYTE、BIGDECIMAL和BINARY,需選擇參數名對應的綁定欄位的參數類型。
如果邏輯表的欄位類型不在待選參數類型範圍內,推薦您選擇String。
參數實值型別
選擇參數值的類型,支援單值、多值。
單值:根據參數類型傳入,傳入參數將被解析為單一值,適用的操作符為
=、like、>=、<=、>、<、!=、between。多值:傳入參數將被解析為多個值,多個值之間使用半形逗號(,)分隔,適用的操作符為
in。
參數處理
當操作符為LIKE時需配置。若未選擇參數處理,需在入參時手動輸入萬用字元進行匹配。支援選擇模糊比對(%keyword%)、右匹配(%keyword)、左匹配(keyword%)。
樣本
填寫請求參數值和返回參數值的樣本,便於開發人員理解。支援輸入不超過1000個字元。
描述
填寫對請求參數和返回參數的簡單描述。支援輸入不超過1000個字元。
是否必填
選擇請求參數是否為調用API時的必填參數。
選擇否:調用API的語句中沒有該參數也可以執行調用API的SQL語句。
選擇是:調用API的語句中沒有該參數無法執行調用API的SQL語句。
例如,請求參數為id,請求參數為必填參數,返回參數為name;則執行以下語句會有不同的返回:
select name from tableA where id=5;:則返回對應的name欄位及資料結果。select name from tableA;:則SQL語句執行報錯。
操作
請求參數和返回參數支援如下操作:
請求參數:支援批量修改請求參數的參數類型、參數實值型別、參數處理(僅操作符為LIKE時支援操作)及是否必填。
返回參數:支援批量修改返回參數的參數類型。
單擊SQL試運行,在請求參數輸入對話方塊中,選擇參數類型、參數實值型別、參數處理和試運行輸入值,然後單擊確認。
作業記錄:支援查看SQL試運行時實際執行的SQL語句。
試運行輸入值:需要配置綁定欄位的欄位值,可以在資料預覽面板查看綁定欄位的欄位值。
大量操作:支援批量修改請求參數的參數類型、參數實值型別、參數處理(僅操作符為LIKE時支援操作)。
單擊填充參數樣本值,系統會將最近一次試運行成功的樣本值填充至請求參數和返回參數。如果樣本有值,則不進行覆蓋,支援修改。
單擊提交,即可完成API的產生。