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

  • Post author:
  • Post category:其他


f1d62f11-b300-4ead-bdb4-9606b6de8b9d.gif



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核心。当使用

    CPUSET



    CREATE 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中

    g


    p_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源创计划

”,欢迎正在阅读的你也加入,一起分享。



版权声明:本文为gp_community原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。