Tablestore入门手册--数据表meta信息介绍

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
云备份 Cloud Backup,100GB 3个月
简介: 若有幸这篇文章也许会是您准备上手实践Tablestore的第一篇帮助文档,本文将通过介绍Tablestore的基础模型使大家理解Tablestore的数据表结构。主要讲如何设置数据表的Meta信息,建一张最适合自己业务的表,祝阅有所得,漫步云端。

若有幸这篇文章也许会是您准备上手实践Tablestore的第一篇帮助文档,本文将通过介绍Tablestore的基础模型使大家理解Tablestore的数据表结构。主要讲如何设置数据表的Meta信息,建一张最适合自己业务的表,祝阅有所得,漫步云端。

控制台创建数据表

Tablestore控制台登录入口

数据表meta参数解读

数据表meta参数的设置选择:
1111111

  • 数据表名称:数据表名称在单个实例中必须是唯一的。
  • 预留读/写吞吐量:与计量计费相关,高性能实例下表的属性信息包含预留读/写吞吐量,预留值可以设置为 0。预留读/写吞吐量的设置不影响数据表的读写性能和服务能力。若预留读/写吞吐量不为 0,数据表创建后,将会按照预留吞吐量立即开始计费。(如果是长期有稳定读写量的业务,选择配置合适的预留读写量,超出部分按量付费可以优化成本)
  • 数据生命周期(Time To Live):每个表可定义数据生命周期,例如生命周期配置为一个月,则该表数据中在一个月之前写入的数据就会被自动清理。数据的写入时间由版本来决定,版本一般由服务端在数据写入时根据服务器时间来定,也可由应用自己指定。(Tablestore暂时不提供批量删除的操作,合理设置数据的生命周期可以高效地清除过期数据 )
  • 最大数据版本(MaxVersion):每个表可定义每一列最多保存的版本数,用于控制一列的版本的个数,老版本的超过个数上限的数据会被自动清理。
  • 数据有效版本偏差:属性列的有效版本范围为:[数据写入时间 - 有效版本偏差,数据写入时间 + 有效版本偏差)。属性列版本号为毫秒,其除以 1000 换算成秒之后必须属于这个范围。如果当版本不属于这个范围,该行数据写入失败。
  • 主键(Primary Key):主键由(1-4列)主键列构成,建表时明确每列主键列数据类型,主键的配置及顺序一旦设置便不可修改,主键唯一区分一行数据。主键列支持多种数据类型(Integer、String、Binary),非分片键可以设置为自增列(写入数据时自动生成且分区内严格递增)。
  • 预定义列:Tablestore的属性列Schema free,原则上一行数据可以写入任意列,无需固定属性列schema。但是也可以在建表时预先定义一些列固定schema,主要用于建立二级索引,二级索引暂不支持多版本。

数据表结构解读

插入一些数据来看数据表的结构:
22222

  • 行:表是行的集合,而每个行是主键和属性的集合。
  • 列:分为主键列和属性列,主键列的集合称为本行的主键,属性列的集合称为本行的属性。创建表的时候,必须明确指定主键、每一个主键列的名字、数据类型以及主键列的顺序。Tablestore根据表的主键索引数据,表中的行会按照主键进行升序排序。每行的属性列个数没有限制,即每行的属性列可不同,一个属性列在某一行的值可为空,同一个属性列的值可以有多种数据类型。
  • 版本:每次更新属性列的值都会为该值生成一个新版本,每个版本会带一个可自定义的版本号,默认是当前时间的毫秒单位时间戳。
  • 数据生命周期:数据的存活时间,单位为秒。Tablestore会在后台对超过存活时间的数据进行清理,以减少用户的数据存储空间,降低存储成本。

Tablestore的数据表结构可以理解为一张三维表,以主键做唯一区分的每一行,行中列的数目不需要提前定义,列的数据类型也不需要提前定义;在此基础上增加时间维度,体现为属性列可以保存多个版本,每个版本有一个Timestamp作区分。

