首页 > 数据库 > > SQL语法-CREATE TABLESPACE
在数据库中创建一个新的表空间。
CREATE TABLESPACE tablespace_name
[ OWNER user_name ] RELATIVE LOCATION 'directory' [ MAXSIZE 'space_size' ]
[with_option_clause];
其中普通表空间的with_option_clause为:
WITH ( {filesystem= { 'general'| "general" | general} |
random_page_cost = { 'value ' | value } |
seq_page_cost = { 'value ' | value }}[,...])
其中HDFS表空间的with_option_clause为:
WITH ( filesystem= { 'systemtype '| "systemtype" | systemtype }
[ { , address = 'ip:port [ {, ip:port }]' ],
cfgpath = 'path' ,storepath = 'rootpath'
[{, random_page_cost = { 'value'| value }}]
[{,seq_page_cost = { 'value'| value }}])
要创建的表空间名称。
表空间名字不能和数据集群中的其他表空间重名,且名字不能以"pg"开头,这样的名字留给系统表空间使用。
取值范围:字符串,要符合标识符的命名规范。
指定该表空间的所有者。缺省时,新表空间的所有者是当前用户。
只有系统管理员可以创建表空间,但是可以通过OWNER子句把表空间的所有权赋给其他非系统管理员。
取值范围:字符串,已存在的用户。
使用相对路径,LOCATION目录是相对于各个CN/DN数据目录下的。
目录层次:CN和DN的数据目录/pg_location/相对路径
相对路径最多指定两层。
用于表空间的目录,对于目录有如下要求:
取值范围:字符串,有效的目录。
指定表空间在单个DN上的最大值。
取值范围:字符串格式为正整数+单位,单位当前支持K/M/G/T/P。解析后的数值以K为单位,且范围不能够超过64比特表示的有符号整数,即1KB~9007199254740991KB。
指定表空间是否为HDFS表空间。
取值范围:
默认值:general。
说明:只有指定了filesystem,才可以在“pg_tablespace”的“spcoptions”字段中显示相关信息。
指定随机读取page的开销。
取值范围:0~1.79769e+308。
默认值:使用GUC参数random_page_cost的值。
指定顺序读取page的开销。
取值范围:0~1.79769e+308。
默认值:使用GUC参数seq_page_cost的值。
指定HDFS集群NameNode主备节点的IP和port。
取值范围:最多两个NameNode节点的IP、port组成的字符串。
取值规则:只支持点分十进制格式的IPv4格式,且address字符串中不能出现空格,多组address以逗号作为分隔符。IP和port之间使用“:”来区分,IP、port组推荐设置两组,分别对应HDFS NameNode主备节点的address。
说明:指定HDFS集群配置文件路径。
取值范围:字符串。
取值规则:必须为一个绝对路径,且为HDFS集群有效的配置文件路径。
说明:指定HDFS上数据存储路径。
取值范围:字符串。
取值规则:
说明:若创建HDFS表空间,则必须指定,否则不指定。
--创建表空间。
CREATE TABLESPACE ds_location1 RELATIVE LOCATION 'hdfs_tablespace/hdfs_tablespace_1' ;
--创建用户joe。
CREATE ROLE joe IDENTIFIED BY 'Bigdata123@';
--创建用户jay。
CREATE ROLE jay IDENTIFIED BY 'Bigdata123@';
--创建表空间,且所有者指定为用户joe。
CREATE TABLESPACE ds_location2 OWNER joe RELATIVE LOCATION 'hdfs_tablespace/hdfs_tablespace_1' ;
--把表空间ds_location1重命名为ds_location3。
ALTER TABLESPACE ds_location1 RENAME TO ds_location3;
--改变表空间ds_location2的所有者。
ALTER TABLESPACE ds_location2 OWNER TO jay;
--删除表空间。
DROP TABLESPACE ds_location2;
DROP TABLESPACE ds_location3;
DROP TABLESPACE ds_location4;
--删除用户。
DROP ROLE joe;
DROP ROLE jay;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3135972/ ,如需转载,请注明出处,否则将追究法律责任。