【青梅资讯】VMware Greenplum 7 Beta版已正式发布

原创
2023/03/01 17:00
阅读数 498

 

VMware Greenplum 7.0 Beta.0 已于2022年12月15日正式发布,随后在2023年2月3日 VMware Greenplum 7.0 Beta.1 也正式上线,现在让我们通过本文一起了解Greenplum 7 Beta. 1 和Beta. 0 版本都引入了哪些新功能和变化。 

 

VMware Greenplum 7.0 Beta.1

发布时间:2023年2月3日

 

  • VMware Greenplum 7 Beta.1 版本现在提供以下扩展:ip4r、hll、PL/Java、Timestamp9、diskquota、PL/Container。

  • VMware Greenplum 7 包含从PostgreSQL数据库 REL_12_STABLE 分支合并而来的代码。其中包括以下特性:

    • 提供即时编译(JIT)功能,并且可以在PostgreSQL Planner和GPORCA中使用JIT。 

    • 对AOCO表使用 COPY TO 命令时,可以指定表中的一部分列。 

    • pg_appendonly 表不再记录append-only存储选项,只在 pg_class.reloptions 中列出,这样可以极大减少 pg_appendonly 表的大小。 

    • 增加新的视图,以支持在 CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL  pg_checksums 操作中访问进度报告。 

    • VACUUM 可以在表的可见性映射(Visibility map)中识别仅包含已冻结元组的页面并跳过这些页面。对于大部分数据没有变化的大表,可以减少维护成本。新的 VACUUM 参数 DISABLE_PAGE_SKIPPING 可以强制 VACUUM 所有冻结页面,这种情况应该只在硬件或软件问题导致数据库损坏时发生。 

    • 新的选项 SKIP_LOCKED ,允许 VACUUM ANALYZE 跳过那些由于锁冲突而不能立即锁定的表。 

    • 新选项 INDEX_CLEANUP ,允许 VACUUM 跳过索引清理。将该选项设置为 false 可以使 VACUUM 尽快运行,以避免即将发生的事务ID环绕 (wraparound) 问题。 

    • 可以在 VACUUM 时避免不必要的heap表截断尝试。 

    • 新的配置参数 vacuum_cleanup_index_scale_factor 可以在 VACUUM 过程中尽量减少不必要的索引扫描。 

    • 新的分区表存储参数 vacuum_index_cleanup ,这个参数可以帮助用户在 VACUUM 分区表时控制是否尝试删除指向死亡元组(dead tuples)的索引条目。 

       

       

 

VMware Greenplum 7.0 Beta.0

发布时间:2022年12月15日 

    

VMware Greenplum 7 包含很多新功能和改进。

新的PostgreSQL功能

