使用存算分离时,云存储对应的每张表都需要创建一个volume么?
建表时需要指定volume,多个表可以指定相同的volume
比如说我的多张表存在s3某一存储桶中,我在创建volume时,location需要指定到bucket还是具体的文件夹?
bucket + 路径, 否则数据全写在bucket根目录下.
我是想要读取s3 bucket中的表
那是通过外表查询s3中的文件数据, 跟存算分离的storage volume没有关系.
是我理解错了么
,创建云原生表的时候需要指定storage_volume,这个volume指的不是数据在s3的位置嘛?
文档例子:
CREATE STORAGE VOLUME def_volume
TYPE = S3
LOCATIONS = (“s3://defaultbucket/test/”)
PROPERTIES
(
“enabled” = “true”,
“aws.s3.region” = “us-west-2”,
“aws.s3.endpoint” = “https://s3.us-west-2.amazonaws.com”,
“aws.s3.use_aws_sdk_default_behavior” = “false”,
“aws.s3.use_instance_profile” = “false”,
“aws.s3.access_key” = “xxxxxxxxxx”,
“aws.s3.secret_key” = “yyyyyyyyyy”
);
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" = "def_volume”,
“datacache.enable” = “true”,
“datacache.partition_duration” = “1 MONTH”,
“enable_async_write_back” = “false”
);
fe默认创建的default_volume在s3已经存在;
难道是存算分离也需要 [Broker Load]数据嘛?
指定好storage volume就没问题了啊, 你要读s3的表, 就跟读本地表一样, 不需要再做什么事了. 直接用SQL查就行了.