第6.4章:StarRocks冷热分区

一、概念说明

在大数据业务中,虽然每天都有大量的数据入库,但通常只有时间最新的,如一个月内,甚至一周内的数据才会被频繁更新和访问。习惯性的,我们将这部分需要频繁访问或操作的数据称为热数据,也将更早期的不经常使用到的数据称为冷数据。为了有效降低业务成本,StarRocks也推出了冷热数据分离存储这一功能。

StarRocks支持为不同分区的数据设置不同的存储介质,目前支持的介质为机械硬盘(HDD)和固态硬盘(SSD)。在某些数据具有冷热特性的业务中,我们可以将热数据所在的分区指定存放在SSD上,利用SSD的随机读写性能来提高查询或更新性能,这部分数据存储在SSD中的分区我们就称为热分区。在创建热分区时,我们还需要同时设定一个分区数据冷却时间storage_cooldown_time),热分区在系统时钟到达冷却时间后就会触发后台迁移逻辑,分区中的数据将自动迁移至HDD盘中,以节省数据存储的成本,此时这个分区就变成了数据存储在HDD上的冷分区

StarRocks不会自动识别服务器中的存储介质类型,在不进行手动配置时,StarRocks默认的存储介质为HDD。若集群服务器的存储介质唯一,无论是全HDD还是全SSD,我们都不需要单独配置。以全SSD为例,虽然StarRocks默认展示的磁盘类型是HDD,但因为SSD带来的性能提升是源自物理层面的,所以并不会影响实际的查询或导入性能。

注意:目前主键模型在实现上不支持tablet跨磁盘迁移,因此逻辑上无法进行冷热分区的处理。

二、操作步骤

1、配置存储介质

在一台既有SSD又有HDD的服务器中,若要使用冷热分区,我们首先需要在be.conf中为storage_root_path显式的指定存储介质类型,配置格式参考be.conf中的示例说明:

storage_root_path = /data1,medium:HDD;/data2,medium:SSD;/data3

storage_root_path中我们可以配置多个以英文分号分割的存储目录,每个存储目录可以配置各自的存储介质,以示例中的三个存储目录为例:

“/data1,medium:HDD”:存储路径为/data1,存储介质为HDD

“/data2,medium:SSD”:存储路径为/data2,存储介质为SSD

“/data3”:存储路径为/data3,存储介质为默认的HDD

2、建表指定分区存储介质

StarRocks的冷热分区目前有以下几个使用方式:

方式1:创建无分区表时,指定表级别的存储介质及存储到期时间

例如,创建无分区表exp,指定表数据到期时间为2023-01-01

CREATE TABLE exp (
    c1 INT COMMENT "",
    c2 INT COMMENT "",
    c3 DECIMAL(10,2) COMMENT "",
    c4 DATETIME NOT NULL COMMENT ""
)
DISTRIBUTED BY HASH(c1) BUCKETS 8
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "SSD",
"storage_cooldown_time" = "2023-01-01 23:59:59"
);

备注:在逻辑上,无分区表被视为一个分区名和表名相同的一个整分区表,我们可以通过 show partitions from exp; 命令来查看表exp的存储介质情况(观察StorageMedium项和CooldownTime项)。

方式2:创建分区表时,指定表中所有分区的存储介质及存储到期时间

例如,创建分区表part_exp

CREATE TABLE part_exp (
    c1 INT COMMENT "",
    c2 INT COMMENT "",
    c3 DECIMAL(10,2) COMMENT "",
    c4 DATETIME NOT NULL COMMENT "",
    c5 DECIMAL(18,2) SUM DEFAULT "0" COMMENT ""
)
AGGREGATE KEY(c1,c2,c3,c4)
PARTITION BY RANGE(c4)
(
PARTITION p1 VALUES LESS THAN ('2022-01-01'),
PARTITION p2 VALUES LESS THAN ('2022-01-02'),
PARTITION p3 VALUES LESS THAN ('2022-01-03')
)
DISTRIBUTED BY HASH(c1) BUCKETS 8
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "SSD",
"storage_cooldown_time" = "2023-01-01 23:59:59"
);

通过show语句,查看分区存储介质及其到期时间:

show partitions from part_exp;

可以确定分区p1p2p3StorageMediumSSDCooldownTime均为2023-01-01 23:59:59

方式3:创建分区表时,指定各个分区的存储介质及存储到期时间

例如,创建分区表part_exp_1,给分区p2p3分别指定不同的到期时间:

CREATE TABLE part_exp_1 (
    c1 INT COMMENT "",
    c2 INT COMMENT "",
    c3 DECIMAL(10,2) COMMENT "",
    c4 DATETIME NOT NULL COMMENT "",
    c5 DECIMAL(18,2) SUM DEFAULT "0" COMMENT ""
)
AGGREGATE KEY(c1,c2,c3,c4)
PARTITION BY RANGE(c4)
(
PARTITION p1 VALUES LESS THAN ('2022-01-01'),
PARTITION p2 VALUES LESS THAN ('2022-01-02') ("storage_medium"="SSD","storage_cooldown_time" = "2023-01-01 23:59:59"),
PARTITION p3 VALUES LESS THAN ('2022-01-03') ("storage_medium"="SSD","storage_cooldown_time" = "2024-01-01 23:59:59")
)
DISTRIBUTED BY HASH(c1) BUCKETS 8
PROPERTIES (
"replication_num" = "1"
);

