元数据API是Paimon官方提供的一种标准、开源且开放的接口,具有轻量级的SDK依赖,仅包含与Paimon相关的类,不会与您的程序依赖产生冲突。目前,元数据API仅支持在VPC内访问,禁止公网访问。
准备工作
配置VPC白名单
目前,元数据API仅支持在白名单内的VPC访问。开通DLF服务时,系统会自动将用户当前Region下的VPC ID同步至用户级白名单。如后续有新增VPC的需求,您可通过DLF 控制台手动添加对应的VPC ID。操作步骤如下:
- 登录数据湖构建控制台。 
- 单击左侧菜单栏的系统和安全,进入系统和安全页面。 
- 单击系统安全页签,单击新增VPC ID。 
- 在弹出的对话框中,输入VPC ID,单击确定。 
授予角色DLF权限
- 授予ECS角色RAM权限。如果是EMR集群,则角色为AliyunECSInstanceForEMRRole。 - 使用阿里云账号或RAM管理员登录RAM控制台。 
- 单击,查询ECS角色。 
- 单击操作列的新增授权,进入新增授权页面。 
- 在权限策略中,查询并勾选AliyunDLFFullAccess,单击确认新增授权。 
  
- 授予ECS角色DLF权限。 - 登录数据湖构建控制台。 
- 在Catalog列表页面,单击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.2.0</version>
</dependency>您也可以直接下载JAR文件paimon-api-1.2.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 |