SQL模式是基于Dataphin邏輯表,編寫SQL語句創建API。本文為您介紹如何使用SQL模式生成API。
前提條件
MaxCompute計算引擎支持邏輯表創建API,需完成以下步驟:
基于邏輯表生成API的場景中,需要完成邏輯表(維度邏輯表、事實邏輯表和匯總邏輯表)的創建。具體操作,請參見規范建模概述。
基于創建好的邏輯表,在集成中配置同步任務,具體步驟如下:
在運維 > 周期任務中選中邏輯表對應任務,選擇補數據 > 補當前及下游任務,任務列表選擇6層,全選任務列表,并在補數據實例查看是否運行成功。具體操作請參見周期任務補數據。
在即席查詢中查看數據是否符合預期,確保邏輯表中有數據。具體操作請參見查詢并下載數據。
在集成中配置同步任務,輸入組件選擇邏輯表輸入配置(LogicalTable),輸出組件選擇MySQL輸出組件,具體操作請參見配置LogicalTable輸入組件、配置MySQL輸出組件。
配置完同步任務后,且成功發布后,可在數據服務創建邏輯表API并進行提交/發布。
使用限制
支持服務項目管理員和開發用戶角色的賬號生成API。
注意事項
API的請求參數和返回參數需從同一個Dataphin邏輯表中獲取,否則后續無法正常調用該API。
步驟一:選擇生成API的方式
在Dataphin首頁,單擊頂部菜單欄服務 > 開發。
選擇項目,單擊左側導航欄API,在API頁面,單擊+新建API。
在API創建方式選擇對話框,選擇邏輯表API-SQL模式(Dataphin表)后,單擊確定。
步驟二:配置API參數信息
在新建API頁面,配置API基本信息和參數配置。
API基本信息配置
參數
描述
API名稱
填寫API的名稱。命名規則如下:
只能包含漢字、字母、數字或下劃線(_)。
長度為4~42個字符。
以字母開頭。
全局唯一。
請求方式
API請求方式包括GET和LIST:
GET:請求服務器獲取指定的某個資源。
LIST:請求服務器獲取某一部分的資源。
數據更新頻率
定義API返回數據的更新頻率,選擇每天、每小時或每分鐘更新API返回的數據。
API分組
選擇當前項目下配置的API分組,如需創建,請參見創建服務分組。
描述
填寫對API簡單的描述。不超過128字符。
協議
默認選中HTTP。HTTP即超文本傳輸協議HTTP(HyperText Transfer Protocol),是應用最為廣泛的網絡協議。
勾選HTTPS協議時,請確保獨立域名的SSL證書有效,避免無法正常調用。請通過選擇平臺管理網絡配置,在網絡配置頁面,進行SSL證書配置。
超時時間
超時時間用于監控API調用的時長。調用API過程中如果超過了設定的超時時間,則調用API時會報錯,便于您及時發現并處理調用API的異常情況。異常情況查看,詳情請參見運維監控概述。
緩存設置
支持開啟或關閉。開啟后需配置緩存時長。
版本號
請填寫API的版本號,每份配置信息會有所屬版本號,以便于和上個版本信息對比。64個字符以內。該API下版本號唯一。
返回類型
默認JSON。
API請求參數和返回參數配置
在配置API請求參數和返回參數過程中,您需要先確定入參和出參的來源(Dataphin邏輯表),再編寫API SQL并解析出請求參數和返回參數,最后配置請求參數和返回參數的基本信息。
在參數配置頁面,選擇了模式和Dataphin邏輯表后,頁面下方會為您展示已選擇的Dataphin邏輯表中所有的字段,便于您編寫API SQL時參考。
參數
描述
模式
需選擇該邏輯表所在的業務板塊及選中的板塊下的邏輯表。支持Basic或Dev_Prod兩種模式。
Basic模式下開發時、提交及發布線上均讀取生產庫。
Dev-Prod模式下開發及提交讀取開發庫,發布線上讀取生產庫。
邏輯表字段
支持復制全表字段或單個字段。
您可根據參考示例編寫API SQL。
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。
單擊SQL試運行,在請求參數輸入對話框中,選擇參數類型、操作符和試運行輸入值,單擊確認。
運行日志:支持查看SQL試運行實際執行的SQL語句。
試運行輸入值需要配置成綁定字段的字段值,可以在數據預覽頁面選擇綁定字段的字段值。
單擊解析參數后,Dataphin會自動解析出API SQL的入參和出參并分別添加至請求參數和返回參數區域。請求參數和返回參數的基本信息基本一致,下表為您介紹請求參數和返回參數的基本信息及需要您配置的信息。
參數
描述
參數名
對外開放的參數。
參數類型
參數類型包括Double、Float、String、Date、Boolean、Int、Long、Short、Byte、Bigdecimal、Binary。您需要選擇參數名對應的綁定字段的參數類型。
如果邏輯表的字段類型不在待選參數類型范圍內,推薦您選擇String。
示例
填寫請求參數值和返回參數值的示例,便于開發者理解。
是否必填
選擇請求參數是否為調用API時的必填參數。
選擇為否:調用API的語句中沒有該參數也可以執行調用API的SQL語句。
選擇為是:調用API的語句中沒有該參數無法執行調用API的SQL語句。
例如,請求參數為id,請求參數為必填參數,返回參數為name;則執行以下語句會有不同的返回:
seclect name from tableA where id=5;
:則返回對應的name字段及數據結果。seclect name from tableA;
:則SQL語句執行報錯。
描述
填寫對請求參數和返回參數的簡單描述。
單擊提交,即可完成API的生成。