跳到主要内容
跳到主要内容

管理 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