2024-12-05 09:30:08
StarRocks 存算分离集群。从 3.0 版本开始支持。
在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
在cn.conf中添加如下配置
priority_networks = 10.240.16.0/20
# 本地缓存数据依赖的存储目录
# 如果该字段设置为空,则表示关闭本地数据缓存
storage_root_path = /opt/starrocks/cn_data
连接FE节点和添加CN节点
为了确保 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 协议
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时,此属性可用。
我们的产品专家为您找到最合适的产品/解决⽅案
1v1线上咨询获取售前专业咨询
专业产品顾问,随时随地沟通