全部產品
Search
文件中心

Dataphin:通過SQL模式建立API(Dataphin表)

更新時間:Nov 19, 2025

SQL模式是基於Dataphin邏輯表,編寫SQL語句建立API。本文為您介紹如何使用SQL模式產生API。

前提條件

  • 基於邏輯表產生API的情境中,需要完成邏輯表(維度邏輯表、事實邏輯表和匯總邏輯表)的建立。具體操作,請參見規範建模

  • 基於建立好的邏輯表,在整合中配置同步任務,操作如下:

    同步任務的目標資料來源需選擇資料服務所支援的資料來源,並具有該資料來源的同步讀許可權。

    • 營運 > 周期任務中選中邏輯表對應任務,選擇補資料 > 補當前及下遊任務,工作清單選擇6層,全選工作清單,並在補資料執行個體查看是否運行成功。具體操作請參見附錄:周期任務補資料

    • 即席查詢中查看資料是否符合預期,確保邏輯表中有資料。具體操作請參見查詢並下載資料

    • 在整合中配置同步任務,輸入組件選擇邏輯表輸入配置(LogicalTable),輸出組件選擇MySQL輸出組件,具體操作請參見配置LogicalTable輸入組件配置MySQL輸出組件

      配置完同步任務後,且成功發布後,可在資料服務建立邏輯表API並進行提交/發布。

使用限制

通過邏輯表建立API會受到計算引擎節流,支援的計算引擎請參見資料服務支援的計算引擎

許可權說明

服務專案系統管理員和開發使用者支援建立API。

注意事項

API的請求參數和返回參數需從同一個Dataphin邏輯表中擷取,否則後續無法正常調用該API。

步驟一:選擇產生API的方式

  1. 在Dataphin首頁的頂部功能表列,選擇服務 > API開發

  2. 在左上方選擇專案,單擊左側導覽列API服務,在API頁面,單擊+建立API

  3. 建立API對話方塊,選擇邏輯表API-SQL模式(Dataphin表)。

步驟二:配置API參數資訊

  1. 建立API頁面,配置API基本資料和參數配置。

    API基本資料配置

    參數

    描述

    API名稱

    填寫API的名稱。命名規則如下:

    • 只能包含中文、字母、數字或底線(_)。

    • 長度為4~100個字元。

    • 以字母開頭。

    • 全域唯一。

    請求方式

    API請求方式包括GET和LIST:

    • GET:請求伺服器擷取指定的某個資源。

    • LIST:請求伺服器擷取某一部分的資源。

    資料更新頻率

    定義API返回資料的更新頻率,便於調用方瞭解資料的時效性,支援的更新頻率為每天每小時每分鐘以及自訂,若選擇自訂,支援輸入不超過128個字元。

    API分組

    選擇當前專案下配置的API分組,如需建立,請參見建立服務分組

    描述

    填寫對API的簡單描述。不超過128字元。

    協議

    資料產生API的介面協議,支援HTTPHTTPS協議。

    • 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並解析出請求參數返回參數,最後配置請求參數返回參數的基本資料。

    1. 參數配置頁面,選擇了模式Dataphin邏輯表後,頁面下方會為您展示已選擇的Dataphin邏輯表中所有的欄位,便於您編寫API SQL時參考。

      image.png

      參數

      描述

      模式

      需選擇該邏輯表所在的業務板塊及選中的板塊下的邏輯表。支援BasicDev_Prod兩種模式。

      • Basic模式下開發時、提交及發布線上均讀取生產庫。

      • Dev-Prod模式下開發及提交讀取開發庫,發布線上讀取生產庫。

      邏輯表欄位

      支援複製全表欄位或單個欄位。

    2. 您可根據參考樣本編寫API SQL指令碼,指令碼注意事項如下:

      • 基於服務單元建立API,SQL指令碼需遵循MySQL文法。

      • 不支援以下用法:

        • 不支援多條SQL語句。

        • 不支援INSERT、UPDATE、CREATE和DELETE等非SELECT文法。

        • 不支援多表關聯查詢和巢狀查詢。

        • 不支援對查詢表使用別名

      • 如果使用Min、Max、Sum和Count等彙總函式,必須取別名作為返回參數名。例如:sum(num) as total_num

    3. 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。

    4. 單擊解析參數後,Dataphin會自動解析出API SQL的入參和出參並分別添加至請求參數返回參數地區。

      請求參數和返回參數的基本資料基本一致,下表為您介紹請求參數和返回參數的基本資料及需要您配置的資訊。

      參數

      描述

      參數名

      顯示對外開放的參數名。

      參數類型

      參數類型包括DOUBLEFLOATSTRINGDATE(yyyy-MM-dd HH:mm:ss)BOOLEANINTLONGSHORTBYTEBIGDECIMALBINARY,需選擇參數名對應的綁定欄位的參數類型。

      如果邏輯表的欄位類型不在待選參數類型範圍內,推薦您選擇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時支援操作)及是否必填。

      • 返回參數:支援批量修改返回參數的參數類型。

    5. 單擊SQL試運行,在請求參數輸入對話方塊中,選擇參數類型參數實值型別參數處理試運行輸入值,然後單擊確認

      • 作業記錄:支援查看SQL試運行時實際執行的SQL語句。

      • 試運行輸入值:需要配置綁定欄位的欄位值,可以在資料預覽面板查看綁定欄位的欄位值。

      • 大量操作:支援批量修改請求參數的參數類型、參數實值型別、參數處理(僅操作符為LIKE時支援操作)。

    6. 單擊填充參數樣本值,系統會將最近一次試運行成功的樣本值填充至請求參數和返回參數。如果樣本有值,則不進行覆蓋,支援修改。

  2. 單擊提交,即可完成API的產生。

後續步驟

  • 產生API後,需要對API進行測試並發布至資料服務市場,便於後續應用可以調用API。具體操作,請參見測試與發布API

  • 若需要對API進行刪除、版本管理、轉讓負責人等操作,請參見查看及管理API