元数据管理API提供对数据库、表、分区和视图等元数据对象的统一操作与管理能力,支持用户高效地创建、查询、更新和删除元数据,满足多样化的数据管理需求。
授权信息
RAM访问控制
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
操作:是指具体的权限点。
访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
资源类型:是指操作中支持授权的资源类型。具体说明如下:
对于必选的资源类型,用前面加 * 表示。
对于不支持资源级授权的操作,用
全部资源
表示。
条件关键字:是指云产品自身定义的条件关键字。
关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:详见具体API | 详见具体API | *全部资源
| 无 | 无 |
RAM访问控制更新通常需要1分钟左右生效。
ACL权限管理
详情请参考授权管理。
数据库API
ListDatabases - 获取数据库列表
获取数据目录中数据库列表。
RAM访问控制
返回值
名称 | 类型 | 描述 | 示例值 |
| array | 数据目录的数据库名称数组。无法保证数组元素顺序。 | [test_db1, test_db2] |
database | string | 数据库名称。 | test_db1 |
示例
List<String> databases = restApi.listDatabases();
ListDatabasesPaged - 分页获取数据库列表
分页查询数据目录中数据库列表,可以根据数据库名称匹配。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
maxResults | integer | 否 | 一次返回的个数, 如果未提供,如果未设置,则设置为服务器配置的值。当设置为大于 0 的值时,则取此值和服务器配置值中的最小值。 | 10 |
pageToken | string | 否 | 分页的开始位置,第一次填写null,后续的填写上一次的 response 中返回的 NextPageToken,如果返回的 NextPageToken 为空字符串,那么说明无数据了。 | db_test |
databaseNamePattern | string | 否 | 数据库名称的sql LIKE右模糊模式(%)。如果未设置或为空,将返回所有数据库 | db_test% |
返回值
名称 | 类型 | 描述 | 示例值 |
- | object | 返回数据。 | |
| array | 数据目录的数据库名称数组。无法保证数组元素顺序。 | [test_db1, test_db2] |
database | string | 数据库名称。 | test_db1 |
nextPageToken | string | 下一次分页查询的起始位置。 | test_db1 |
示例
获取全部数据库列表
int maxResults = 10; List<String> results = new ArrayList<>(); Map<String, String> queryParams = Maps.newHashMap(); String pageToken = null; do { PagedResponse<String> response = restApi.listDatabasesPaged(10, pageToken, null); pageToken = response.getNextPageToken(); if (response.data() != null) { results.addAll(response.data()); } if (pageToken == null || response.data() == null || response.data().isEmpty()) { break; } } while (StringUtils.isNotEmpty(pageToken));
根据数据库名称匹配分页获取数据库列表
PagedList<String> pagedDatabases = restApi.listDatabasesPaged(10, null, "test_db%");
CreateDatabase - 新增数据库
在数据目录中创建一个新的元数据库。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
name | string | 否 | 名称。 | db_demo |
properties | map | 否 | 配置参数结构体。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回参数。 |
异常说明
类型 | 描述 |
AlreadyExistsException | REST请求返回409, 表示数据库已经存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有创建数据库的权限。 |
示例
Map<String, String> properties = new HashMap();
properties.put("k1", "v1");
api.createDatabase("db_demo", properties);
GetDatabase - 获取数据库
从在数据目录中获取某个元数据库。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
name | string | 是 | 名称。 | db_demo |
返回值
名称 | 类型 | 描述 | 示例值 |
- | object | 返回数据。 | |
id | string | 数据库ID。 | 6b168495-4a4f-48a5-be43-c258d6ce0715 |
name | string | 数据库名称。 | db_demo |
location | string | Database的Location。 | |
options | map | 配置参数结构体。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取数据库。 |
示例
GetDatabaseResponse response = api.getDatabase(name);
DropDatabase - 删除数据库
从数据目录中删除一个数据库。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
name | string | 是 | 名称。 | db_demo |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回参数。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取数据库。 |
示例
api.dropDatabase(name);
AlterDatabase - 变更数据库
更新数据目录中某个数据库的信息。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
name | string | 是 | 名称。 | db_demo |
| array | 否 | 需要删除的配置列表。 | k1 |
removal | string | 需要删除的配置。 | ||
updates | map | 否 | 需要更新的配置键值对。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回参数。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取数据库。 |
示例
List<String> removals = new ArrayList<>();
removals.add(“k1”)
Map<String, String> updates = new HashMap<>();
updates.put("k2", "v2")
api.alterDatabase(name, removals, updates);
表API
CreateTable - 创建表
创建表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 | ||
schema | 是 | 表结构。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
AlreadyExistsException | REST请求返回409,表示表已经存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有创建表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
Schema schema =
new Schema(
Lists.newArrayList(
new DataField(0, "pk", DataTypes.INT()),
new DataField(1, "col1", DataTypes.STRING()),
new DataField(2, "col2", DataTypes.STRING())),
Collections.emptyList(),
Collections.emptyList(),
Maps.newHashMap(),
"");
restApi.createTable(identifier, schema);
DropTable - 删除表
删除表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有删除当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "new_table");
restApi.dropTable(identifier);
RenameTable - 重命名表
重命名表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
fromIdentifier | 是 | 原表标识符。 | ||
toIdentifier | 是 | 目标表标识符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示原表不存在。 |
AlreadyExistsException | REST请求返回409,表示目标表已存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有修改当前表的权限。 |
示例
Identifier fromIdentifier = Identifier.create("test_db", "old_table");
Identifier toIdentifier = Identifier.create("test_db", "new_table");
restApi.renameTable(fromIdentifier, toIdentifier);
AlterTable - 变更表
根据标识符变更表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 | ||
| array | 是 | 表变更信息列表。 | |
schemaChange | 是 | 表变更信息。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有修改当前表的权限。 |
示例
ArrayList<SchemaChange> schemaChanges = Lists.newArrayList(
SchemaChange.addColumn("col2", DataTypes.DATE()),
SchemaChange.addColumn("col3", DataTypes.STRING(), "col3 field"));
restApi.alterTable(
identifier,
schemaChanges);
GetTable - 获取表详情
获取数据湖中表的详细信息。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
getTableResponse | 表详情信息。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
GetTableResponse response = restApi.getTable(identifier);
ListTables - 查询表列表
用于查询数据湖表的名称列表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
databaseName | string | 是 | 数据库名称。 | test_db |
返回值
名称 | 类型 | 描述 | 示例值 |
| array | 表名称列表。 | [test_table1, test_table2] |
table | string | 表名称。 | test_table |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有查看当前库的权限。 |
示例
String databaseName = "test_db";
List<String> tables = restApi.listTables(databaseName);
ListTablesPaged - 分页获取表名称列表
分页查询数据湖中表列表,可以根据表名称匹配。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
databaseName | string | 是 | 数据库名称。 | test_db |
maxResults | string | 否 | 每页大小,实际生效值为传入值与服务端默认值之间的最小值。 | 10 |
pageToken | string | 否 | 翻页Token,从返回结果返回,无则传null,如果返回的 NextPageToken为空字符串,那么说明无数据了。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
tableNamePattern | string | 否 | SQL风格的表右模糊匹配模式(%),不传将返回所有表。 | test_table% |
返回值
名称 | 类型 | 描述 | 示例值 |
- | object | 返回数据。 | |
| array | 表名称列表。 | |
table | string | 表名称。 | test_table |
nextPageToken | string | 翻页Token。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有查看当前库的权限。 |
示例
获取全部表列表
String databaseName = "db_test"; int maxResults = 10; List<String> results = new ArrayList<>(); Map<String, String> queryParams = Maps.newHashMap(); String pageToken = null; do { PagedResponse<String> response = restApi.listTablesPaged(databaseName, 10, pageToken, null); pageToken = response.getNextPageToken(); if (response.data() != null) { results.addAll(response.data()); } if (pageToken == null || response.data() == null || response.data().isEmpty()) { break; } } while (StringUtils.isNotEmpty(pageToken));
根据表名称匹配分页获取表列表
String databaseName = "test_db"; PagedList<String> pagedTables = restApi.listTablesPaged(databaseName, 10, pageToken, "test_table%");
ListTableDetailsPaged - 分页获取表详情列表
分页查询数据湖中表详情列表,可以根据表名称匹配。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
databaseName | string | 是 | 数据库名称。 | test_db |
maxResults | string | 否 | 每页大小,实际生效值为传入值与服务端默认值之间的最小值。 | 10 |
pageToken | string | 否 | 翻页Token,从返回结果返回,无则传空,如果返回的NextPageToken为空字符串,那么说明无数据了。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
tableNamePattern | string | 否 | SQL风格的表右模糊匹配模式(%),不传将返回所有表。 | test_table% |
返回值
名称 | 类型 | 描述 | 示例值 |
- | object | 返回数据。 | |
| array | 表详情列表。 | |
tableDetail | 表详情。 | ||
nextPageToken | string | 翻页Token。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有查看当前库的权限。 |
示例
获取全部表详情
String databaseName = "test_db"; int maxResults = 10; List<GetTableResponse> results = new ArrayList<>(); Map<String, String> queryParams = Maps.newHashMap(); String pageToken = null; do { PagedResponse<String> response = restApi.listTablesPaged(databaseName, 10, pageToken, null); pageToken = response.getNextPageToken(); if (response.data() != null) { results.addAll(response.data()); } if (pageToken == null || response.data() == null || response.data().isEmpty()) { break; } } while (StringUtils.isNotEmpty(pageToken));
根据表名称匹配分页获取表
String databaseName = "test_db"; PagedList<GetTableResponse> pagedTableDetails = restApi.listTablesPaged(databaseName, 10, pageToken, "test_table%");
GetTableSnapshot - 获取表的最新快照信息
获取数据湖中表最新快照信息。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
TableSnapshot | 表快照信息。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回 404,表示表或者最新的快照不存在。 |
ForbiddenException | REST请求返回 403,表示当前用户没有获取当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
restApi.loadSnapshot(identifier)
GetVersionSnapshot - 获取某个版本的快照
根据版本信息获取表的快照。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 | ||
version | String | 是 | 版本信息。 | "Latest", "EARLIEST","1" |
返回值
名称 | 类型 | 描述 | 示例值 |
Snapshot | 表快照信息。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404, 表示表或者最新的快照不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
String version = "Latest";
restApi.loadSnapshot(identifier, version);
ListSnapshotsPaged - 分页查询快照列表
用于查询数据湖表的快照列表信息。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 | ||
maxResults | string | 否 | 每页大小, 实际生效值为传入值与服务端默认值之间的最小值。 | 10 |
pageToken | string | 否 | 翻页Token,从返回结果返回,无则传空,如果返回的 NextPageToken为空字符串,那么说明无数据了。 | 1 |
返回值
名称 | 类型 | 描述 | 示例值 |
| array | 表快照信息列表。 | |
snapshot | 表快照信息。 | ||
nextPageToken | string | 翻页Token。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有查看当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
int maxResults = 10;
List<Snapshot> results = new ArrayList<>();
Map<String, String> queryParams = Maps.newHashMap();
String pageToken = null;
do {
PagedResponse<Snapshot> response = restApi.listSnapshotsPaged(identifier, maxResults, pageToken);
pageToken = response.getNextPageToken();
if (response.data() != null) {
results.addAll(response.data());
}
if (pageToken == null || response.data() == null || response.data().isEmpty()) {
break;
}
} while (StringUtils.isNotEmpty(pageToken));
RollbackTable - 回滚表
回滚数据库中的表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 | ||
instant | 是 | 回滚实例信息。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示表或者回滚的快照或者标签不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有回滚当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
Instant instant = Instant.snapshot(snapshotId)
restApi.rollbackTo(identifier, instant);
CreateBranch - 创建表分支
创建数据库中表分支。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 | ||
branch | string | 是 | 分支。 | test_branch |
fromTag | string | 否 | 标签。 | test_tag |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据表或标签不存在。 |
AlreadyExistsException | REST请求返回409,表示分支已经存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有创建分支的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "new_table");
restCatalog.createBranch(tableIdentifier, "test_branch", "tag_test");
DropBranch - 删除表分支
根据名称删除数据库中的表分支。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 | ||
branch | string | 是 | 分支名。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示分支不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有删除当前分支的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
restApi.dropBranch(identifier, "branch_test");
ForwardBranch - Forward表分支
Forward表分支。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 | ||
branch | string | 是 | 分支名。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示分支不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有删除当前分支的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
restApi.fastForward(identifier, "branch_test");
ListBranches - 获取表分支列表
用于查询数据库中表分支列表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
| array | 表名称列表。 | [test_branch1, test_branch2] |
branch | string | 表名称。 | test_branch |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有查看当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "test_table");
List<String> branches = restApi.listBranches(identifier);
分区API
ListPartitions - 获取分区列表
获取分区列表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
| array | 分区详情列表。 | |
partition | string | 分区详情。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "new_table");
List<Partition> tables = restApi.listPartitions(identifier);
ListPartitionsPaged - 分页获取分区列表
分页查询分区列表,可以根据分区名称匹配。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表标识符。 | ||
maxResults | string | 否 | 每页大小,实际生效值为传入值与服务端默认值之间的最小值。 | 10 |
pageToken | string | 否 | 翻页Token,从返回结果返回,无则传空,如果返回的 NextPageToken为空字符串,那么说明无数据了。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
partitionNamePattern | string | 否 | SQL风格的表右模糊匹配模式,不传将返回所有表。 | year=2025% |
返回值
名称 | 类型 | 描述 | 示例值 |
- | object | 返回数据。 | |
| array | 分区详情列表。 | |
partition | 分区详情。 | ||
nextPageToken | string | 翻页Token。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有当前表的权限。 |
示例
获取全部分区详情列表
Identifier identifier = Identifier.create("test_db", "new_table"); int maxResults = 10; List<String> results = new ArrayList<>(); Map<String, String> queryParams = Maps.newHashMap(); String pageToken = null; do { PagedResponse<Partition> response = restApi.listPartitionsPaged(identifier, 10, pageToken, null); pageToken = response.getNextPageToken(); if (response.data() != null) { results.addAll(response.data()); } if (pageToken == null || response.data() == null || response.data().isEmpty()) { break; } } while (StringUtils.isNotEmpty(pageToken));
根据分区名称匹配分页获取分区详情列表
Identifier identifier = Identifier.create("test_db", "new_table"); PagedList<Partition> pagedPartitions = restApi.listPartitionsPaged(identifier, 10, pageToken, "year=2025%");
MarkDonePartitions - 标记完成分区
标记完成分区。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 表描述符。 | ||
| array | 是 | 待标记完成的分区列表。 | |
partition | Map | 是 | 待标记完成的分区。 | {"year":"1025", "month": "05"} |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回值。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据表不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有当前表的权限。 |
示例
Identifier identifier = Identifier.create("test_db", "new_table");
List<Map<String, String>> partitions = new ArrayList<>();
LinkedHashMap<String, String> partition = new LinkedHashMap<>();
partition.put("year", "2025");
partition.put("month", "05");
restApi.markDonePartitions(identifier, partitions);
视图API
ListViews - 查询视图列表
获取数据库中视图列表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
databaseName | string | 是 | 数据库名称。 | db_demo |
返回值
名称 | 类型 | 描述 | 示例值 |
| array | 视图名称列表。 | |
view | string | 视图名称。 | view_demo |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示视图不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取视图的权限。 |
示例
List<String> viewNames = api.listViews(name);
ListViewsPaged - 分页查询视图列表
分页获取数据库中视图列表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
databaseName | string | 是 | 数据库名称。 | db_demo |
maxResults | integer | 否 | 一次返回的个数, 如果未提供,如果未设置,则设置为服务器配置的值。当设置为大于 0 的值时,则取此值和服务器配置值中的最小值。 | 10 |
pageToken | string | 否 | 分页的开始位置,第一次填写null,后续的填写上一次的 response 中返回的 NextPageToken,如果返回的 NextPageToken为空字符串,那么说明无数据了。 | view_test |
viewNamePattern | string | 否 | 视图名称的sql LIKE右模糊模式(%)。如果未设置或为空,将返回所有视图。 | view_tes% |
返回值
名称 | 类型 | 描述 | 示例值 |
- | object | 返回数据。 | |
| array | 视图名称列表。 | [view_demo] |
view | string | 视图名称。 | view_demo |
nextPageToken | string | 翻页Token。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示视图不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取视图的权限。 |
示例
获取全部表列表
String databaseName = "db_test"; int maxResults = 10; List<String> results = new ArrayList<>(); Map<String, String> queryParams = Maps.newHashMap(); String pageToken = null; do { PagedResponse<String> response = restApi.listViewsPaged(databaseName, 10, pageToken, null); pageToken = response.getNextPageToken(); if (response.data() != null) { results.addAll(response.data()); } if (pageToken == null || response.data() == null || response.data().isEmpty()) { break; } } while (StringUtils.isNotEmpty(pageToken));
根据表名称匹配分页获取表列表
String databaseName = "test_db"; PagedList<String> pagedViews = restApi.listViewsPaged(databaseName, 10, null, "test_v%");
ListViewDetailsPaged - 分页查询视图详细信息列表
分页查询数据库中的视图详细信息列表。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
databaseName | string | 是 | 数据库名称。 | db_demo |
maxResults | integer | 否 | 一次返回的个数,如果未提供,如果未设置,则设置为服务器配置的值。当设置为大于 0 的值时,则取此值和服务器配置值中的最小值。 | 10 |
pageToken | string | 否 | 分页的开始位置,第一次填写null,后续的填写上一次的 response 中返回的 NextPageToken,如果返回的 NextPageToken 为空字符串,那么说明无数据了。 | view_test |
viewNamePattern | string | 否 | 视图名称的sql LIKE右模糊模式(%)。如果未设置或为空,将返回所有视图。 | view_tes% |
返回值
名称 | 类型 | 描述 | 示例值 |
- | PagedList | 返回数据。 | |
| array | 视图详情列表。 | [view_demo] |
viewDetail | 视图详情。 | ||
nextPageToken | string | 下一页开头的Token。 | 2cb472ec1bf84f8d92f9c4baa0d21c19aa |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示视图不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取视图详情的权限。 |
示例
获取全部表列表
String databaseName = "db_test"; int maxResults = 10; List<GetViewResponse> results = new ArrayList<>(); Map<String, String> queryParams = Maps.newHashMap(); String pageToken = null; do { PagedResponse<GetViewResponse> response = restApi.listViewDetailsPaged(databaseName, 10, pageToken, null); pageToken = response.getNextPageToken(); if (response.data() != null) { results.addAll(response.data()); } if (pageToken == null || response.data() == null || response.data().isEmpty()) { break; } } while (StringUtils.isNotEmpty(pageToken));
根据表名称匹配分页获取表列表
String databaseName = "test_db"; PagedList<GetViewResponse> pagedViewDetails = restApi.listViewDetailsPaged(databaseName, 10, null, "test_v%");
CreateView - 创建视图
在数据库中创建一个视图。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 视图描述符。 | ||
schema | 是 | 视图结构。 |
异常说明
类型 | 描述 |
AlreadyExistsException | REST请求返回409,表示视图已经存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有创建视图的权限。 |
示例
Identifier identifier = new Identifier(databaseName, "my_view");
RowType rowType = RowType.builder().field("str",DataTypes.STRING()).build();
String query = "SELECT * FROM OTHER_TABLE";
Map<String, String> option = new HashMap<>();
Map<String, String> dialects = new HashMap<>();
dialects.put("spark", "SELECT * FROM SPARK_TABLE");
ViewSchema schema =
new ViewSchema(
rowType.getFields(),
query,
dialects,
"comment",
option));
api.createView(identifier, schema);
GetView - 获取视图
获取数据库中某个视图详情。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 视图描述符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
id | string | 视图ID。 | |
name | string | 视图名称。 | |
schema | 视图结构。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取数据库的权限。 |
示例
Identifier identifier = new Identifier(databaseName, "my_view");
GetViewResponse response = api.getView(identifier);
DropView - 删除视图
删除数据库中某个视图。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
identifier | 是 | 视图描述符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回参数。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示数据库不存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有获取数据库的权限。 |
示例
Identifier identifier = new Identifier(databaseName, "my_view");
api.dropView(identifier);
RenameView - 重命名视图
重命名数据库中某个视图。
RAM访问控制
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
fromView | 是 | 原视图描述符。 | ||
toView | 是 | 更新后视图描述符。 |
返回值
名称 | 类型 | 描述 | 示例值 |
当前API暂无返回参数。 |
异常说明
类型 | 描述 |
NoSuchResourceException | REST请求返回404,表示视图不存在。 |
AlreadyExistsException | REST请求返回409,表示视图已经存在。 |
ForbiddenException | REST请求返回403,表示当前用户没有重命名视图的权限。 |
示例
Identifier fromView = new Identifier(databaseName, "from_view");
Identifier toView = new Identifier(databaseName, "to_view");
api.renameView(fromView, toView);