You need to enable JavaScript to run this app.
导航

数据活性分类 TTL 及冷热分层

最近更新时间2023.06.09 10:36:32

首次发布时间2023.06.09 10:36:32

1. 存储类型说明
  • LAS 存储:用于存储库表、资源包、文件系统等 LAS 数据单元,其中可细分为 LAS 热存储和 LAS 冷存储两种类型。

  • LAS 冷存储:通过 TOS Namespace Managed Mode 构建,物理存储于 TOS,但客户仅感知 LAS ,操作及收费入口均为 LAS。

  • LAS 热存储:通过 TOS + 缓存空间 Hot Storage 构建,物理存储于 SSD,相较于冷存储有一定的查询增速效果,适合存放访问频率高的库表数据。但客户仅感知 LAS ,操作及收费入口均为 LAS。

alt

2. 冷热分层说明

alt

2.1 已定义冷热分层的说明

  1. 在创建 Schema/表时,通过 UI or SQL ,支持用户定义表数据转为冷数据的时间周期。

  2. 冷存储和热存储在功能上没有差异, 冷存**/热存的转换为系统自动操作(热转冷,到期生效。冷转热,到期后首次访问后生效),** 无需用户手动转移。

  3. 热存储相较于冷存储,存在查询加速的效果,预估加速效果在 10%~30% 左右。

  4. LAS 会分开统计用户的热存储和冷存储的总量,并分开计费,具体计费差异见 “产品计费” 章节。

2.2 未定义冷热分层的说明

  1. 对于表,用户未定义 TTL,默认使用热存。

  2. 对于文件系统(除 /warehouse 路径下)里直接上传的文件,默认使用冷存。

3. 使用方式(UI)

3.1 创建 Schema 时配置

进入 LAS 控制台 - 数据管理,点击左上角 Schema 库管理 ,可以看到已有的数据库。

点击右上角 创建 Schema 按钮,在弹窗中输入库名,需要是字母、数字、下划线组成。然后选择启用分层存储,依次配置数据分层依据(必填)、TTL-热存期与TTL-保留期(至少配置一项,若同时存在则TTL-热存期值需要小于保留期)。建库完成后,会跳回库管理页面,即可以看到新创建的数据库。

3.2 创建内表时配置

进入 LAS 控制台 - 数据管理,点击左上角 表管理 ,点击右上角 创建表 按钮,在弹窗中输入库名,需要是字母、数字、下划线组成。然后选择启用分层存储,依次配置数据分层依据(必填)、TTL-热存期与TTL-保留期(至少配置一项,若同时存在则TTL-热存期值需要小于保留期)。

4. 使用方式(SQL

SQL 语法中数据分层相关参数配置:

参数名参数范围必填启用后默认值使用说明
ttl_enable[true, false]true设置了 ttl 或 hot_ttl 时,该参数可不填,默认为'true'。当参数设置为 'false' 时,代表关闭数据分层配置。

ttl

[1-999] day

数据保留时长。特性如下:

  1. 对于分区表,超期数据将被删除;

  2. 对于 LAS Managed Hive 非分区表,超期数据将被删除而表保留。

  3. 对于 LAS 内部表非分区表,超期数据与表都会被删除。

  4. 若不设置或值为 '',则数据将永久保留。

hot_ttl

[1-999] day

数据热存时长。特性如下:

  1. 分区表以分区为单位,超期数据将被置入冷存。

  2. 非分区表超期后,全部数据将被置入冷存。

  3. 若不设置或值为 '',则数据将永远保存在热存。

tiered.storage.strategy

[PartitionCreateTime, TableAccessTime]

Schema/分区内部表

PartitionCreateTime

数据存储策略。当配置为 PartitionCreateTime 时,按照分区创建的时间来判断数据是否超期;当配置为 TableAccessTime 时,按照表最近访问时间来判断数据是否超期。非分区内部表仅支持设置为 TableAccessTime。

非分区内部表TableAccessTime

4.1 创建 Schema 时配置

若采用 DDL 形式创建数据库,则可以在 dbproperties 填入相关参数启用数据分层功能,如新建数据库 las_test,设置数据保留期为 2 天,数据热存期为 1 天,数据存储策略选择为 PartitionCreateTime。

CREATE DATABASE IF NOT EXISTS las_test
WITH DBPROPERTIES (
  'ttl' = '2',
  'hot_ttl' = '1',
  'tiered.storage.strategy' = 'PartitionCreateTime'
)

启用数据分层后,后续在该库下新建的内表默认会继承其数据分层相关配置参数。

4.2 创建内表时配置

创建内表的时候可以选择启用数据分层,若通过控制台建表,那么可以点击 启用分层存储 进行配置**。** 若以 DDL 形式创建内表,那么需要在 tblproperties 中填入相关参数配置。假如该表所在库已经启用数据分层,那么可以不设置数据分层参数,最终该表默认数据分层配置会与库数据分层配置一致;假如需要指定数据分层的配置,那么可以在建表时手动填入对应配置,最终该项配置值以指定值为准;假如只需要启用TTL-热存期或TTL-保留期其中一项功能,为了避免从库继承配置,可以将另一项配置的参数值设置为空字符;若需要关闭数据分层功能,那么可以通过设置 enable_ttl = 'false' 实现,但分层参数配置会继续保留,方便下次需要重新开启。
如新建内部分区表 ttl_test,设置数据保留期为4天,不启用数据冷热分层,数据存储策略 PartitionCreateTime

CREATE table IF NOT EXISTS las_test.ttl_test
(id int, name int, age string)
partitioned by(date string)
stored as parquet
TBLPROPERTIES(  
  'ttl' = '4',
  'hot_ttl' = '',
  'tiered.storage.strategy' = 'PartitionCreateTime'
)

若需要修改表的数据分层配置,可以选择进入 LAS 控制台 - 数据管理,点击左上角 表管理, 查找需要修改配置的表。然后点击表一行的 编辑 按钮进行编辑。或者可以直接通过 SQL 直接编辑,如下,修改后的表配置将在 次日生效。

ALTER table
  las_test.ttl_test
SET
  TBLPROPERTIES('ttl' = '3')