表是关系型数据库和表格存储中的基本数据结构。关系型数据库创建表时需要定义完整的数据结构。相比之下,表格存储的数据表只需要定义主键信息。
SQL
使用CREATE TABLE语句创建表,如下所示:
CREATE TABLE UserHistory (
user_id VARCHAR(20) NOT NULL,
time_stamp INT NOT NULL,
item_id VARCHAR(50),
behavior_type VARCHAR(10),
behavior_amount DOUBLE,
behavior_count INT,
content VARCHAR(100),
PRIMARY KEY(user_id, time_stamp)
);
此表的主键包含 user_id 和 time_stamp。在创建数据表时,必须严格定义所有主键列和属性列,如有需要,可使用ALTER TABLE语句更改这些定义。
表格存储
使用表格存储创建数据表并指定如下参数,如下所示:
public static final String TABLE_NAME = "UserHistory";
TableMeta tableMeta = new TableMeta(TABLE_NAME);
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("user_id", PrimaryKeyType.STRING));
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("time_stamp", PrimaryKeyType.INTEGER));
// 数据的过期时间, 单位秒, -1代表永不过期. 假如设置过期时间为一年, 即为 365 * 24 * 3600
int timeToLive = -1;
// 保存的最大版本数, 设置为3即代表每列上最多保存3个最新的版本
int maxVersions = 3;
TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
// 设置读写预留值,若不设置则读写预留值均默认为0
request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(1, 1)));
client.createTable(request);
此表的主键包含 user_id 和 time_stamp,需要提供的参数主要有:
参数 | 说明 |
TABLE_NAME | 表的名称。 |
PrimaryKeySchema | 主键的名称及类型。 |
timeToLive | 数据表的数据过期时间。 |
maxVersion | 数据表属性列的最大版本数。 |
ReservedThroughtput | 数据表的预留读写吞吐量。[backcolor=transparent]注意:容量型实例不支持预留吞吐量的设置。 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。