StarRocks 存算分离 Data Cache 二三事

前言

StarRocks 存算分离模式架构中,数据导入后,会被写入远端对象存储。而对象存储由于其访问延迟较高特性,如果没有任何优化,每次查询直接访问后端对象存储,那么性能就会变得非常差,也就失去了 StarRocks 的性能优势。一般而言,在存算分离架构下需要在计算节点上使用本地磁盘来缓存系统经常访问的热点数据,这样,当查询访问到这些数据时,直接访问本地磁盘中的缓存即可,可以提供与存算一体架构同等的查询性能。

StarRocks 存算分离架构从 3.0 版本推出时便支持基于本地磁盘的 Data Cache 机制,不过我们也在不断优化和迭代我们的 Cache 实现,效率和稳定性越来越高。本文章旨在梳理 StarRocks 存算分离形态下的 Cache 演变历史,帮助用户们对 Cache 有更深入的理解,以更好的使用 StarRocks 存算分离。

这里需要强调的是,我们这里所说的 Cache 指的是基于本地持久化存储介质(如磁盘)构建的数据缓存系统。基于内存的 Page Cache 不在本文讨论范围。关于内存数据缓存的 Page Cache,存算分离和存算一体有着同样实现。

Data Cache 初体验

CREATE TABLE IF NOT EXISTS detail_demo ( recruit_date DATE NOT NULL COMMENT "YYYY-MM-DD", region_num TINYINT COMMENT "range [-128, 127]", num_plate SMALLINT COMMENT "range [-32768, 32767] ", tel INT COMMENT "range [-2147483648, 2147483647]", id BIGINT COMMENT "range [-2^63 + 1 ~ 2^63 - 1]", password LARGEINT COMMENT "range [-2^127 + 1 ~ 2^127 - 1]", name CHAR(20) NOT NULL COMMENT "range char(m),m in (1-255) ", profile VARCHAR(500) NOT NULL COMMENT "upper limit value 65533 bytes", ispass BOOLEAN COMMENT "true/false") DUPLICATE KEY(recruit_date, region_num) DISTRIBUTED BY HASH(recruit_date, region_num) PROPERTIES ( "datacache.enable" = "true", "datacache.partition_duration" = "1 MONTH", );

上面是一个典型的 StarRocks 存算分离建表语句,该语句中有两个参数用来控制 Cache 行为:

  • datacache.enable: 该参数控制是否启用本地磁盘缓存。默认值:
### StarRocks 存储计算分离架构安装部署指南 #### 一、环境准备 为了成功部署StarRocks存算分离架构,需先准备好Kubernetes(K8s)集群环境。确保该环境已配置好网络插件并能正常访问互联网以拉取所需镜像。 #### 二、安装StarRocks Operator 通过应用StarRocks官方提供的Operator至目标K8s集群来简化部署流程。此操作可通过kubectl命令行工具完成,具体如下所示: ```bash $ kubectl apply -f https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/crds.yaml $ kubectl apply -f https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/operator.yaml ``` 上述命令会向K8s集群中添加自定义资源定义(CRD),随后启动负责管理StarRocks实例生命周期的控制器[^2]。 #### 三、创建持久化卷(PV) 由于采用对象存储作为后端数据仓库,在某些场景下可能仍需为FE组件设置本地持久化卷用于保存元数据等重要信息。依据实际需求编写PV/PVC声明文件,并提交给K8s集群处理。 #### 四、定制化CRD资源配置 编辑适合业务特点的ClusterResourceDefinition (CRD) 文件,指定版本号(如3.1.3)及相关参数选项,特别是针对FE和CN节点的数量与规格做出合理规划[^1]。 #### 五、执行部署动作 最后一步就是将精心设计好的CRD文档应用于K8s平台之上,触发自动化安装过程。整个过程中可以借助于之前提到过的监控手段密切跟踪进度直至全部服务健康上线为止。 ```yaml apiVersion: starrocks.apache.org/v1alpha1 kind: StarRocksCluster metadata: name: example-starrocks-cluster spec: imageTag: "v3.1.3" feGroupSpec: replicas: 3 cnGroupSpec: replicas: 5 ... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值