SSD 和 HDD 层级存储
更新时间:2025-08-21
PALO 支持在不同磁盘类型(SSD 和 HDD)之间进行分层存储,结合动态分区功能,根据冷热数据的特性将数据从 SSD 动态迁移到 HDD。这种方式既降低了存储成本,又在热数据的读写上保持了高性能。
动态分区与层级存储
通过配置动态分区参数,用户可以设置哪些分区存储在 SSD 上,以及冷却后自动迁移到 HDD 上。
- 热分区:最近活跃的分区,优先存储在 SSD 上,保证高性能。
- 冷分区:较少访问的分区,会逐步迁移到 HDD,以降低存储开销。
参数说明
dynamic_partition.hot_partition_num
-
功能:
- 指定最近的多少个分区为热分区,这些分区存储在 SSD 上,其余分区存储在 HDD 上。
-
注意:
- 必须同时设置
dynamic_partition.storage_medium = HDD,否则此参数不会生效。 - 如果存储路径下没有 SSD 设备,则该配置会导致分区创建失败。
- 必须同时设置
示例说明:
假设当前日期为 2021-05-20,按天分区,动态分区配置如下:
SQL
1dynamic_partition.hot_partition_num = 2
2dynamic_partition.start = -3
3dynamic_partition.end = 3
系统会自动创建以下分区,并配置其存储介质和冷却时间:
Plain
1p20210517:["2021-05-17", "2021-05-18") storage_medium=HDD storage_cooldown_time=9999-12-31 23:59:59
2p20210518:["2021-05-18", "2021-05-19") storage_medium=HDD storage_cooldown_time=9999-12-31 23:59:59
3p20210519:["2021-05-19", "2021-05-20") storage_medium=SSD storage_cooldown_time=2021-05-21 00:00:00
4p20210520:["2021-05-20", "2021-05-21") storage_medium=SSD storage_cooldown_time=2021-05-22 00:00:00
5p20210521:["2021-05-21", "2021-05-22") storage_medium=SSD storage_cooldown_time=2021-05-23 00:00:00
6p20210522:["2021-05-22", "2021-05-23") storage_medium=SSD storage_cooldown_time=2021-05-24 00:00:00
7p20210523:["2021-05-23", "2021-05-24") storage_medium=SSD storage_cooldown_time=2021-05-25 00:00:00
dynamic_partition.storage_medium
-
功能:
- 指定动态分区的最终存储介质。默认是 HDD,可选择 SSD。
-
注意:
- 当设置为 SSD 时,
hot_partition_num属性将不再生效,所有分区将默认为 SSD 存储介质并且冷却时间为 9999-12-31 23:59:59。
- 当设置为 SSD 时,
示例
1. 创建一个分层存储表
SQL
1 CREATE TABLE tiered_table (k DATE)
2 PARTITION BY RANGE(k)()
3 DISTRIBUTED BY HASH (k) BUCKETS 5
4 PROPERTIES
5 (
6 "dynamic_partition.storage_medium" = "hdd",
7 "dynamic_partition.enable" = "true",
8 "dynamic_partition.time_unit" = "DAY",
9 "dynamic_partition.hot_partition_num" = "2",
10 "dynamic_partition.end" = "3",
11 "dynamic_partition.prefix" = "p",
12 "dynamic_partition.buckets" = "5",
13 "dynamic_partition.create_history_partition"= "true",
14 "dynamic_partition.start" = "-3"
15 );
2. 检查分区存储介质
SQL
1 SHOW PARTITIONS FROM tiered_table;
可以看见 7 个分区,5 个使用 SSD, 其它的 2 个使用 HDD。
Plain
1 p20210517:["2021-05-17", "2021-05-18") storage_medium=HDD storage_cooldown_time=9999-12-31 23:59:59
2 p20210518:["2021-05-18", "2021-05-19") storage_medium=HDD storage_cooldown_time=9999-12-31 23:59:59
3 p20210519:["2021-05-19", "2021-05-20") storage_medium=SSD storage_cooldown_time=2021-05-21 00:00:00
4 p20210520:["2021-05-20", "2021-05-21") storage_medium=SSD storage_cooldown_time=2021-05-22 00:00:00
5 p20210521:["2021-05-21", "2021-05-22") storage_medium=SSD storage_cooldown_time=2021-05-23 00:00:00
6 p20210522:["2021-05-22", "2021-05-23") storage_medium=SSD storage_cooldown_time=2021-05-24 00:00:00
7 p20210523:["2021-05-23", "2021-05-24") storage_medium=SSD storage_cooldown_time=2021-05-25 00:00:00
