跳到主要内容

Schemas

Schemas 类用于管理 MaxCompute 项目中的 Schema。Schema 是命名空间概念,用于组织和管理表、函数等对象。

获取实例​

Schemas schemas = odps.schemas();

方法​

create​

创建 Schema。

public void create(String schemaName) throws OdpsException
public void create(String projectName, String schemaName) throws OdpsException
public void create(String projectName, String schemaName, String comment, boolean ifNotExists) throws OdpsException

参数:

参数类型说明
schemaNameStringSchema 名称
projectNameString目标项目名称(可选)
commentStringSchema 描述(可选)
ifNotExistsbooleantrue 已存在时不报错;false 已存在时抛异常

get​

获取 Schema 对象。

public Schema get()
public Schema get(String schemaName)
public Schema get(String projectName, String schemaName)

参数:

参数类型说明
schemaNameStringSchema 名称;无参版本返回默认 Schema
projectNameString项目名称(可选)

返回值:Schema 对象


exists​

检查 Schema 是否存在。

public boolean exists(String schemaName) throws OdpsException
public boolean exists(String projectName, String schemaName) throws OdpsException

返回值:存在返回 true


delete​

删除 Schema。

public void delete(String schemaName) throws OdpsException
public void delete(String projectName, String schemaName) throws OdpsException

iterator​

获取 Schema 迭代器。

public Iterator<Schema> iterator()
public Iterator<Schema> iterator(String projectName)
public Iterator<Schema> iterator(String projectName, SchemaFilter filter)

iterable​

获取 Schema Iterable(支持 foreach 语法)。

public Iterable<Schema> iterable()
public Iterable<Schema> iterable(String projectName)

SchemaFilter​

方法说明
setOwner(String)按所有者过滤
setName(String)按名称前缀过滤

示例:

SchemaFilter filter = new SchemaFilter();
filter.setOwner("user_id");
Iterator<Schema> iterator = schemas.iterator("project_name", filter);

Schema 对象属性​

方法返回类型说明
getName()StringSchema 名称
getOwner()String所有者
getComment()String描述信息
getCreateTime()Date创建时间
getModifiedTime()Date最后修改时间
getProjectName()StringSchema 所属的项目名称
getType()StringSchema 类型

使用示例​

Schemas schemas = odps.schemas();

// 创建 Schema
schemas.create("my_project", "my_schema", "业务数据Schema", true);

// 检查是否存在
boolean exists = schemas.exists("my_schema");

// 遍历所有 Schema
for (Schema schema : schemas.iterable()) {
System.out.println(schema.getName());
}

// 删除 Schema
schemas.delete("my_schema");