中繼資料API是Paimon官方提供的一種標準、開源且開放的介面,具有輕量級的SDK依賴,僅包含與Paimon相關的類,不會與您的程式依賴產生衝突。目前,中繼資料API 通過 DLF VPC Endpoint 可以實現低延時訪問;通過阿里雲 OpenAPI Endpoint 支援公網訪問,可以滿足跨Region、本地調試等需求(OpenAPI Endpoint 簽名支援依賴 Paimon 1.4 版本用戶端)。
準備工作
配置VPC白名單
目前,中繼資料API 預設僅支援在白名單內的VPC訪問。開通DLF服務時,系統會自動將使用者當前Region下的VPC ID同步至使用者級白名單。如後續有新增VPC的需求,您可通過DLF 控制台手動添加對應的VPC ID。操作步驟如下:
登入資料湖構建控制台。
單擊左側功能表列的系統和安全,進入系統和安全頁面。
單擊系統安全頁簽,單擊新增VPC ID。
在彈出的對話方塊中,輸入VPC ID,單擊確定。
授予角色DLF許可權
授予ECS角色RAM許可權。如果是EMR叢集,則角色為AliyunECSInstanceForEMRRole。
使用阿里雲帳號或Resource Access Management員登入RAM控制台。
單擊,查詢ECS角色。
單擊操作列的新增授權,進入新增授權頁面。
在權限原則中,查詢並勾選AliyunDLFFullAccess,單擊確認新增授權。

授予ECS角色DLF許可權。
登入資料湖構建控制台。
在Catalogs列表頁面,單擊Catalog名稱,進入Catalog詳情頁。
單擊許可權頁簽,單擊授權。
在授權頁面,配置以下資訊,單擊確定。
使用者/角色:選擇RAM使用者/RAM角色。
選擇授權對象:在下拉式清單中選擇ECS Role。
說明如果使用者下拉式清單中未找到ECS Role,可以在管理頁面單擊同步。
預置權限類別型:選擇Data Editor。
添加Maven依賴
如果您使用Java編程並希望引用API SDK,可以添加以下Maven依賴。
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-api</artifactId>
<version>1.3.0</version>
</dependency>您也可以直接下載JAR檔案paimon-api-1.3.0.jar。
建立REST API
推薦使用ECS Role來進行DLF REST的鑒權。
import org.apache.paimon.options.Options;
import org.apache.paimon.rest.RESTApi;
import static org.apache.paimon.options.CatalogOptions.WAREHOUSE;
import static org.apache.paimon.rest.RESTCatalogOptions.DLF_TOKEN_LOADER;
import static org.apache.paimon.rest.RESTCatalogOptions.TOKEN_PROVIDER;
import static org.apache.paimon.rest.RESTCatalogOptions.URI;
public class RESTApiExample {
public static void main(String[] args) {
Options options = new Options();
options.set(URI, "http://cn-hangzhou-vpc.dlf.aliyuncs.com");
options.set(WAREHOUSE, "dlf_test");
options.set(TOKEN_PROVIDER, "dlf");
options.set(DLF_TOKEN_LOADER, "ecs");
RESTApi api = new RESTApi(options);
System.out.println(api.listTables("my_database"));
}
}參數說明如下。
參數 | 描述 | 是否必填 | 樣本 |
URI | 訪問DLF Rest Catalog Server的URI,格式為 | 是 | http://cn-hangzhou-vpc.dlf.aliyuncs.com |
WAREHOUSE | DLF Catalog名稱。 | 是 | dlf_test |
TOKEN_PROVIDER | Token提供方,固定為dlf。 | 是 | dlf |
DLF_TOKEN_LOADER | 通過ECS執行個體頒發臨時Token,固定為ecs。 說明 您也可以不使用ECS的鑒權方式,而是通過配置 | 否 | ecs |