Starrocks存算分离模式下基于OSS部署

产品文档

对象存储

2024-12-05 09:30:08

StarRocks 存算分离集群。从 3.0 版本开始支持。

配置Starrocks集群中FE和CN节点
1. FE节点配置

在fe.conf中添加如下配置

# shared_data:在存算分离模式下运行 StarRocks
run_mode = shared_data

cloud_native_meta_port = 6090
# 使用的存储类型
cloud_native_storage_type = S3

# IAM User 认证方式
# oss仓库,例如 testbucket/subpath
aws_s3_path =  sxl/starrocks_separation

aws_s3_endpoint=s3.cn-north-1.jdcloud-oss.com
aws_s3_region = cn-north-1

aws_s3_access_key = xxxxx
aws_s3_secret_key = xxxxx
2.CN节点配置

在cn.conf中添加如下配置

priority_networks = 10.240.16.0/20

# 本地缓存数据依赖的存储目录
# 如果该字段设置为空,则表示关闭本地数据缓存
storage_root_path = /opt/starrocks/cn_data
3.启动集群

连接FE节点和添加CN节点

4.创建存储卷(storage_volume)

为了确保 StarRocks 存算分离集群有权限在远程数据源中存储数据,您必须在创建数据库或云原生表时引用存储卷。存储卷由远程数据存储系统的属性和凭证信息组成。在部署新 StarRocks 存算分离集群时,如果您禁止了 StarRocks 创建内置存储卷 (将fe.conf配置文件中的enable_load_volume_from_conf设置为false),则启动后必须先创建和设置默认存储卷,然后才能在集群中创建数据库和表。默认为true。

创建存储卷jdc_volume并启用("enabled" = "true")

CREATE STORAGE VOLUME jdc_volume;

TYPE = S3
LOCATIONS = ("s3://bucket/starrocks_separation")
PROPERTIES
(
    "enabled" = "true",
    "aws.s3.region" = "cn-north-1",
    "aws.s3.endpoint" = "https://s3.cn-north-1.jdcloud-oss.com",
    "aws.s3.use_aws_sdk_default_behavior" = "false",
    "aws.s3.use_instance_profile" = "false",
    "aws.s3.access_key" = "xxxxxxxxx",
    "aws.s3.secret_key" = "xxxxxxxxx",
);

# 并设置为默认卷
SET jdc_volume AS DEFAULT STORAGE VOLUME;

ON LOCATION 中使用的协议为s3 协议

5.创建数据库进行测试
CREATE DATABASE cloud_db;

USE cloud_db;

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 (
    "storage_volume" = "jdc_volume",
    "datacache.enable" = "true",
    "datacache.partition_duration" = "1 MONTH"
);

datacache.enable​
是否启用本地磁盘缓存。默认值:true。

  • true:数据会同时导入对象存储(或 HDFS)和本地磁盘(作为查询加速的缓存)。

  • false:数据仅导入到对象存储中。

说明
在 v3.0 版本中,该参数名称为enable_storage_cache。
如需启用本地磁盘缓存,必须在 CN 配置项storage_root_path中指定磁盘目录。

datacache.partition_duration​
热数据的有效期。当启用本地磁盘缓存时,所有数据都会导入至本地磁盘缓存中。当缓存满时,StarRocks 会从缓存中删除最近较少使用(Less recently used)的数据。当有查询需要扫描已删除的数据时,StarRocks 会从当前时间开始,检查该数据是否在有效期内。如果数据在有效期内,StarRocks 会再次将数据导入至缓存中。如果数据不在有效期内,StarRocks 不会将其导入至缓存中。该属性为字符串,您可以使用以下单位指定:YEAR、MONTH、DAY和HOUR,例如,7 DAY和12 HOUR。如果不指定,StarRocks 将所有数据都作为热数据进行缓存。

说明
在 v3.0 版本中,该参数名称为storage_cache_ttl。
仅当datacache.enable设置为true时,此属性可用。

6.OSS中存储情况

1733390146377.jpg

文档反馈

开始与售前顾问沟通

可直接拨打电话 400-098-8505转1

我们的产品专家为您找到最合适的产品/解决⽅案

在线咨询 5*8⼩时

1v1线上咨询获取售前专业咨询

点击咨询
企微服务助手

专业产品顾问,随时随地沟通