VMware Greenplum 7 融合 PostgreSQL 9.5至12版本的若干新功能。 

  • 通过 " abbreviated "键 (Postgres 9.5) 提高 varchar, text,以及 numeric 的排序速度

  • 支持 array_position()array_positions() 函数(Postgres 9.5) 

  • 支持 INSERT ... ON CONFLICT UPDATE 语句,这是一个类似UPSERT的操作,可以处理表上同时发生的数据变化之间的冲突(GPORCA、AO表仍不支持) (PostgreSQL 9.5) 

  • 支持行级安全,实现了每行和每列数据访问控制(PostgreSQL 9.5)。数据库管理员可以设置安全政策,过滤特定用户允许更新或查看的行。更多内容请参考


    关于配置行级安全策略: 

    https://docs.vmware.com/en/VMware-Tanzu-Greenplum/7/greenplum-database/GUID-admin_guide-row_security.html

  • pg_resetxlog  工具被重新命名为 pg_resetwal 

  • 对共享哈希表freelist进行分区,以减少在多CPU-socket服务器上的竞争(PostgreSQL 9.6)

  • 提升原子操作时的性能,不再使用自锁保护个LWLock的等待队列(PostgreSQL 9.6)

  • 引入 ALTERDEPENDS ON EXTENSION 命令,可以修改某个数据库对象依赖一个扩展(extension) 。在删除一个扩展时,依赖的数据库对象可以自动删除,无需指定CASCADE 关键字

  • 允许使用 ALTER DEFAULT PRIVILEGES 命令设置和撤销schema的默认权限 (PostgreSQL 10)

  • 支持PostgreSQL的声明式表分区语法(PostgreSQL 10) 

  • 允许用一个 DROP 命令删除多个函数、运算符和聚集 (PostgreSQL 10) 

  • 通过 CREATE SEQUENCE AS 命令创建与一个整型数匹配的 sequence 

  • 支持嵌入式事务的SQL存储过程,可以通过 CREATE PROCEDURE 命令创建一个存储过程,并使用CALL 命令调用 (PostgreSQL 11) 

  • 在建立GiST、GIN或SP-GiST索引时减少WAL的系统开销;使得这些WAL记录所需的磁盘空间更少,而且在故障恢复或实施PITR恢复时,数据重放速度更快 (PostgreSQL 12) 

  • 支持 SQL/JSON path 语言 (PostgreSQL 12)

  • 支持 STORED 生成的列(其内容是由表达式计算出来,包括对同一表中其他列的引用,而非INSERT UPDATE 命令指定)。生成的列不能在Greenplum数据库中作为分布键使用。(PostgreSQL 12) 

  • 支持允许一些 DDL 命令接受当前用户 (CURRENT_USER) 或会话用户(SESSION_USER来代替特定的用户名。(PostgreSQL 9.5) 

  • 支持在CREATE SERVER, CREATE MATERIALIZED VIEW, CREATE USER MAPPING, CREATE COLLATION 中使用 IF NOT EXISTS 

  • 增加多列优化器统计信息(multi-column optimizer statistics) ,新引入命令 CREATE STATISTICS, ALTER STATISTICS, 以及 DROP STATISTICS (PostgreSQL 10)

  • 支持分区表上的索引 (PostgreSQL 11)

  • 新增命令 ALTER INDEX ATTACH PARTITION (PostgreSQL 11)

  • 支持 CREATE ACCESS METHOD 命令以创建新的表类型。开发者可以实现新的表类型,以为不同的应用场景优化存储。heap 仍为默认表类型(PostgreSQL 12)

  • CREATE/ALTER USER ... PASSWORD  命令不再支持 UNENCRYPTED 选项 (PostgreSQL 10)

  • 支持定义多列最常见值统计( multi-column most-common-value, MCV),通过CREATE STATISTICS 命令以生成更好的查询计划。目前Postgres优化器支持,GPORCA(PostgreSQL 12)尚未支持。 

  • 支持通用表表达式(CTE)的自动内联。在Greenplum 7中,如果CTE没有递归,并且在查询中只被引用一次,就会自动内联。可以通过指定 MATERIALIZED 来防止内联,或者通过指定 NOT MATERIALIZED 来强制内联多个引用的CTE。在以前的Greenplum版本中,CTE从不被内联,并且总是在查询的其他部分之前被处理。(PostgreSQL 12) 

  • 支持BRIN索引 (Block Range INdexes)  。GPORCA目前使用位图索引的成本模型来支持BRIN索引,GPORCA暂不支持Postgres优化器(PostgreSQL 9.5)所支持的所有BRIN数据类型。 

  • VMware Greenplum 7中的Postgres查询优化器(PostgreSQL 10)支持哈希索引 (GPORCA 尚未支持)

  • 内置的全文搜索功能现在可以搜索以特定顺序出现的短语 (多个相邻的单词),或者单词之间有指定的距离(PostgreSQL 9.6) 

  • 支持外部表的 ALTER TABLE SET DISTRIBUTED BY语句。但是,必须确保外部表的内容满足DISTRIBUTED BY 的规则

  • 窗口函数现在支持SQL:2011标准中显示的所有Frame选项,包括RANGE, DISTANCE, PRECEDING/FOLLOWING,GROUPS,以及 frame exclusion 选项的增强

 

新的服务器功能

  • 支持一个新的服务器配置参数 - default_table_access_method - 当 CREATE TABLE 命令没有明确指定访问方法时,它决定了默认的表访问方法。 

  • CREATE TABLE SQL命令现在支持用新的 USING子句来指定表的访问方法。 

  • 可以通过ALTER TABLE 命令,使用子命令 SET ACCESS METHOD,动态地更新表的访问方法。 

  • 支持使用 ALTER TABLE 命令动态地更新表的下列存储参数:

    • 追加优化 appendoptimized 

    • 表中的块大小 blocksize 

    • 方向 orientation 

    • 压缩类别 compresstype 

    • 压缩级别 compresslevel 

    • 检查和 checksum  

       

  • 使用 ALTER TABLE 命令动态地更新AOCO表的列编码。 

  • 支持 AO表(append-optimized tables中使用唯一索引、唯一约束和主键。 

  • 可以将一个有唯一索引的堆表(heap table)转化成一个有唯一索引的AO表( append-optimized tables)。 

  • 支持一个新的服务器配置参数-- enable_partition_pruning --它可以启用或禁用查询优化器从查询计划中剪除分区表的分区。 

  • 新增 gp_toolkit.__gp_aoblkdir (regclass)  功能,可以用来获取一个给定的AO/AOCO表曾经或现有的一个索引的每个块目录条目 (block directory entry) 。 

  • GPORCA 查询优化器支持 CUBE grouping set。 

  • GPORCA查询优化器支持规划和运行指定的具有多个 grouping sets的查询。 

 

改变的功能

Greenplum Database 7 包括了从6.x 版本如下功能的变化:

  • 基于资源组的资源管理目前正在进行重新设计;建议等到完全实现后再使用这一功能。 

     

  • 为资源组保留CPU核心的 CPUSET 语法已经改变,需要分别为coordinator节点和segment节点指定CPU核心。当使用 CPUSETCREATE RESOURCE GROUP ALTER RESOURCE GROUP  时,首先为 coordinator 节点配置核心,然后是 segment 节点,使用分号来分开这两者。例如, CPUSET='1;1-3' 为 coordinator节点配置Core 1,为 segment节点配置Core 1到3。 

  • gpscp 工具被重命名为 gpsync ,新增 -a 选项,能够使 gpsync 在存档模式下同步源目录和目标目录。 

  • autovacuum 服务器配置参数现在默认为所有数据库启用,而不是只为 template0 template1  数据库。 

  • Greenplum 6中 gp_parallel_retrieve_cursor 模块的并行检索游标功能现在已经内置。 

  • pg_tables 命令的输出不再包括外部表。 

 

已知的问题和限制 

VMware Greenplum 7.x 目前有如下限制: 

  • VMware Greenplum 7 目前处于Beta 版本,因此该软件和文档并不完整,也暂不支持用于生产部署。 

  • 不支持从以前的 Greenplum 主要版本升级到Greenplum 7 Beta。 

  • 不支持从之前的Greenplum 7 Beta 版本升级到后续的Beta 版本(例如,从Beta.0 到Beta.1)。 

  • 许多VMware Greenplum 的实用工具和扩展程序暂未包含在这个Beta版本中,包括:gppkg、Madlib、PostGIS、pgbouncer、gpcopy、高级密码检查、GreenplumPython、PL/R、PXF、Spark连接器、Apache Nifi连接器、GemFire连接器、命令中心和指标收集器、WLM、GPSS、Kafka连接器、ODBC驱动器、JDBC驱动器、GreenplumR、数据科学包、gpmt、集群恢复、gp_filedump、Greenplum升级、Greenplum云产品。

 

 

欢迎通过Release Notes 获取VMware Greenplum 7 Beta 版本的更多内容:

https://docs.vmware.com/en/VMware-Tanzu-Greenplum/7/greenplum-database/GUID-relnotes-release-notes.html#release-70-beta1-0

 

 

本文分享自微信公众号 - Greenplum中文社区(GreenplumCommunity)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部