获得技术资料内容,请访问Greenplum中文社区网站
新特性
PostgreSQL内核新特性
Greenplum 6结合了许多从PostgreSQL8.4到9.4的新特性
区间数据类型处理
PostgreSQL 8.4依照SQL标准,增强了解析INTERVAL文本。这个改变了对于INTERVAL标记的查询在 5.x和6.x里的输出。
$ psql
psql (8.3.23)
Type "help" for help.
gpadmin=# select INTERVAL '1' YEAR;
interval
----------
00:00:00
(1 row)
```
``` sql
$ psql
psql (9.2beta2)
Type "help" for help.
gpadmin=# select INTERVAL '1' YEAR;
interval
----------
1 year
(1 row)
新增的PostgresSQL特性
Greenplum 6.0包含了如下来自PostgreSQL的特性
1. 支持unnest() 数组函数,可以将数组转换成行的集合(PostgreSQL 8.4引入)
2. 支持用户自定义的I/O conversion casts. (PostgreSQL 8.4引入)
3. 支持列级别的权限(PostgreSQL 8.4引入)
4. 增加了pg_db_role_setting系统表,为特定数据库和角色组合的配置提供了支持(PostgreSQL 9.0引入)
5. pg_class系统表里的relkind列的值已改成与PostgreSQL 9.3的条目相同
6. 支持GIN索引方法(PostgreSQL 8.3引入)
7. 支持jsonb数据类型(PostgreSQL 9.4引入)
8. DELETE,INSERT和UPDATE语句支持WITH子句,即CTE (common table expression) (PostgreSQL 9.1引入)
对于WITH子句,RECURSIVE关键字还处于试验阶段
9. 列(column)级别支持指定排序规则和字符集的Collation(PostgreSQL 9.1引入)
Zstandard压缩算法
Greenplum 6.0增加了数据库某些操作和AO表存储的zstd (Zstandard)压缩。
放宽指定分布列的规则
在之前的版本,如果在建表的时候同时指定了分布列和唯一索引,则分布列必须和唯一索引列相同,或者是唯一索引列集的左前缀。Greenplum 6.x里取消了该限制,分布列可以是索引列的任何子集。
这个改变同时影响了Greenplum 6.x选择默认分布键的规则。如果gp_create_table_random_default_distribution是关闭的(默认值),并且建表时未指定DISTRIBUTED BY子句,Greenplum会根据如下规则选择分布键:
1. 如果使用了LIKE或INHERITS,则依照源表或父表的分布列
2. 如果指定了主键或唯一(UNIQUE)索引约束,选择键集合的最大子集作为分布列

Greenplum 6.0引入了许多PostgreSQL的新特性,包括区间数据类型的增强,支持unnest()函数,列级别的权限,pg_class表的改进,以及jsonb数据类型等。此外,新版本支持Zstandard压缩算法,放宽了指定分布列的规则,新增了全局死锁检测,并引入了DISTRIBUTED REPLICATED分布策略。PL/pgSQL过程语言也得到了增强,包括错误处理、RETURN QUERY EXECUTE等功能。Greenplum 6.0淘汰了gptransfer等工具,不再支持gphdfs,但引入了PXF访问Hadoop。部分旧特性如使用gpfilespace创建表空间不再需要,而一些配置参数被删除或不再推荐使用。
最低0.47元/天 解锁文章
966

被折叠的 条评论
为什么被折叠?



