LAS Catalog 表文件默认存储在 TOS 标准存储中,配置表生命周期管理后,系统自动按表或分区的更新时间将长期未使用的数据归档至 TOS 归档存储,降低存储成本。适用于冷数据较多、需控制数据湖存储费用的场景。本文介绍表生命周期的配置、删除方式、约束限制及常见问题处理。
注意与限制
当前仅支持 Hive 类型的表使用存储优化-分区生命周期管理功能。 用户应具有目标表的 write 权限,否则不能使用表的分区生命周期管理功能。 清理分区数据会产生队列资源费用。
账单的计费项为:cpu_hour_{region},即按时计费的队列资源费用(按量付费,每小时出账单)。 每个客户的执行分区清理任务的资源消耗最高不超过 10 CU/小时。
配置分区生命周期管理
在 LAS控制台>元数据>Catalog 页面左侧列表选择目标表,进入表详情页, 选择 存储优化>分区生命周期管理 页签,点击功能开启按钮,进入分区生命周期管理配置页。
请根据业务实际需求配置分区生命周期管理,不建议设置过短时间,因为数据从 TOS 归档存储取回到 TOS 标准存储中,需要在 TOS 中操作解冻,并会收取对应取回费用。取回费用参考:数据取回费用 。
注意
目前 TOS 的生命周期管理有一些约束限制,LAS 同样遵循这些约束限制:
生命周期规则生效时间 :创建生命周期规则后不会立即对桶内所有对象生效,会存在一定的延迟。即生命周期规则创建后的 24 小时内,TOS 会加载规则。规则加载完成后,TOS 会在 24 小时内开始启动执行。生命周期规则执行优先级 :不同的前缀重叠状态,生命周期规则执行的优先级不同。生命周期规则数量 :单个桶的生命周期规则最多不超过 1000 条,并且一个桶中所有生命周期规则的 JSON 描述总大小不能超过 20KB。规则的 prefix 长度(也就是表的存储路径)不能超过1024字节。归档后数据使用限制:CopyObject 、GetObject、SetObjectMeta、UploadPartCopy 接口设置归档存储对象,或者移动、重命名和下载归档存储对象之前,需要先恢复对象,否则会失败。 若 insert overwrite 表数据,会删除老的数据,上传新的数据。新数据的文件上传时间就是表的分区变更时间。该表的生命周期倒计时会从最后一次更新时间开始计算。 若 insert into 表数据,历史数据的更新时间不会改变,新插入的数据更新时间为最新时间。这可能会造成表的旧分区数据已经达到归档条件进入归档型存储,而新分区的数据依然在标准存储中的情况。
参数
说明
分区归档规则配置
支持按照三种规则配置生命周期:
注意
分区归档是异步任务,分区生命周期规则将在设置后24小时内生效。
分区字段
按分区名称配置生命周期时可选择分区字段,分区字段在创建表或编辑表时指定。
日期格式
生命周期日期的格式,按分区名称配置生命周期时可选择。
支持三种日期格式:
yyyyMMdd yyyy-MM-dd yyyy.MM.dd 保留分区范围
支持按照天数保留分区存储数据。
保留分区数据默认存储在 TOS 标准存储,超期的分区数据将转至TOS 归档存储。
关于TOS存储类型详细信息请参见存储类型 。
查看优化结果
功能配置开启后,分区归档在24小时内生效。您可以在分区生命周期规则页面查看优化记录和效果。
修改分区生命周期管理
在 LAS控制台>元数据>Catalog 页面左侧列表选择目标表,进入表详情页, 选择 存储优化>分区生命周期管理 页签:
点击功能按钮,关闭 分区生命周期管理。 点击右侧 修改配置 ,可修改分区归档规则配置。 说明
若将数据表删除,则表的生命周期管理功能将自动随之删除。
常见问题
如果表的数量超过1000个,如何设置生命周期
优先建议 database 级别设置 database 存储路径下的生命周期,即在 TOS 生命周期管理 的页面,设置 database 存储路径为前缀的生命周期规则,这样相当于在 database 粒度有一个默认的生命周期规则,如果表的生命周期规则和 database 不同,再开启表的生命周期规则。 单个 TOS bucket 有1000个规则数量限制,可以考虑使用多个 TOS bucket。 错误:Found two rules with same prefix
需开启前缀重叠,详细操作参考:设置前缀重叠 。
错误:The operation is not valid for the object's storage class
归档的数据不能被移动、读取等,也就是说table rename/select等操作都会被限制。需要先恢复为标准存储才能使用。详细操作参考:恢复文件 。