1、使用Storage policy实现冷热数据分层
存储策略是使用冷热分层功能的入口,用户只需要在建表或使用Doris 过程中,给表或分区关联上Storage policy,即可以使用冷热分层的功能。
在Partition级别上设置Freeze time,表示多久这个Partition会被Freeze,并且定义Freeze之后存储的Remote storage的位置。
在BE上daemon线程会周期性的判断表是否需要freeze,若freeze后会将数据上传到兼容S3协议的对象存储和HDFS上。
冷热分层支持所有 Doris 功能,只是把部分数据放到对象存储上,以节省成本,不牺牲功能。因此有如下特点:
冷数据放到对象存储上,用户无需担心数据一致性和数据安全性问题
灵活的 Freeze 策略,冷却远程存储 Property 可以应用到表和 Partition 级别
用户查询数据,无需关注数据分布位置,若数据不在本地,会拉取对象上的数据,并 cache 到 BE 本地
副本 clone 优化,若存储数据在对象上,则副本 clone 的时候不用去拉取存储数据到本地
远程对象空间回收 recycler,若表、分区被删除,或者冷热分层过程中异常情况产生的空间浪费,则会有 recycler 线程周期性的回收,节约存储资源
cache 优化,将访问过的冷数据 cache 到 BE 本地,达到非冷热分层的查询性能
BE 线程池优化,区分数据来源是本地还是对象存储,防止读取对象延时影响查询性能
2、冷数据占用对象大小
方式一:通过 show proc '/backends’可以查看到每个 BE 上传到对象的大小,RemoteUsedCapacity 项,此方式略有延迟。
方式二:通过 show tablets from tableName 可以查看到表的每个 tablet 占用的对象大小,RemoteDataSize 项。
3、冷数据的cache
冷数据为了优化查询的性能和对象存储资源节省,引入了cache的概念。
在冷却后首次命中,Doris 会将已经冷却的数据又重新加载到 BE 的本地磁盘,cache 有以下特性:

最低0.47元/天 解锁文章
5167

被折叠的 条评论
为什么被折叠?