方式4:建表完成后,修改分区的存储介质及存储到期时间

以上面的表part_exp为例,修改分区p3的存储到期时间:

ALTER TABLE part_exp MODIFY PARTITION p3 SET("storage_medium"="SSD", "storage_cooldown_time"="2023-03-11 10:29:01");

备注:

1、若需要修改storage_cooldown_time参数,alter命令中的storage_medium参数必须存在。

2、已经到期迁移到HDD中的冷分区同样支持使用Alter命令重新回迁至SSD中(主键模型表暂不支持回迁)。

方式5:建表完成后,新增分区时设置分区的存储介质及存储到期时间

part_exp表中,我们虽然在PROPERTIES中设置了"storage_medium" = "SSD""storage_cooldown_time",但这个属性仅会用于表创建时的三个分区,后面新建的分区若不指定,还是会使用默认的存储介质HDDHDD就没有所谓的存储到期时间了)。分区默认存储介质类型受fe.conf中的default_storage_medium参数控制,默认为HDD

part_exp表新增分区p4,指定存储介质及存储到期时间:

ALTER TABLE part_exp ADD PARTITION p4 VALUES LESS THAN ('2022-01-04') ("storage_medium" = "SSD","storage_cooldown_time"="2023-03-11 10:29:01");

当时钟到达分区存储到期时间后,就会触发迁移逻辑,该分区存储在SSD中的数据会向HDD中迁移。对于某些维度表,若我们希望数据一直保存在SSD中,就需要设置一个较大的"storage_cooldown_time"到期时间,避免分区到期。

方式6:动态分区表自动调度使用冷热分区

动态分区表调度创建的分区会使用集群默认配置的存储介质和到期时间,若需要为动态分区表自动配置冷热分区,可以将集群默认的存储介质调整为SSDfe.conf中调整default_storage_medium=SSD),配合调整分区默认到期时间(fe.conf中调整storage_cooldown_second参数,默认2592000秒,即30天),且在建表语句的PROPERTIES中指定storage_mediumstorage_cooldown_time参数,例如:

CREATE TABLE part_exp_2 (
    c1 INT COMMENT "",
    c2 INT COMMENT "",
    c3 DECIMAL(10,2) COMMENT "",
    c4 DATETIME NOT NULL COMMENT "",
    c5 DECIMAL(18,2) SUM DEFAULT "0" COMMENT ""
)
AGGREGATE KEY(c1,c2,c3,c4)
PARTITION BY RANGE(c4)
(
PARTITION p1 VALUES LESS THAN ('2022-08-26'),
PARTITION p2 VALUES LESS THAN ('2022-08-27'),
PARTITION p3 VALUES LESS THAN ('2022-08-28')
)
DISTRIBUTED BY HASH(c1) BUCKETS 8
PROPERTIES (
"replication_num" = "1",
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "DAY",
"dynamic_partition.start" = "-60",
"dynamic_partition.end" = "1",
"dynamic_partition.prefix" = "p",
"dynamic_partition.buckets" = "8",
"storage_medium"="SSD",
"storage_cooldown_time" = "2024-01-01 23:59:59"
);

说明:动态分区调度线程在后台默认每10分钟调度一次,表part_exp_2中,动态分区调度产生的新分区,都会使用SSD存储数据,分区到期时间为分区被调度创建的时间向后顺延30

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C4KNX空调冷热切换驱动是指控制C4KNX型号空调在冷气模式和热风模式之间切换的设备。这个驱动系统通常由电子控制单元和几个关键元件组成。 电子控制单元是驱动系统的核心,它负责监测室内和室外的温度,并根据实际情况发送指令以实现冷热切换。它能够智能地调节空调的运行状态,确保室内温度始终保持在舒适的范围内。 在冷热切换驱动系统中,还有一些重要的元件,比如压缩机、换向阀和膨胀阀。压缩机是空调系统的核心部件,负责循环制冷剂并增压,从而产生冷气或热风。换向阀则控制制冷剂的流向,使其能够流经适当的部件实现冷热切换。膨胀阀则用于调节制冷剂的流量,确保室内温度的精确控制。 C4KNX空调冷热切换驱动系统具有高效、智能、精确控制的特点。通过合理运用电子控制单元和关键元件,它能够快速响应环境温度变化,并有效地调节制冷剂的流量和温度,将温度调整到用户所需的范围内,提供舒适的室内环境。同时,它还具备节能的特点,能够根据实际需要智能地选择运行模式,减少不必要的能源消耗。 总之,C4KNX空调冷热切换驱动系统通过智能控制和关键元件的配合,能够有效地实现冷热切换,并提供舒适的室内环境。它的高效节能和精确控制特点使其成为现代家庭和工作场所不可或缺的设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值