Lindorm搜索引擎支持基于时间分区索引对数据进行冷热分离。新写入的数据会保存在热存储介质上,随着时间推移逐渐向冷存储(容量型云存储)迁移。在访问方式上,冷热分离的表和普通表几乎没有任何差异,操作简单且易上手。您可以根据业务需求设置冷热分界线,提高热数据查询效率,减少访问冷数据带来的性能消耗。
背景信息
冷热分界线是冷数据归档的依据,搜索引擎会根据数据存储量和查询时间覆盖的范围来确定需要将多久之前的数据归档至冷存储。Lindorm将容量型云存储作为冷存储介质,价格仅为标准型云存储的20%,大大降低了存储成本。
冷热分界线的单位为秒(s),您可以根据查询习惯和业务需求来指定冷热分界线。当时间分区满足当前时间 - 时间分区的最后时间 >= 冷热分界线
条件时,该时间分区中的所有数据都会被视作冷数据。
查询冷数据性能会较差,建议根据业务查询时间范围评估冷热分界线的设置。
前提条件
注意事项
冷热分离功能目前处于公测阶段,数据转移至冷存储速度可能较慢,设置冷热分界线后数据可能无法立即归档,请等待一段时间再查看冷存储使用情况。
Lindorm搜索引擎仅支持对时间分区索引设置冷热分离,即以时间分区字段作为判断条件,对超过冷热分界线的分区数据进行归档。时间分区索引的介绍,请参见分区索引。
冷热分界线设置后目前暂不支持更改,如果需要修改请联系Lindorm技术支持(钉钉号:s0s3eg3)。
配置冷热分界线
您可以通过SQL语句在创建时间分区索引时设置冷热分界线。例如将RANGE_TIME_PARTITION_CHS设置为864000
,表示10天之前的数据转移到冷存储。
CREATE INDEX idx USING SEARCH ON search_table (storeId, goodsId, goodsPrice, orderTime)
PARTITION BY RANGE time(orderTime) partitions 4
WITH (indexState=ACTIVE, RANGE_TIME_PARTITION_START='30', RANGE_TIME_PARTITION_INTERVAL='7', RANGE_TIME_PARTITION_CHS='864000');
不设置RANGE_TIME_PARTITION_CHS参数表示不开启冷热分离,数据均存储在热存储中。RANGE_TIME_PARTITION_CHS和其他索引属性的说明,请参见索引属性(index_options)。