返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

CREATE TABLE PARTITION
功能说明
分区表是根据一定规则,
将数据库中的一张表分解成多个更小的容易管理的部分,
从逻辑上看,只有一张表,但底层却是由多个物理分区组成。
分区表包括普通分区表和子分区表。
目前常用的分区方法有RANGE 分区、LIST 分区、KEY 分区、HASH 分区,在
分区的管理上目前支持创建分区、添加分区、删除分区。
RANGE 分区表和LIST 分区表支持子分区,子分区的分区类型可以为[LINEAR]
HASH 和[LINEAR] KEY。
information_schema.partitions 中可以查到所创建的分区表信息。
分区表支持分区列类型:
数值型:INT,BIGINT,SMALLINT,FLOAT。
时间类型(作为分区函数的输入值使用):DATE,DATETIME,TIME。
支持分区函数:
abs()
ceiling()
ceil()
datediff()
day()
dayofmonth()
dayofweek()
dayofyear()
floor()
hour()
microsecond()
minute()
mod()
month()
quarter()
second()
time_to_sec()
to_days()
to_seconds()
weekday()
year()
yearweek()
+
-
*
/
div
%
extract()
from_days()
注意

包括子分区在内所有分区总和个数不大于8192;

创建分区表过程中,磁盘空间不足,报错;

创建分区表过程中,分区名字有重复,报错;

创建分区表过程中,分区名字不符合命名规范,报错,分区表命名规范与
普通表一致;

不支持每个分区指定不同的tablespace;

创建分区表时未指定分区名,分区名默认为p0,p1…;

分区列不支持update 操作;

每个分区的子分区个数必须相同;

只有range 分区与list 分区可以创建子分区。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
955

GBase 8a MPP Cluster 通过透明网关和DBlink 的配合使用来实现本地GBase 8a
MPP Cluste 集群和远程集群(同构数据源(即当前集群外的GBase 8a MPP Cluster
集群)或异构集群(如oracle))间的数据透明访问功能。

GBase 8a MPP Cluster 集群透明网关的主要功能是负责连接GBase 8a MPP
Cluster 集群外的其它集群,在获取db-link 的请求信息后,根据请求将数据抽
取到GBase 8a MPP Cluster 集群中或将GBase 8a MPP Cluster 集群内的数据推
送到其他集群;

GBase 8a MPP Cluster 集群DBLink 工具通过与透明网关服务的协同工作,
实现
远程集群数据与本地集群数据进行关联运算。
参考
关于集群间数据透明访问工具详细使用请参看本手册4.13 集群间透明网关工具和

要在数据库中注册例程,被授权的用户将 SPL 命令包含在 CREATE FUNCTION 或
CREATE PROCEDURE 语句中。数据库服务器存储内部注册了的 SPL 例程。下列用户具
有在数据库中注册新的例程的资格:

有 DBA 权限的任何用户可在 CREATE 语句中,
使用或不使用 DBA 关键字来注
册例程。
要了解 DBA 关键字的说明,请参阅 执行例程的 DBA 权限。

没有 DBA 权限的用户需要 Resource 权限来注册 SPL 例程。该例程的创建者是
所有者。
没有 DBA 权限的用户不可使用 DBA 关键字来注册例程。
DBA 必须给其他需要创建例程的用户授予 Resource 权限。DBA 还可撤销
Resource 权限,防止用户创建更多的例程。

除了对在其中注册 UDR 的数据库保存持有 DBA 权限或 Resource 权限之外,创
建 UDR 的用户还必须持有对以其编写 UDR 的编程语言的 Usage 权限。这些
SQL 可为特定的编程语言授予语言级别的 Usage 权限:

GRANT USAGE ON LANGUAGE C

GRANT USAGE ON LANGUAGE JAVA

GRANT USAGE ON LANGUAGE SPL
除了个别的用户之外,
这些权限的被授予者还可为用户定义的角色,
或 PUBLIC 组。
在将语言级别 Usage 权限授予角色之后,持有那个角色的任何用户都可通过使用
SQL 的 SET ROLE 语句使得该角色的所有访问权限能够指定那个角色作为当前
的角色。
对于以 C 语言或 Java™ 语言编写的外部例程,
如果启用 IFX_EXTEND_ROLE 配置参数,
则仅 DBSA 已授予其 EXTERNAL 角色的用户可注册、删除或修改外部的 UDR 或
DataBlade 模块。在缺省情况下,启用此参数。通过将 IFX_EXTEND_ROLE 配置参数设
置为 OFF 或设置为 0,DBSA 可禁用对持有 DataBlade 模块或外部 UDR 的 DDL 操作
EXTEND 角色的要求。然而,此安全特性对 SPL 例程不起作用。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 324 -
总之,持有以上标识的数据库级别和语言级别自主访问控制权限(且还持有 EXTEND 角
色,如果启用 IFX_EXTEND_ROLE 且该 UDR 为外部例程的话)
的用户,
可在下列 SQL
语句中引用 UDR:

DBA 或用户可以 CREATE FUNCTION、CREATE FUNCTION FROM、CREATE
PROCEDURE、CREATE PROCEDURE FROM、CREATE ROUTINE 或 CREATE
ROUTINE FROM 语句来注册新的 UDR。

DBA 或现有 UDR 的所有者可以 DROP FUNCTION、DROP PROCEDURE 或
DROP ROUTINE 语句来取消那个 UDR 的注册。

DBA 或现有 UDR 的所有者可以 ALTER FUNCTION、ALTER PROCEDURE 或
ALTER ROUTINE 语句来修改那个 UDR 的定义。