管理 Storage Vault
Storage Vault 是 Doris 在存算分离模式中所使用的远程共享存储,可配置一个或多个 Storage Vault,可将不同表存储在不同 Storage Vault 上。
创建 Storage Vault
语法
CREATE STORAGE VAULT [IF NOT EXISTS] <vault_name>
PROPERTIES
("key" = "value",...)
<vault_name> 是用户定义的 Storage Vault 名称,是用户接口用于访问 Storage Vault 的标识。
示例
创建 HDFS Storage Vault
创建基于 HDFS 的存算分离模式 Doris 集群,需要确保所有的节点(包括 FE / BE 节点、Meta Service) 均有权限访问所指定的 HDFS,包括提前完成机器的 Kerberos 授权配置和连通性检查(可在对应的每个节点上使用 Hadoop Client 进行测试)等。
CREATE STORAGE VAULT IF NOT EXISTS ssb_hdfs_vault
PROPERTIES (
"type"="hdfs", -- required
"fs.defaultFS"="hdfs://127.0.0.1:8020", -- required
"path_prefix"="big/data", -- optional, 一般按照业务名称填写
"hadoop.username"="user" -- optional
"hadoop.security.authentication"="kerberos" -- optional
"hadoop.kerberos.principal"="hadoop/127.0.0.1@XXX" -- optional
"hadoop.kerberos.keytab"="/etc/emr.keytab" -- optional
);
创建 S3 Storage Vault
CREATE STORAGE VAULT IF NOT EXISTS ssb_s3_vault
PROPERTIES (
"type"="S3", -- required
"s3.endpoint" = "oss-cn-beijing.aliyuncs.com", -- required
"s3.region" = "bj", -- required
"s3.bucket" = "bucket", -- required
"s3.root.path" = "big/data/prefix", -- required
"s3.access_key" = "ak", -- required
"s3.secret_key" = "sk", -- required
"provider" = "OSS" -- required
);
更多参数说明及示例可见 CREATE-STORAGE-VAULT。
查看 Storage Vault
语法
SHOW STORAGE VAULTS
返回结果包含 4 列,分别为 Storage Vault 名称、 Storage Vault ID、属性以及是否为默认 Storage Vault 。
设置默认 Storage Vault
语法
SET <vault_name> AS DEFAULT STORAGE VAULT
建表时指定 Storage Vault
建表时在 PROPERTIES
中指定 storage_vault_name
,则数据会存储在指定 vault name
所对应的 Storage Vault 上。建表成功后,该表不允许再修改 storage_vault
,即不支持更换 Storage Vault 。
示例
CREATE TABLE IF NOT EXISTS supplier (
s_suppkey int(11) NOT NULL COMMENT "",
s_name varchar(26) NOT NULL COMMENT "",
s_address varchar(26) NOT NULL COMMENT "",
s_city varchar(11) NOT NULL COMMENT "",
s_nation varchar(16) NOT NULL COMMENT "",
s_region varchar(13) NOT NULL COMMENT "",
s_phone varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (s_suppkey)
DISTRIBUTED BY HASH(s_suppkey) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
"storage_vault_name" = "ssb_hdfs_vault"
);
更改 Storage Vault
用于更新 Storage Vault 配置的可修改属性。
Coming soon
删除 Storage Vault
只有非默认 Storage Vault 且没有被任何表引用的 Storage Vault 才可被删除。
Coming soon
Storage Vault 权限
向指定的 MySQL 用户授予某个 Storage Vault 的使用权限,使该用户可以进行建表时指定该 Storage Vault 或查看 Storage Vault 等操作。
语法
GRANT
USAGE_PRIV
ON STORAGE VAULT <vault_name>
TO { ROLE | USER } {<role> | <user>}
仅 Admin 用户有权限执行 GRANT
语句,该语句用于向 User / Role 授予指定 Storage Vault 的权限。拥有某个 Storage Vault 的 USAGE_PRIV
权限的 User / Role 可进行以下操作:
- 通过
SHOW STORAGE VAULT
查看该 Storage Vault 的信息; - 建表时在
PROPERTIES
中指定使用该 Storage Vault 。
示例
grant usage_priv on storage vault my_storage_vault to user1
撤销指定的 MySQL 用户的 Storage Vault 权限。
语法
REVOKE
USAGE_PRIV
ON STORAGE VAULT <vault_name>
FROM { ROLE | USER } {<role> | <user>}
仅 Admin 用户有权限执行 REVOKE
语句,用于撤销 User / Role 拥有的对指定 Storage Vault 的权限。
示例
revoke usage_priv on storage vault my_storage_vault from user1