更多建表方式

CLI工具创建数据表

  • TablestoreCLI工具建表步骤

3333

使用SDK创建数据表

  • 使用SDK创建数据表的参数列表、样例代码详见各语言的SDK建表页。例:JAVA
private static void createTable(SyncClient client) {
        TableMeta tableMeta = new TableMeta(TABLE_NAME);
        tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema(PRIMARY_KEY_NAME, PrimaryKeyType.STRING)); // 为主表添加主键列。
        int timeToLive = -1; // 数据的过期时间,单位秒, -1代表永不过期,例如设置过期时间为一年, 即为 365 * 24 * 3600。
        int maxVersions = 3; // 保存的最大版本数,设置为3即代表每列上最多保存3个最新的版本。
        TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
        CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
        request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(0, 0))); // 设置读写预留值,容量型实例只能设置为0,高性能实例可以设置为非零值。
        client.createTable(request);
    }

表设计优化

表设计优化的重点是主键的设计,以数据散列为目标,使数据分布更均匀,避免热点,详细表设计优化参考

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
阿里云表格存储使用教程
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,根据99.99%的高可用以及11个9的数据可靠性的标准设计。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问。 产品详情:https://www.aliyun.com/product/ots
目录
相关文章
|
存储 自然语言处理 NoSQL
表格存储 Node.js SDK 开发入门
本文将结合电商订单场景为例,介绍表格存储 Tablestore Node.js SDK 的基本使用方法。
411 1
|
存储 SQL 运维
Tablestore 控制台入门指南
通过阅读本文您将了解和学习到如何通过表格存储Tablestore控制台快速搭建和操作一款零运维、无限容量的数据库。表格存储Tablestore提供了一定使用量的免费额度(10GB数据存储量、1000万按量读写吞吐),供大家体验测试使用。下面将开始介绍如何通过Tablestore控制台创建实例、创建数据表、读写数据、创建索引、搜索数据、删除索引和数据表。
539 0
Tablestore 控制台入门指南
|
存储 自然语言处理 NoSQL
表格存储 Python SDK 开发入门
本文将结合电商订单场景为例,介绍表格存储 Tablestore Python SDK 的基本使用方法。
580 0
|
存储 自然语言处理 NoSQL
表格存储 Go SDK 开发入门
本文将结合电商订单场景为例,介绍表格存储 Tablestore Go SDK 的基本使用方法。
313 0
|
自然语言处理 NoSQL Java
表格存储 Java SDK 开发入门
本文将结合电商订单场景为例,介绍表格存储 Tablestore Java SDK 的基本使用方法。
947 0
|
存储 NoSQL 数据管理
Tablestore入门指南-GetRange范围查询详解
查询接口 表格存储Tablestore作为大数据存储服务,提供了多种数据输出接口,主要包含: 单行读(GetRow)、 批量读(BatchGetRow)、 范围读(GetRange)、多元索引检索(Search)以及通道服务的数据订阅(Tunnel Service)。
2960 0
|
SQL 存储 NoSQL
Tablestore入门手册-条件更新
功能说明 条件更新功能只有在满足条件时才对表中的数据进行更改,当不满足条件时更新失败。 比如有如下场景,初始化数据,当数据字段A为-1时,将A的值更新为指定的内容。比如更新为12;如果不是-1则更新失败。   条件更新支持两个维度。分别是行的存在性检查和列值的条件判断。 第一个维度是行的条件检查,包括如下三种条件: IGNORE:忽略,不做存在
1204 0
|
存储 SQL 移动开发
Tablestore入门手册-UpdateRow接口详解| 1月14号云栖号夜读
今天的首篇文章,讲述了:表格存储Tablestore入门手册系列主要介绍表格存储的各个功能接口和适用场景,帮助客户了解和使用表格存储Tablestore。本文对表格存储Tablestore的UpdateRow接口进行介绍,包括其参数、功能示例、使用场景等。
2799 0