开发者学堂课程【阿里云表格存储使用教程:表格存储数据多版本介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/441/detail/5442
表格存储数据多版本介绍
内容介绍
一、表格存储数据模型详解
二、数据多版本之基础概念
一、表格存储数据模型详解
简单介绍一下表格存储的数据生命周期管理功能。
先回顾一下表格存储的数据模型。
表格存储支持最多四个组件列,组件列不能为空,表格组会根据第一个组件列值将数据分散到不同的数据分区中,以做到很好的负载均衡。同时,由于表格存储是一个 schema-free 的结构,用户不需要在预先使用的时候就定义数据表属性列的个数,以及属性列的类型,每个属性列在使用的时候定义即可。同时表格存储引入了一个版本号属性列的概念,每个属性列除了组件信息、数据类的名称,同时会有一个版本号来对应相应具体的值。比如说 ts1、ts2 以及ts3,它们对应的分别是不同时间写入的 value1、value2、value3 的值。
二、数据多版本之基础概念
1.数据版本号
(1)用户可以指定写入的数据的版本号
用户在写入数据的时候,可以为写入的属性列指定对应的版本号
(2)如不指定服务端会将当前时间的毫秒单位时间戳(从1970-01-01 00:00:00 UTC 计算起的毫秒数)作为属性列生成版本号
2.数据诞生时间
(1)版本号是以毫秒为单位的,进行计算时,需要先除以1000
(2)版本号为1468944000000 ,该版本的数据诞生时间就为2016-07-2000:00:00
(3)版本号为1468944000 ,该版本的数据诞生时间就为1970-01-1808:02:24
3.数据的过期计算逻辑
写入数据版本: 1468944000000 ,表的生命数据周期 TTL=86400,就是一天
(1)当前时间2016-07-21 00:00:01换算为毫秒的时间戳为 x , x= 1469030401000
(2)数据的版本号 y,y= 1468944000000
①TTL = 86400 ,换算成毫秒 z , z= 86400000
②x-y= 86401000 > 86400000 ,该版本数据过期。系统后台会对数据进行自动删除。
4.数据生命周期
数据生命周期( Time to live ,简称 TTL )是数据表的一个属性,即数据的存活时间,单位为秒。表格存储会在后台对超过存活时间的数据进行清理,以减少用户的数据存储空间,降低存储成本。
● TTL 由用户在建表时进行设置,如果希望数据永不过期,将其设置为-1
● 建表后,可以通过 UpdateTable 接口动态更改TTL
● TTL 的单位为秒,例如期望过期时间为30天, TTL 应设置为2592000 (即30* 24 * 3600 )
5.最大版本数
最大版本数( Max versions )是数据表的一个属性,表示该数据表中的属性列能够保留多少个版本的数据。当一个属性列的版本个数超过 Max versions 时,最早的版本将被异步删除。
以某一张 Max versions 等于2的表为例,假设某一个属性列已经有 value1 和value2,分别对应 ts 一时间、版本号以及 ts2 版本号,在某一个时刻先写入value3,相当于新增一个版本号为 ts3 值为 value3 的值,那么这个时候由于最大版本数为2,最早的 ts1为第一个版本将会被后台异步删除,那么用户也只可以查询到 ts2 和 ts3 这两个版本以及对应的数据。