华为云用户手册

  • 如何添加SAP监控大屏专用展示帐号 管理员权限登录用户,在30分钟无操作情况下会自动断开,建议使用监控大屏专用展示帐号。 添加SAP监控大屏专用展示帐号可参考如下步骤: 登录华为云控制台。 单击右上方用户名下拉列表中“ 统一身份认证 ”。 系统进入“统一身份认证服务”页面。 创建用户组。 在左侧导航栏选择“用户组”。 单击页面右上方“创建用户组”。 设置“用户组名称”等信息。 单击“确定”。 创建监控大屏专用展示帐号。 在左侧导航栏选择“用户”。 在页面右上方单击“创建用户”。 在“创建用户”页面设置用户信息。 其中“所属用户组”选择步骤2中所创建的用户组。具体设置步骤及约束请参见创建用户并登录。 单击“确定” 为所在用户组配置权限策略。 在左侧导航栏选择“用户组”。 在用户组列表中,单击已创建用户所属用户组右侧“权限配置”。 单击“配置权限”,为全局项目设置策略。 选中全局服务,勾选“Tenant Guest”。 单击“确定”。 为应用管理当前支持的所有区域设置策略。 选中区域级项目,选择对应区域级项目。 勾选“Tenant Guest”。 单击“确定”。 企业项目为全局服务,但SAP监控大屏调用 云监控 功能,云监控为Region级服务,所以需要对当前支持区域进行策略设置。 父主题: 常见问题
  • SAP监控大屏配置应用监控成功但没有数据 如果出现大屏配置应用监控成功但没有数据,您可以根据表1 故障排除中列举的原因进行排除。 表1 故障排除 可能原因 排除方案 大屏配置错误,或配置的应用已删除。 在“SAP监控大屏”区域,检查应用、应用SID、数据库应用、数据库应用SID配置是否符合规划,如有错误,修正并更新配置即可。 应用内的云服务器未安装Agent和plugin。 安装Agent和SAP plugin,等待几分钟。 Agent数据还在上报周期内。 Cloud Eye到EPS的上报周期为每三分钟一次,请等待三分钟后刷新。 云服务器meta信息被误修改。 在“SAP监控大屏”区域,无需修改配置,直接单击更新监控配置,等待几分钟。 metrics.ini 配置文件参数配置错误。 检查对比配置文件与实际应用参数是否一致。 Agent及守护进程异常。 查看agent,telecope进程是否正常。 Agent从应用中未拿到数据。 /usr/local/telescope/plugins/sapmon路径下执行命令./sapmon –v 查看获取指标是否报错。 父主题: 常见问题
  • 系统视图 表6 系统视图 变更类型 序号 名称 变更描述 新增 1 pg_job_single 单节点job信息。 2 pg_job 用于向前兼容pg_job系统表,分布式pg_job_single集合。 3 pgxc_get_stat_all_partitions 获取所有分区表各个分区的的insert/update/delete/live/dead元组数及脏页率信息。 4 gs_view_dependency 级联查询视图的依赖关系,是上面两个函数的union。 修改 5 pgxc_get_instr_unique_sql 使用get_instr_unique_sql_remote_cns获得其他CN上的unique sql数据。 6 pg_stat_replication 修复功能。 7 pg_get_senders_catchup_time 增加catchup过程信息字段。 8 pg_catalog.gs_wlm_operator_history 增加nodename字段。 9 pg_catalog.pgxc_wlm_operator_history 增加nodename字段。 10 pg_catalog.pgxc_wlm_operator_info 增加nodename字段。
  • GUC参数 表8 GUC参数 变更类型 序号 名称 变更描述 新增 1 wal_compression_level PFI日志压缩功能zlib压缩级别,默认9。 2 wal_compression PFI日志压缩功能开关,默认关闭。 3 max_xlog_backup_size xlog日志备份大小。当节点备份的xlog日志size超过该值时,自动删除备份的最旧xlog日志,直到备份日志size小于该值的90%。 4 max_cache_partition_num 表示在重分布过程中,最多在内存中保留的分区数量,多余该数量,把最早的分区按CU格式下盘。 5 password_encryption_type 该参数决定采用何种加密方式对用户密码进行加密存储。新增取值2,表示采用sha256方式对密码加密。 如果当前集群为8.0.0及以下版本升级到当前版本,该参数的默认值为保持前向兼容和原低版本集群一致,即默认值保持向前兼容仍旧是1;新安装集群默认值为2。 6 join_num_distinct 控制join列的默认distinct值,默认值-20。 7 cost_model_version 控制本次cost估算优化是否生效的参数,默认值为1,代表生效。 8 qual_num_distinct 控制过滤列的默认distinct值,默认值200。 9 behavior_compat_options 新增varray_verification选项,支持回退此次新增的校验。 10 behavior_compat_options 新增check_function_conflicts选项 支持对IMMUTABLE函数内部是否有非IMMUTABLE行为的校验。 11 auto_process_residualfile 自动记录残留文件功能开关。默认为true,表示功能打开。 12 default_colversion 用于指定用户创建列存表时的默认建表格式,默认格式为1.0。 13 enable_partition_dynamic_pruning 分区表扫描是否支持动态剪枝,默认打开(支持动态剪枝)。 14 enable_join_pseudoconst 控制是否在等于常量的join表达式上生成join表达式,类似t1 inner join t2 on t1.a=t2.a where t1.a = 1场景下,可以根据t1.a=t2.a生成join表达式(以前的时候这类jion条件不能做join cond)。 15 view_independent 参数作用:控制视图依赖解耦功能的开关。 默认值:off。 16 enable_view_update 支持单表视图更新。 修改 17 enable_index_nestloop enable_index_nestloop 从C80以及之前的版本升级到最新的补丁版本保持off。 enable_index_nestloop 从651 650版本升级上来,保持前向兼容。 enable_index_nestloop 安装默认on. 18 archive_mode xlog日志归档开关,默认值从off变更为on;在部分场景对性能有小幅影响,性能比拼等POC场景建议手动规避。 19 cost_param 默认值修改为16,对应本次的cost估算优化内容。 20 rewrite_rule 去除partialpush(部分下推)参数选项。 21 behavior_compat_options 新增strict_concat_functions参数选项,用作函数textanycat和anytextcat的前向兼容。 22 behavior_compat_options 增加'strict_text_concat_td'选项,TD模式下使textcat/textanycat/anytextcat变为strict函数。 23 behavior_compat_options 增加strict_text_concat_td选项,兼容TD模式下NULL的拼接行为。 24 behavior_compat_options 增加bpchar_text_without_rtrim选项,兼容TD模式下bpchar字符串操作对尾部空格处理的风格。
  • 时区 表9 时区 变更类型 序号 名称 变更描述 修改 1 Asia/Beijing北京时区的定义改为与Asia/Shanghai一致 1901年前的时区偏移从08:00:00调整为08:05:43。 新增了1940年至1949年的夏令时规则。 1940年6月1号到10月12号采用夏令时。 1941年3月15号到11月1号采用夏令时。 1942年1月31日直到1945年9月1号都采用夏令时,这三年都使用夏令时区是因为期间发生了二战,政府没有在进行时区规则全国调整。 1946年05月15日到09月31日采用夏令时。 1947年04月15日到10月31日采用夏令时。 1948年05月01日到09月30日采用夏令时。 1949年05月01日到09月30日采用夏令时。 1986年至1991年间的夏令时规则也进行了调整。 1986至1991年夏令时调整从凌晨零点改为凌晨两点。 1987至1991年夏令时调整到标准时区从9月10号以后第一个周日改为11号以后第一个周日。 2 Asia/Shanghai定义修改 1901年前的时区偏移从08:05:57调整为08:05:43。 调整1940至1941年夏令时规则。 1940年夏令时时间,从6月3日到10月1日改为6月1日到10月12日。 1941年夏令时时间,从3月16日到10月1日改为3月15日到11月1日。 新增了1942年至1949年夏令时规则。 1942年1月31日直到1945年9月1号都采用夏令时,这三年都使用夏令时区是因为期间发生了二战,政府没有在进行时区规则全国调整。 1946年05月15日到09月31日采用夏令时。 1947年04月15日到10月31日采用夏令时。 1948年05月01日到09月30日采用夏令时。 1949年05月01日到09月30日采用夏令时。 1986年至1991年间的夏令时规则也进行了调整。 1986至1991年夏令时调整从凌晨零点改为凌晨两点。 1987至1991年夏令时调整到标准时区从9月10号以后第一个周日改为11号以后第一个周日。 3 Asia/Urumqi 1980年5月后的时区偏移从东八区调整为东六区。 4 原民国时期按照物理时区定义的五大时区调整为两大时区 Asia/Harbin(长白时区),Asia/Chongqing(陇蜀时区),Asia/Shanghai(中原标准时区)时区名保留,定义都指向新定义的Asia/Shanghai(中国标准时区)。全国统一使用。 Asia/Kashgar(昆仑时区),Asia/Urumqi(新藏时区)时区名保留,定义都指向新定义的Asia/Urumqi(乌鲁木齐时区)。当地同时使用两个时区定义。 5 初始化默认时区可能会变更 数据库初始化时会评估一个最符合操作系时区的数据库内部支持时区作为默认时区。因数据库内部支持的时区定义变化,可能会导致初始化默认时区有变化。
  • 系统表 表4 系统表 变更类型 序号 名称 变更描述 新增 1 dbms_om.gs_wlm_session_info 新增系统表。 2 dbms_om.gs_wlm_operator_info 新增系统表。 修改 3 pg_jobs 对应老系统表pg_job,元数据关系使用oid关联,由于共享系统表已满,无法在一个事务中删除后添加,因此重命名pg_job_proc得来。 4 pg_proc 将函数textanycat和anytextcat修改为非STRICT函数。 5 pg_proc 修改函数database_to_xml、database_to_xmlschema、database_to_xml_and_xmlschema为非STRICT函数。 6 pg_catalog.gs_wlm_session_info 修改为同名视图。 7 pg_catalog.gs_wlm_operator_info 修改为同名视图。 增加nodename字段。 8 pg_catalog.gs_wlm_ec_operator_info 修改为同名视图。 9 pg_catalog.gs_wlm_ec_operator_info 修改为同名视图。 增加nodename,plan_node_name,ec_operator,ec_fetch_count四个输出字段。
  • 系统函数 表5 系统函数 变更类型 序号 名称 变更描述 新增 1 pgxc_get_residualfiles pg_get_residualfiles的cn统一查询函数。 2 pgxc_rm_residualfiles pg_rm_residualfiles的cn统一查询函数。 3 pgxc_verify_residualfiles pg_verify_residualfiles的cn统一查询函数。 4 query_to_xmlschema 把Query查询的内容映射成XML模式文档。 5 query_to_xml 把Query查询的内容映射成XML文档。 6 query_to_xml_and_xmlschema 把Query查询的内容映射成XML值和模式文档。 7 table_to_xmlschema 把关系表的内容映射成XML模式文档。 8 table_to_xml 把关系表的内容映射成XML值。 9 table_to_xml_and_xmlschema 把关系表的内容映射成XML值和模式文档。 10 cursor_to_xmlschema 把游标查询的内容映射成XML模式文档。 11 cursor_to_xml 把游标查询的内容映射成XML文档。 12 schema_to_xmlschema 把整个模式的内容映射成XML模式文档。 13 schema_to_xml 把整个模式的内容映射成XML文档。 14 schema_to_xml_and_xmlschema 把整个模式的内容映射成XML值和模式文档。 15 database_to_xmlschema 把整个数据库的内容映射成XML模式文档。 16 database_to_xml 把整个数据库的内容映射成XML文档。 17 database_to_xml_and_xmlschema 把整个数据库的内容映射成XML值和模式文档。 18 xmlpi 创建一个XML处理指令。 19 xmlcomment 创建一个使用指定文本作为内容的XML注释。 20 xmlserialize 从xml类型的值生成一个字符串。 21 xmlparse 从字符数据中生成一个xml类型的值。 22 xpath 返回一个xml值的数组对应xpath表达式所产生的节点集。 23 get_instr_unique_sql_remote_cns 获得除当前CN节点外所有其他CN上面的uniuqe sql数据。 24 xml_is_well_formed 检查text字符串是不是格式良好的xml值。 25 xml_is_well_formed_content 检查text字符串是不是格式良好的内容。 26 xml_is_well_formed_document 检查text字符串是不是格式良好的文档。 27 xmlconcat 将XML值组成的列表串接成一个单独的值。 28 xmlagg 聚集函数,将输入值串接起来。 29 IS DOCUMENT 判断参数值是一个正确的XML文档。 30 IS NOT DOCUMENT 判断参数值不是一个正确的XML文档。 31 xmlexists 判断参数中的XPath表达式是否返回任何结点。 32 xpath_exists 判断参数中的XPath表达式是否返回任何结点。 33 xmlelement 使用给定名称、属性和内容产生一个 XML 元素。 34 xmlforest 使用给定名称和内容产生一个元素的 XML 森林(序列)。 35 pg_xlog_replay_completion 显示当前DN Xlog redo的进度信息。 36 pg_data_sync_from_dummy_completion 显示当前DN 数据页从dummystandby传输的进度信息。 37 pg_stat_xlog_space 显示当前DN上Xlog空间使用信息。 38 pgxc_stat_xlog_space 显示所有主DN上Xlog空间使用信息。 39 xmlroot 修改一个 XML 值的根结点的属性。 40 pg_get_residualfiles 用于查询当前节点的所有残留文件列表。 41 pg_get_running_jobs 用于查询当前节点上正在运行的Job。 42 pg_is_residualfiles 用于从当前库中查询指定的relfilenode是否是残留文件。 43 pg_rm_residualfiles 用于将指定的残留文件列表中的文件删除。 44 pg_verify_residualfiles 用于验证指定的文件中记录的残留文件列表是否确实为残留文件。 45 table_distribution 增加一个参数、参数类型为regclass的table_distribution函数。 46 XMLTABLE 支持XMLTABLE函数用于解析XML数据。 修改 47 pgxc_get_senders_catchup_time 增加catchup过程信息字段。 48 pg_stat_get_data_senders 增加catchup过程信息字段。 49 pgxc_get_thread_wait_status 增加参数num_node_display。 50 pg_stat_get_status 增加参数num_node_display。 51 pg_catalog.pgxc_get_wlm_session_info_bytime 第一个参数从区分大小写修改不不区分大小写。
  • SQL语法 表2 SQL语法 变更类型 序号 名称 变更描述 新增 1 列存分区表支持split操作 列存分区表支持split操作。 2 CREATE TABLE tbl(LIKE tbl2 INCLUDING DROPCOLUMNS ) 新增支持LIKE DROPCOLUMNS语法。 3 ALTER TABLE tbl DISTRIBUTE BY 新增支持修改表分布列语法。 4 ALTER TABLE set version 用于切换列存表的新老格式。 5 CREATE/ALTER FOREIGN TABLE Write Only 支持OBS的ORC格式写。 6 CREATE/ALTER FOREIGN TABLE Write Only 支持HDFS的ORC格式写。 7 XML类型 支持在表、函数中使用XML数据类型。 8 ALTER VIEW alter view viewname REBUILD; 修改 9 VACUUM FULL vacuum full同一张表并发操作时会发生死锁。 10 DROP TEXT SEARCH CONFIGURATION 如果待删除的TEXT SEARCH CONFIGURATION是当前的default_text_search_config则报错,删除失败。 11 CREATE/ALTER ROLE/USER AUTHINFO 'ldap' 修改原有的指定用户认证类型是ldap的语法,去除64个字符的限制。 12 CREATE USER/ROLE with authinfo 'ldap' password disable 修改创建ldap用户的语法。 13 ALTER USER/ROLE with authinfo 'ldap' password disable 修改更新ldap用户的语法。 删除 14 ALTER TABLE 分区表 exchange with unlogg表 禁止分区表与unlogged表做exchange交换。 15 ALTER TABLE ... inherit修改继承关系功能 优化器未对表继承做适配,需封禁alter table inherit接口。
  • GUC参数 表8 GUC参数 变更类型 序号 名称 变更描述 新增 1 enable_wlm_internal_memory_limit 控制是否打开wlm内部的限制,如:作业估算内存不超过80%/90%/40%的限制。 2 enable_strict_memory_expansion 控制作业是否在DN上做内存扩展。 3 allow_zero_estimate_memory 控制作业在没有统计信息情况下,是否允许将估算内存设置为0。 4 max_process_memory_auto_adjust 控制CM在主备切换情况下是否对max_process_memory做动态调整。 5 wlm_memory_feedback_adjust 控制CCN的动态负载管理中的内存负反馈功能是否开启,支持:on、off、on(50,40) 三种设置方式。 6 autoanalyze_mode 新增系统级autoanalyze模式的控制参数(默认normal与前向行为一致,设置为light则启用动态采样)。 7 enable_redactcol_computable 用于设置是否开启数据脱敏可算功能,默认关闭。 8 windowagg_pushdown_enhancement 控制窗口函数和group by同时出现时是否将partition by 和 group by的交集下推。 9 enable_from_collapse_hint 控制是否启用优先选择hint的计划,默认启用,并支持语句级hint参数。 10 enable_value_redistribute 用于设置是否使用value partition stream优化windowagg。 11 setop_optmode 控制setop操作的各个子查询分支是否做去重操作,默认值disable,即不去重,跟8.2.0之前版本保持一致;配置值force:强制走去重;配置值cost,基于cost选择是否去重。(注:setop分支的底层为stream算子的时候才会尝试去重)。 12 security_enable_options 表示安全模式下部分操作解禁,默认为空。 13 audit_object_name_format 控制审计日志中object_name字段显示对象名的格式,默认single,显示单对象。 14 enable_redactcol_equal_const 用于限制新版本脱敏下允许常量套取的行为,默认关闭,禁止脱敏列与常量做等值比较。 15 enable_mixedagg 用于控制是否生成Mixed Agg执行计划,默认关闭。 16 max_streams_per_query 用于控制对stream数量过多的plan在优化器阶段报错,避免stream建连占用过多连接,默认值10000。 17 agg_max_mem 用于控制Agg算子聚集列超过5个时,最大的估算内存,防止估算内存过大导致CCN排队。 18 max_volatile_memory volatile临时表相关内存context的最大量,单位kb,取值范围1024-INT_MAX,默认1GB。 19 max_volatile_tables 单个session中volatile临时表(包括创建时的附属表,如toast、cudesc)的个数限制,默认300。 20 enable_hashfilter 用来控制是否可以生成hashfilter。 21 volatile_shipping_version 控制8.2.0版本sequence下推增强能力,默认1。 22 smp_thread_cost 用于控制生成的query_dop值。默认值为1000。 23 enable_wal_decelerate 用于带索引导入时的流控限速的总开关。 24 wal_decelerate_policy 用于表示触发限速后的行为策略。 25 wal_write_speed 用于表示单DN每个query每秒最大允许触发wal写入动作的速度Byte/s。 26 wal_decelerate_trigger_threshold 用于表示单DN每个query触发wal写入限速的门限。 27 enable_cstore_ring_buffer 控制是否开启列存RingBuffer。 28 enable_tsdb_multi_temperature 控制是否开启时序表的obs冷热功能,默认为关闭。 29 enable_tsdb_multi_temperature 控制是否开启时序表的obs冷热功能,默认为关闭。 30 ddl_lock_timeout 用于单独指定阻塞DDL语句等锁的时间,让DDL拿不到锁快速终止,只对八级锁有效,默认值为0,表示不生效。 31 build_backup_param 控制增量build过程中用于磁盘备份的最小满足规格。 修改 32 comm_tcp_mode 参数类型从POSTMASTER修改为SIGHUP。 33 max_process_memory 进程的最大内存,由POSTMASTER类型修改为SIGHUP;最小阈值为2G,不推荐设置为最小阈值。 34 rewrite_rule 新增eager_magicset枚举值控制magic set增强功能。 35 behavior_compat_options behavior_compat_options新增normal_session_id取值,用于控制是否session id是否拼接node_name,默认关闭,session id拼接node_name。 36 behavior_compat_options merge_into_with_trigger新增behavior_compat_options,开启后支持对有触发器的表执行MERGE INTO,默认关闭 37 behavior_compat_options 增加选项disable_jsonb_exact_match,控制操作符匹配规则,默认关闭; 参数关闭时,仅支持jsonb相关类型的精确匹配;若精确匹配失败,则会在剩余不含jsonb类型的备选中匹配; 参数打开时,行为回退,操作符匹配不区分类型; 38 hashjoin_spill_strategy 新增两种策略5,6。行为与原来0、1相同。原来0、1行为修改。从内表较大内存放不下,外表较小时进行内外表交换,改成内表较大内存放不下,继续划分内表,直到无法划分。在尝试内外表交换, 39 sql_use_spacelimit 对sql_use_spacelimit参数初始值进行设置。将其修改为当前实例所在磁盘的10%(上限),不足10G(下限)时,设置为10G 40 temp_file_limit 对temp_file_limit参数初始值进行设置。将其修改为当前实例所在磁盘的10%(上限),不足10G(下限)时,设置为10G。 删除 41 enable_grant_public 表示安全模式下不支持grant to public语法。 42 enable_grant_option 表示安全模式下不支持grant with grant option语法。
  • 系统表 表5 系统表 变更类型 序号 名称 变更描述 新增 1 gs_blocklist_query 新增系统表用于保存黑名单语句和异常规则触发信息。 2 pg_except_rule 新增pg_except_rule系统表,用于存储当前集群所创建的异常规则信息,包括规则名称,具体规则阈值,以及规则触发的action。 修改 3 pg_redaction_policy, pg_redaction_column 新增inherited列,说明策略是否由用户手动创建
  • 系统视图 表7 系统视图 变更类型 序号 名称 变更描述 新增 1 gs_obs_latency 新增视图用于监控OBS延迟。 2 pgxc_stat_wal 查询当前query的wal日志和数据页的流量信息。 3 pgxc_lockwait_detail 显示每个节点中锁等待链详细信息。 4 pgxc_wait_detail 显示所有节点SQL等待从上之下的等待链详细信息,包括wait_node、query等。 修改 5 gs_get_obs_read_traffic OBS读写带宽视图,修改为按10分钟间隔聚集,增加logtime列显示时间分组。 6 gs_get_obs_write_traffic OBS读写带宽视图,修改为按10分钟间隔聚集,增加logtime列显示时间分组。
  • 系统函数 表6 系统函数 变更类型 序号 名称 变更描述 新增 1 pg_stat_get_runtime_relstats 新增函数,开启动态采样后autoanalyze生成的表级统计信息存放于内存中,该函数用于查询。 2 pg_stat_get_runtime_attstats 新增函数,开启动态采样后autoanalyze生成的列级统计信息存放于内存中,该函数用于查询。 3 pg_stat_set_last_data_changed_num 新增手动设置表历史累计修改量接口,用于pgstat内容丢失的补救措施 4 strcmp() 字符串比较,相等返回0,小于返回-1,其他返回1,入参含null返回null 5 hex() 入参字符串的每个字符或十进制整数转化为十六进制数字。 6 unhex() 执行从HEX(str)的反向操作。就是说,它将参数中的每一对十六进制数字理解为一个数字,并将其转化为该数字代表的字符。结果字符以bytea的形式返回。 7 space(n) 返回n个空格构成的字符串 8 rand() 获取0.0 到 1.0 之间的随机数。 9 truncate(x,d) 将x截断为d位小数。d为负数时截断整数位为0。 10 addtime(expr1,expr2) 增加时间。expr1是time或timestamp类型,expr2是interval类型。 11 subtime(expr1,expr2) 特定时间减去指定的时间。expr1 - expr2 expr1为time、timestamp类型。expr2为interval类型,返回类型同expr1。 12 timediff(expr1,expr2) 计算两个参数的时间差。expr1 - expr2,返回time类型, 入参需同为time类型或timestamp类型。 13 curdate() 返回当前日期,date类型。 14 curtime([fsp]) 返回当前时间,time类型 fsp-它指定返回的小数秒精度。 15 uuid() 返回通用唯一标识符(UUID)。 16 convert_tz() 进行时区转换。 17 cast(expr,typename) 将expr转换为指定type。 18 digest() digest()函数可以根据不同的算法生成数据的二进制哈希值。 19 hmac() hmac()函数可以根据不同的算法为带有密钥的数据计算出MAC值。 20 crypt()和gen_salt() crypt()和gen_salt()函数专用于哈希密码。crypt()执行哈希用于加密数据,gen_salt()用于生成加盐哈希。 21 pgp_sym_encrypt() 用于对称密钥加密。 22 pgp_sym_decrypt() 用于解密PGP对称密钥加密后的消息。 23 pgp_pub_encrypt() 用于公共密钥加密。 24 pgp_pub_decrypt() 用于解密PGP公共密钥加密后的消息。 25 pgp_key_id() 用于提取PGP公钥或者私钥的密钥ID;如果传入一个加密后的消息,将会返回加密该消息使用的密钥ID。 26 armor() 用于将二进制数据转换为PGP ASCII-armor格式,相当于Base64加上CRC以及额外的格式化。 27 dearmor() 用于执行与armor()函数相反的转换。 28 pgp_armor_headers() 函数用于返回数据中的armor header。 29 encrypt 原始加密函数,不支持PGP加密的任何高级功能。IV是0。 30 decrypt 原始解密函数,不支持PGP加密的任何高级功能。IV是0。 31 encrypt_iv 原始解密函数,不支持PGP加密的任何高级功能。IV可由用户设定。 32 decrypt_iv 原始解密函数,不支持PGP加密的任何高级功能。IV可由用户设定。 33 gen_random_bytes gen_random_bytes()函数用于生成具有强加密性的随机字节。 34 gen_random_uuid() gen_random_uuid()函数用于返回一个version 4的随机UUID。 35 get_volatile_pg_class 获取内存中volatile临时表的pg_class相关元数据(volatile临时表元数据不存储系统表)。 36 get_volatile_pg_attribute 获取内存中volatile临时表的pg_attribute相关元数据。 37 gs_increase_except_num 新增函数,用于增加查询异常触发次数。 38 gs_update_blocklist_hash_info 新增函数用于更新内存中黑名单信息。 39 gs_append_blocklist 新增函数用于新增黑名单语句。 40 gs_remove_blocklist 新增函数用于将语句移出黑名单。 41 gs_wlm_rebuild_except_rule_hash 新增gs_wlm_rebuild_except_rule_hash函数用于主动触发build异常规则内核hash表。 42 pg_stat_wal_write 用于查询当前cn或dn上的线程信息,以及wal和数据页导入量及速率。 43 pgxc_stat_wal_write 用于查询cn与dn交互的线程信息,以及wal和数据页导入量及速率。 44 get_col_file_info 获取指定列存表的空CU文件数和总CU文件数。 45 get_all_col_file_info 获取所有列存表的空CU文件数和总CU文件数。 46 col_rebuild_file_relation 更换Relfilenode,重新整理指定列存表的CU文件,重整后变回连续的1GB文件。 修改 47 pg_query_audit/pgxc_query_audit 修改thread_id字段为session id字段,记录语句执行所在的session。 48 login_audit_messages/login_audit_messages_pid 新增session id字段,记录语句执行所在的session。
  • 行为变更 表2 行为变更 变更类型 序号 名称 变更描述 新增 1 支持windowagg生成value partition执行计划 窗口函数出现在语句的最外层,如果没有加order by,基线行为数据会是有序的,8.2.0版本默认开启enable_value_redistribute以后,数据会变成无序的,需要指定order by子句才能保证有序。 修改 2 异常规则配置方式变更,由工具变更为语法配置 异常规则原来由gs_cgroup对其对应的控制组做配置,8.2.0更改为CREATE/ALTER/DROP EXCEPT RULE语法配置,新版本使用gs_cgroup配置时会给出相应提示。 3 异常规则内部去除qualificationtime,以elapsedtime取代 qualificationtime在旧版本作为一个规则,但是只能与cpuskewpercent合并使用,效果和elapsedtime相同。因此去除该配置项,直接配置elapsedtime即可。 4 tid字段名 行存支持tid字段名,原行存不支持tid字段名。 5 max_process_memory CN调整为DN的一半。
  • SQL语法 表3 SQL语法 变更类型 序号 名称 变更描述 新增 1 表属性参数analyze_mode 新增表级analyze模式的控制参数(该表支持哪种analyze),不设置时与前向无变化。 2 禁用子查询提升hint 增加禁用子查询提升hint,支持形式:no_merge当前查询,no_merge(relid)指定对象。 3 hint在DML语句中生效 增加支持hint在insert/update/merge/delete语句中生效。 4 agg重分布hint增加支持指定列名 agg重分布hint增加支持指定列名,形式为/+ redistribute ((*) (a b c d)) */。 5 agg重分布hint增加支持指定count(distinct)列 agg重分布hint支持指定count(distinct)列在双层hashagg场景下生效。 6 invisible 新增索引OPTIONS,用于设置索引扫描在执行计划中是否可见。 7 支持MySQL中的反引号 支持使用反引号区分普通字符和特殊字符。 8 创建表时,列定义支持指定on update属性 列定义指定on update属性时,当数据有更新时,自动填充更新时间戳。 9 CREATE/ALTER/DROP EXCEPT RULE 新增语法用于新增、创建、删除内核异常规则。 10 CREATE SERVER增加OPTIONS security_token 新增OPTIONS security_token 用于传递securitytoken 用于临时AK,SK访问OBS。 11 CREATE FOREIGN TABLE增加OPTIONS security_token 新增OPTIONS security_token 用于传递securitytoken 用于临时AK,SK访问OBS。 12 OBS外表(dist_fdw)option参数新增file_split_ threshold选项 OBS外表(dist_fdw)option参数新增file_split_ threshold选项。 13 GDS外表新增gds_compress参数 基于GDS管道文件导入导出,用于GDS互联互通时候数据在DN和GDS之间压缩传输,目前仅支持snappy压缩算法普通文件的导入导出不支持该参数。 14 GDS外表新增dataencoding参数 用于表示latin1数据库中保存的数据的字符集。 15 gc_fdw互联互通外表(sql on other gaussdb 外表)新增gds_compress参数 用于GDS外表互联互通时候数据在DN和GDS之间压缩传输,目前仅支持snappy压缩算法。 16 gc_fdw互联互通外表(sql on other gaussdb)新增dataencoding参数 用于表示执行端laint1数据库中保存的数据的字符集。 修改 17 CREATE/ALTER REDACTION POLICY 表级参数deltarow_threshold的默认值设置为10000,指定列存表导入时小于多少行的数据进入delta表,只在表级参数enable_delta开启时生效。 18 资源池关联异常规则语法变更 新增INHERIT选项,说明策略是否继承自其他策略。 19 single_node支持obs外表语法 资源池旧版本可用于配置内存异常规则,8.2.0统一异常规则接口为 CREATE/ALTER RESOURCE POOL 'pool' with (EXCEPT_RULE='rule1,2'); 20 OBS外表(dist_fdw)支持使用server指定AK、SK single_node支持obs外表(dfs_fdw)。
  • 系统视图 表6 系统视图 变更类型 序号 名称 变更描述 新增 1 GS_WLM_SQL_ALLOW 新增视图供用户查询当前已设置的白名单。 2 PG_TOTAL_SCHEMA_INFO 查询节点Schema空间信息。 3 PGXC_TOTAL_SCHEMA_INFO 查询集群Schema空间信息。 4 PGXC_TOTAL_SCHEMA_INFO_ANALYZE 分析集群Schema空间信息。 5 PGXC_LOCK_CONFLI CTS 查询各节点上存在冲突的锁信息。 6 PGXC_DEADLOCK 返回处于分布式死锁中的锁等待信息(包括锁定对象、持锁对象和等锁对象的信息)。 7 PGXC_NODE_STAT_RESET_TIME 显示每个节点的重置时间。 8 GS_NODE_STAT_RESET_TIME 显示当前节点的重置时间。 9 GLOBAL_STAT_DATABASE 显示database全局统计信息。 10 GLOBAL_REL_IOSTAT 显示全局IO统计信息。 11 PGXC_REL_IOSTAT 显示各节点IO统计信息。 12 GS_REL_IOSTAT 显示当前节点IO统计信息。 13 GLOBAL_REDO_STAT 显示全局Redo统计信息。 14 PGXC_REDO_STAT 显示各节点Redo统计信息。 15 GLOBAL_WORKLOAD_TRANSACTION 显示全局workload事务统计信息。 16 PGXC_INSTANCE_TIME 显示各实例时间统计信息。 17 PGXC_SETTINGS 显示各节点GUC设置情况。 18 PGXC_REPLICATION_SLOTS 显示各节点复制slot统计信息。 19 PGXC_STAT_REPLICATION 显示各节点replication统计信息。 20 PGXC_STAT_BGWRITER 显示各节点bgwriter统计信息。 21 PGXC_WAIT_EVENTS 显示各节点等待事件统计信息。 22 GS_WAIT_EVENTS 显示当前节点等待事件统计信息。 23 PGXC_OS_RUN_INFO 显示各实例所在机器OS性能统计信息。 24 PG_LIFECYCLE_DATA_DISTRIBUTE 获取obs冷热表的数据分布情况统计。 25 PG_BULKLOAD_STATIS TICS 对函数pg_stat_get_node_bulkload_statistics封装。 26 PGXC_BULKLOAD_STATISTI CS 对函数pgxc_stat_get_node_bulkload_statistics封装。 27 PGXC_BULKLOAD_PROGRESS 基于视图pgxc_bulkload_statistics查询结果进行聚合,计算GDS业务进度百分比。 28 PG_QUERYBAND_ACTION 查询所有query_band负载行为。 29 GS_VIEW_DEPENDENCY_PATH 级联查询视图的依赖关系。 修改 30 REDACTION_COLUMNS 修改系统视图定义,新增一列function_infos。 31 PGXC_GET_TABLE_SKEWNESS 修复了视图 PGXC_GET_TABLE_SKEWNESS 不显示 round-robin 表的问题。 32 PGXC_STAT_DATABASE 显示各实例上的Database统计信息。
  • 行为变更 表7 行为变更 变更类型 序号 名称 变更描述 修改 1 not-null/check约束冲突时不打印整行数据的detail not-null/check约束冲突时不打印整行数据的detail。 2 兼容C80行为默认不匹配interval到text隐式类型转换 behavior_compat_options设置enable_interval_to_text后支持该隐式类型转换。 3 date类型 ora兼容模式下,date类型反解析为pg_catalog.date。 4 agg计划 agg生成stream计划时输出所需列。 5 median配套collate使用 禁用median/percentile_cont/percentile_disc中使用collate。 6 多列分区的修改 调整分区修改时的多列边界检查规则,当某一列的边界值为maxvalue则忽略后面其他列的边界值。 7 enable_nestloop为off时无关联条件时的计划生成 对于两个表无等值关联条件,但与其它表存在等值关联条件,且join的行数膨胀时,原来可以走nestloop,修复完走不了nestloop的计划;对于不支持hashjoin的等值join列,mergejoin也为off时,会导致nestloop代价变化,原来走nestloop+indexscan的会变成nestloop+materialize。
  • GUC参数 表8 GUC参数 变更类型 序号 名称 变更描述 新增 1 behavior_compat_options 增加convert_empty_str_to_null_td选项,兼容TD模式下to_date, to_timestamp和to_number函数对空串处理返回NULL的行为。 增加enable_interval_to_text选项,控制是否支持interval到text的隐式类型转换。 2 debug_group_dop 可以设定每个stream group的dop,用于在SMP自适应时进行语句级调优使用。默认为空。 3 enable_row_fast_numeric 行存表numeric落盘为bigint格式。 4 expand_hashtable_ratio hash表动态扩展。 5 query_dop_ratio 新增逻辑dop依据系统资源和代价进行判断,当判断不准时增加参数进行逃生。默认为1。 6 show_unshippable_warning 新增参数,控制是否将不下推日志打印到客户端,默认关闭。 7 assign_abort_xid 新增session级别参数,当客户误删(delete)数据后,进行快速有损恢复。默认值为空字符串。此guc参数的意思是需回滚指定xid提交的事务。 8 bi_page_reuse_factor 批插页重用时空闲fsm因子(0表示回到旧逻辑)。 9 check_cu_size_threshold userset级别,列存表插入时,如果一个CU里插入的数据量大于check_cu_size_threshold,启用行大小校验,避免产生大于1G的CU。 10 enable_light_colupdate useset级别,表明是否使用轻量化update。 修改 11 cost_model_version 增加参数值2,默认值1不变。小于2时analyze固定值采样使用原始函数,大于2时固定值采样使用增强随机性的优化函数。 12 expected_computing_nodegroup 就地升级后设置expected_computing_nodegroup为bind。 13 query_dop 新安装集群默认值修改为1,升级集群维持原默认值不变。
  • 关键字 表3 关键字 变更类型 序号 名称 变更描述 新增 1 TIMESTAMPDIFF 新增关键字为 COL_NAME_KEYWORD。 2 IFNULL 新增关键字为 COL_NAME_KEYWORD。 3 REFRESH 非保留关键字。 修改 4 IF 由UNRESERVED_KEYWORD 改为 COL_NAME_KEYWORD。 5 ISNULL 由UNRESERVED_KEYWORD 改为 COL_NAME_KEYWORD。 6 VERIFY 由保留关键字变为非保留关键字。
  • 系统函数 表5 系统函数 变更类型 序号 名称 变更描述 新增 1 pgxc_wlm_readjust_schema_space() Schema空间并行校准函数。 2 pgxc_wlm_get_schema_space() 查询集群Schema空间信息。 3 pgxc_wlm_analyze_schema_space() 分析集群Schema空间信息。 4 gs_roach_enable_delay_ddl_recycle 按照备份集的名称来开启延迟DDL。 5 gs_roach_disable_delay_ddl_recycle 按照备份集的名称来关闭延迟DDL。 6 gs_roach_stop_backup 按照备份集名称停止行存备份操作。 7 gs_roach_switch_xlog switch xlog时是否执行checkpoint。 8 pgxc_get_lock_conflicts() 返回各节点上存在冲突的锁信息。 9 mask_none/mask_full/mask_partial 新增内置脱敏函数。 10 median 中位数agg函数。 11 pgxc_node_stat_reset_time() 查询每个节点的重置时间。 12 pgxc_rel_iostat() 查询各节点IO统计信息。 13 pgxc_redo_stat() 查询各节点Redo统计信息。 14 pgxc_instance_time() 查询各实例时间统计信息。 15 pgxc_settings() 查询各节点GUC设置情况。 16 pgxc_replication_slots() 查询各节点复制slot统计信息。 17 pgxc_stat_replication() 查询各节点replication统计信息。 18 pgxc_stat_bgwriter() 查询各节点bgwriter统计信息。 19 pgxc_wait_events() 查询各节点等待事件统计信息。 20 pgxc_os_run_info() 查询各实例所在机器OS性能统计信息。 21 get_node_stat_reset_time() 查询当前节点状态重置时间。 22 get_local_rel_iostat() 查询当前节点IO统计信息。 23 get_instr_wait_event() 查询当前节点等待事件统计信息。 24 pg_stat_get_db_total_blk_write_time() 查询块写入总时间。 25 pg_stat_get_db_total_blk_read_time() 查询块读取总时间。 26 pg_stat_get_db_total_temp_bytes() 查询临时文件总大小。 27 pg_stat_get_db_total_temp_files() 查询临时文件总数。 28 pg_stat_get_db_total_deadlocks() 查询死锁总数。 29 pg_stat_get_db_total_conflict_all() 查询冲突总数。 30 pg_stat_get_db_total_tuples_deleted() 查询删除元组总数。 31 pg_stat_get_db_total_tuples_updated() 查询更新元组总数。 32 pg_stat_get_db_total_tuples_inserted() 查询插入元组总数。 33 pg_stat_get_db_total_tuples_fetched() 查询fetch元组总数。 34 pg_stat_get_db_total_tuples_returned() 查询return元组总数。 35 pg_stat_get_db_total_blocks_hit() 查询内存命中数据块总数。 36 pg_stat_get_db_total_blocks_fetched() 查询读取数据块总数。 37 pg_stat_get_db_total_xact_rollback() 查询rollback事务总数。 38 pg_stat_get_db_total_xact_commit() 查询commit事务总数。 39 pg_stat_get_db_total_numbackends() 查询当前backend总数。 40 gs_encrypt() 加密函数。 41 gs_decrypt() 解密函数。 42 gs_hash() 哈希函数。 43 gs_password_expiration() 查询当前用户的密码剩余时间(对应系统表pg_authid中的rolpwdtime和rolpwdexpire)。 44 to_char(date) 新增to_char(date)函数,兼容TD模式下to_char处理date类型时间戳的返回格式。 45 gs_wlm_set_queryband_action 设置query_band负载行为。 46 gs_wlm_set_queryband_order 设置query_band搜索优先级。 47 gs_wlm_get_queryband_action 查询query_band负载行为。 48 CONCAT 新增MYSQL兼容规则,入参含NULL则返回NULL。 49 TIMESTAMPDIFF 支持TIMESTAMPDIFF函数返回指定单位的时间差。 50 TO_DAYS 支持TO_DAYS函数返回输入时间到0的天数差 51 DATE_FORMAT 支持DATE_FORMAT函数用于将输入日期时间转化为指定格式的字符串,格式为%开头的MYSQL形式。 52 IF 实现IF函数,根据首个输入返回对应值。 53 IFNULL 实现IFNULL函数,返回首个非NULL值。 54 ISNULL 实现ISNULL函数,判断输入是否为NULL。 修改 55 pg_resume_bkp_flag 用于备份恢复获取delay ddl标志。 56 pg_query_audit 审计日志记录新增五个字段:begintime、operation_type、command_text、transaction_xid、query_id;变更原字段:将原time变更为endtime,将原type变更为audit_type。另将原detail_info下存放的操作命令移至command_text,而detail_info存放命令执行结果。 57 pg_delete_audit 基于安全考虑,不允许提供删除审计日志的接口,调用此函数将直接报错。 58 log() 对数函数,ora/td模式下表现为底为10的对数,mysql兼容模式下表现为自然对数。 59 to_number to_number函数原来调用numeric_in函数,现修改成调用to_number函数,兼容TD模式下to_number函数空串处理返回null。 60 left() 字符串截取,当入参是负数时,ora/td模式下返回除最后|n|个字符以外的所有字符,mysql兼容模式下返回空串。 61 right() 字符串截取,当入参是负数时,ora/td模式下返回除前|n|个字符以外的所有字符,mysql兼容模式下返回空串。 62 last_day 入参增加timestamptz类型,mysql兼容模式下返回类型处理为date类型,ora/td模式返回timestamp。 63 next_day 入参增加timestamptz类型,mysql兼容模式下返回类型处理为date类型,ora/td模式返回timestamp。 64 add_months 入参增加timestamptz类型,mysql兼容模式下返回timestamptz类型,ora/td模式返回timestamp类型。 65 add_months 入参增加date类型,mysql兼容模式下返回date类型,ora/td模式返回timestamp类型。 66 pg_cbm_recycle_file 增加参数,支持备份和容灾并行特性对cbm的回收支持。 67 pgxc_query_audit 新增字段:begintime、operation_type、command_text、transaction_xid、query_id;修改原字段:将原time变更为endtime,将原type变更为audit_type。另将原detail_info下存放的操作命令移至command_text,而detail_info存放命令执行结果。 68 login_audit_messages 增强审计日志特性适配。 删除 69 add_policy/drop_policy/alter_policy/enable_policy/disable_policy 删除脱敏旧的接口。
  • SQL语法 表2 SQL语法 变更类型 序号 名称 变更描述 新增 1 LIMIT offset,count 支持LIMIT offset,count语法。 2 EXPLAIN(STATS ON)... 支持EXPLAIN(STATS ON)... 语法,用于导出计划复现的相关信息。 3 CREATE/ALTER/DROP REDACTION POLICY 新增脱敏DDL语法。 4 INSERT IGNORE INTO INSERT INTO ON DUPLICATE KEY UPDATE INSERT INTO ON CONFLICT DO UPDATE INSERT INTO ON CONFLICT DO NOTHING 支持UPSERT功能。 5 INSERT OVERWRITE INTO INSERT OVERWRITE覆盖导入功能。 6 ALTER TABLE REFRESH STORAGE 进行冷热表的冷热切换,将热数据变冷。 7 ALTER VIEW ONLY view_name REBUILD alter view only viewname REBUILD。 8 ALTER SERVER REFRESH 用以HDFS配置变动时,刷新HDFS SERVER的配置文件。 修改 9 操作符^ MySQL兼容模式下处理为异或,ora/td模式为幂运算。 10 MERGE INTO MERGE INTO语句的目标表上包含触发器时报错。 11 CREATE/ALTER Table 新增Reloptions中cold_tablespace和storage_policy冷热表相关的选项。
  • GUC参数 表8 GUC参数 变更类型 序号 名称 变更描述 新增 1 space_readjust_schedule 用户、schema空间是否自动校准的参数,默认值:auto,支持范围:off/auto/auto(xxxK/M/G)。 2 space_once_adjust_num 空间管控和空间统计功能中,控制慢速构建与细粒度校准操作中每次处理的文件个数阈值,默认值:300。 3 tag_cache_max_number 该参数用于设置全局哈希表tag cache缓存item的最大阈值,默认值10000000。 4 enable_tagbucket_auto_adapt 该参数用于设置是否开启tagbucket自适应调整,默认值on。 5 cache_tag_value_num 该参数用于在tag列lateread场景时,设置缓存的tag元组数量,默认值60000。 6 buffer_ring_ratio 用于控制行存Ringbuffer的阈值和开关,默认值250,即1/4(250/1000),与以前逻辑一致。 7 enable_stream_ctescan 新增参数,升级默认关闭,新装默认打开。控制stream计划是否开启share scan功能。 8 behavior_compat_options 新增disable_including_all_mysql选项用于控制MySQL兼容模式下create table like语法是否为including all模式,默认不设置,create table like语法为including_all模式。 9 profile_logging_module 增加GUC参数profile_logging_module配置记录性能日志的类型,升级和新装均默认打开OBS,HADOOP,REMOTE_DATANODE,关闭MD。该参数方法与日志模块开关logging_module相同。 10 object_mtime_record_mode 控制pg_object记录修改时间的行为,默认保持老版本行为,新增选项可控制不记录分区/truncate/grant/revoke。 11 skew_option 控制是否使用优化策略。 12 ddl_lock_timeout 配置ddl锁超时的时间。 修改 13 rewrite_rule 新增选项orconversion,默认打开。 使用等值关联的OR条件优化规则。变更点:计划从nestloop转到hashjoin。 新增选项projection_pushdown,默认打开。 变更点:子查询/CTE/视图中未使用的列被优化删除。 14 default_orientation 新增userset guc 参数 default_orientation,用于控制用户默认建表(不设置orientation)的类型,参数有三种类型可以设置: 行存表(row), 列存表(column), 开启delta表的列存表(column enabledelta)。 15 max_process_memory 初始化安装时OM设置max_process_memory公式为:可用内存*0.7/(1+DN数),其中系数0.7改为0.8。老集群升级、扩容等场景不变。 16 enable_bloom_filter 复用原参数,现用于控制列存BloomFilter,默认值不变(打开)。 17 retry_ecode_list 默认值新增45003,主要是处理list分区表查询和add分区并发场景下,查询分区可能错位的问题。 18 auth_iteration_count 将默认值从50000减少到10000,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。
  • 行为变更 表7 行为变更 变更类型 序号 名称 变更描述 修改 1 create index目标表为时序表时 时序表创建的任何索引都会转换为tag表上的双索引,该双索引的索引列为指定的建索引的列。 2 负载管理新增二次管控 负载管理引入二次管控,提供更精细化的管控,FUNCTION、函数和多语句中包含复杂查询的可能触发多次管控,设置enable_transaction_parctl=off可以关闭二次管控,但同时会关闭事务块语句和多语句管控。 3 负载管理autoanalyze纳管 查询触发autoanalyze管控逻辑由不管控修改为管控,设置enable_transaction_parctl=off可以关闭autoanalyze管控。 4 用户监控视图pg_total_user_resource_info CPU/内存资源使用和限制全部修改为用户在集群内的资源使用和资源限制。 CPU、IO、内存监控规格变更:由只监控复杂作业修改为监控所有作业。 CPU监控逻辑变更:由cgroup监控修改为作业CPU监控汇总。 5 审计日志 1.事务内语句在未设置审计事务但设置审计对应语句类型时,仍进行审计。 2.DECLARE CURSOR语句在guc参数audit_operation_exec设置select时也进行审计。
  • 系统视图 表6 系统视图 变更类型 序号 名称 变更描述 新增 1 pgxc_session_wlmstat 新增视图。 2 pg_comm_query_speed 新增视图,根据query_id查询发送信息。 3 pgxc_respool_resource_info pgxc_respool_runtime_info pgxc_respool_resource_history gs_respool_resource_info gs_respool_runtime_info 资源监控新增相关视图。 4 pgxc_wait_detail pgxc_lockwait_detail 新增pg_locks增强视图。 修改 5 DBA_PART_INDEXES DBA_PART_TABLES DBA_TAB_PARTITIONS USER_IND_PARTITIONS USER_PART_INDEXES USER_TAB_PARTITIONS 增加相关list分区描述。 6 pgxc_wlm_session_statistics 视图从所有CN查询TopSQL实时信息的逻辑由串行修改为并行,提升性能,功能不变。 7 all_indexes sys和pg_catalog下面的视图all_indexes定义存在问题,不同scheam下存在同名对象的场景下会导致结果集膨胀。
  • 关键字 表3 关键字 变更类型 序号 名称 变更描述 新增 1 MATERIALIZED with cte as后新增[NOT] MATERIALIZED语法。作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 2 time_fill 用于时间填充表达式输出time_fill列,作为关键字,不能用作函数名和自定义数据类型名。 3 fill_first/fill_last/fill_avg 用于时间填充表达式,输出填充列,作为关键字,不能用作函数名和自定义数据类型名。 4 list 用于指定分区表类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 5 tsfield/tstag/tstime 用于指定时序表kvtype类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。
  • 系统函数 表5 系统函数 变更类型 序号 名称 变更描述 新增 1 rb_build 将int数组转成一个bitmap类型。 2 rb_to_array rb_build的逆向操作,把RoaringBitmap转成int数组。 3 rb_and 两个RoaringBitmap做交集操作。 4 rb_or 两个RoaringBitmap做并集操作。 5 rb_xor 两个RoaringBitmap做异或操作。 6 rb_andnot 两个RoaringBitmap做and后取反。 7 rb_cardinality 计算一个RoaringBitmap的基数。 8 rb_and_cardinality 计算两个RoaringBitmap求and以后的基数。 9 rb_or_cardinality 计算两个RoaringBitmap求or以后的基数。 10 rb_xor_cardinality 计算两个RoaringBitmap求xor以后的基数。 11 rb_andnot_cardinality 计算两个RoaringBitmap求andnot以后的基数。 12 rb_is_empty 判断一个RoaringBitmap是否为空。 13 rb_equals 判断两个RoaringBitmap是否相等。 14 rb_intersect 判断两个RoaringBitmap是否相交。 15 rb_contain 判断第一个RoaringBitmap是否包含指定的值。 16 rb_add RoaringBitmap中增加一个值。 17 rb_remove RoaringBitmap中删除一个值。 18 rb_flip 翻转指定范围的RoaringBitmap。 19 rb_min 求一个RoaringBitmap的最小值。 20 rb_max 求一个RoaringBitmap的最大值. 21 rb_rank 返回Bitmap中小于等于指定Offset的基数。 22 rb_contain_rb 判断第一个RoaringBitmap是否包含第二个roaringbitmap。 23 rb_containedby_rb 判断第二个RoaringBitmap是否包含第一个roaringbitmap。 24 rb_containedby 判断指定的值是否被指定的roaringbitmap包含。 25 rb_iterate 返回RoaringBitmap对应的int 。 26 rb_and_agg 将RoaringBitmap列按照and逻辑做聚合。 27 rb_or_agg 将RoaringBitmap列按照or逻辑做聚合。 28 rb_xor_agg 将RoaringBitmap列按照xor逻辑做聚合。 29 rb_and_cardinality_agg 将RoaringBitmap列按照and逻辑做聚合后的基数。 30 rb_or_cardinality_agg 将RoaringBitmap列按照or逻辑做聚合后的基数。 31 rb_xor_cardinality_agg 将RoaringBitmap列按照xor逻辑做聚合后的基数。 32 rb_build_agg 将int列聚合成RoaringBitmap类型数据。 33 pgxc_wlm_readjust_relfilenode_size_table() 空间统计校准函数,不重建PG_RELFILENODE_SIZE系统表,重新校准用户和schema空间。 34 gs_table_distribution() 快速查询系统中表大小的函数。 35 pg_obs_cold_refresh_time 修改obs多温表自动切换任务时间。 36 gs_clean_tag_relation 清理tag表中无用的tagid行数据。该函数入参为时序表OID,每个分区遍历cudesc表tagid列的最小值,从而得到整个时序表tagid的最小值。 37 proc_drop_partition 用于将分区boundary时间超过TTL的分区进行drop。 38 proc_add_partition 用于为分区表创建分区。 39 pg_collation_actual_version 返回ICU排序规则的实际版本号。 40 first 分组内第一个元素。 41 last 分组内最后一个元素。 42 mode 分组内出现频率最高的值。 43 delta 相邻两行的差值。 44 percentile_of_value 近似百分位的值。 45 value_of_percentile 近似百分位。 46 spread 分组内最大值和最小值的差值。 47 pg_flush_buffers 刷出所有行存脏页。 修改 48 pg_stat_activity系列视图 pg_stat_get_activity_with_conninfo、pg_stat_activity、pgxc_stat_activity、pg_stat_get_activity视图新增stmt_type和lwtid列。 49 pg_authid系统表新增两行 新增pg_role_signal_backend,pg_role_read_all_stats预置角色。 50 vac_fileclear_relation 可以返回指定表真实清理文件的数量,不清理返回0。 51 vac_fileclear_all_relation 可以返回所有列存表真实清理文件的数量,不清理则返回0。
  • 系统表 表4 系统表 变更类型 序号 名称 变更描述 新增 1 rb_added RoaringBitmap中增加一个值。 2 pg_partition pg_partition新增字段boundexprs。 3 pg_relfilenode_size 新增系统表。 4 pg_attribute pg_attribute新增attkvtype列,记录列的kvtype类型。 5 pg_collation 新增一条记录case_insensitive,用于支持大小写不敏感行为。
  • 新增功能 表1 8.1.3新增功能 特性 描述 参考文档 支持自增分区和分区表管理功能 分区管理新增PERIOD(interval类型)和TTL(interval类型) CREATE TABLE ALTER TABLE CREATE TABLE PARTITION 外表支持json格式 HDFS外表READ ONLY外表支持JSON文件格式。 OBS外表READ ONLY外表支持JSON文件格式。 CREATE FOREIGN TABLE (SQL on Hadoop or OBS) 跨集群互联互通特性 解除约束: 解除GDS的hang约束; 解除常用聚合函数约束:sum/count/min/max/avg等; 解除标量函数、分析函数约束; 增加互联互通外表与源表的列名、列类型强校验; 解除列名不可包含" WHERE "约束; 解除limit约束; 完善临时GDS外表策略; 本地集群是目标集群时,发起数据同步业务。 基于GDS的跨集群互联互通 冷热表功能增强 冷热自动搬迁。 CREATE TABLE IoT数仓功能增强 时序数据库 满足IoT数据实时存储。 IoT场景下GUC参数 CREATE INDEX 函数和表达式 行存ring buffer可通过开关控制 ring buffer提供开关控制和阈值调整,大表批量更新不使用ring buffer buffer_ring_ratio 创建表时默认存储方式 通过default_orientation参数控制,创建表时,当不指定存储方式时,根据该GUC参数的值创建对应类型的表。 default_orientation GDS支持欧元符 GBK字符集支持欧元符。 CREATE DATABASE OBS外表支持XSKY S3 OBS外表适配XSKY,新增eol参数。 CREATE FOREIGN TABLE (SQL on Hadoop or OBS) SQL支持了位图功能(RoaringBitmap) 互联网、新零售、教育、游戏等行业,根据目标群体的特征, 快速提取目标群体,生成客户画像,当前的功能不能完全满足需求,需要SQL支持了位图功能(RoaringBitmap),更好支撑互联网业务常见的客户画像业务。 位图函数和操作符 RoaringBitmap类型 TD兼容支持不区分大小写 TD数据源迁移至DWS的大量存储过程涉及到去重操作,源数据中存在大量内容相同但是大小写不同的数据,DWS中使用distinct去重后会有大量重复数据,使用upper函数会改变源数据,存储过程数量多,逻辑复杂,手动修改难度大,需要增加DWS不区分大小写的特性。 排序规则支持 排序规则版本函数 List分区 分区表支持List分区。 相关语法: CREATE TABLE PARTITION ALTER TABLE PARTITION 系统表:PG_PARTITION 相关视图: DBA_PART_INDEXES DBA_PART_TABLES DBA_TAB_PARTITIONS USER_IND_PARTITIONS USER_PART_INDEXES USER_TAB_PARTITIONS MySQL兼容性增强 ALTER TABLE支持同时修改多个列。 ALTER TABLE支持COMMENT。 ALTER TABLE支持CHANGE、DROP KEY、DROP PARTITION和FIRST/AFTER。 ALTER INDEX、CREATE INDEX ALTER TABLE、CREATE TABLE ALTER TABLE PARTITION projection pushdown 对于多列视图场景,引用时自动去除无用的列,避免多余计算。 rewrite_rule新增projection pushdown描述。 share scan share scan stream计划CTE支持share scan: 新增enable_stream_ctescan logging_module增加取值STREAM_CTESCAN SELECT语法的WITH子句中增加可选的[[NOT] MATERIALIZED]支持是否物化语法。 列存Bloom Filter 外表侧同线程包含有HDFS内外表或列存表的HASH JOIN会触发Bloom Filter。 enable_bloom_filter 列存复制表支持UPDATE 客户有大量复制表的MERGE INTO操作,复制表支持UPDATE、DELETE和MERGE INTO等操作,跟行存表的功能对齐。 MERGE INTO UPDATE UPSERT 细粒度权限管理 新增表级权限Alter/Drop/Vacuum。 新增Schema级权限Alter/Drop。 新增预置角色role_signal_backend、role_read_all_stats。 预置角色 新增表级权限: VACUUM ALTER TABLE DROP TABLE 新增Schema级权限: ALTER SCHEMA DROP SCHEMA ALTER DEFAULT PRIVILEGES GRANT REVOKE 解决INSERT OVERWRITE多CN死锁问题 多CN同时出发INSERT OVERWRITE不会造成死锁。 - 执行计划优化 SQL关联条件含or,执行计划走nestloop导致性能差,改写为union all优化。 SQL存在关联,过滤条件中含or条件,列存表的关联前对or的条件剪枝。 集群DN数量较多时,大表与小表关联时,小表不走重分布操作而是走广播操作。 SQL调优关键参数调整 rewrite_rule新增projection_pushdown和or_conversion。 基于Relfile的空间统计与空间管控 pg_table_size、pg_relation_size、table_skewness等系列视图的查询能够秒级返回结果 schema空间管控能够统计全量空间,解除当前约束。 user/schema空间管控校准函数能够快速执行,schema空间校准函数自动执行。 schema空间配额的SQL接口能够按照schema总空间分配而非DN级别。 空间管理 新增负载管理GUC参数: space_once_adjust_num space_readjust_schedule 新增系统表: PG_RELFILENODE_SIZE 新增函数: gs_table_distribution(schemaname text, tablename text) gs_table_distribution() pgxc_wlm_readjust_relfilenode_size_table() pgxc_wlm_readjust_relfilenode_size_table(integer) 性能定位定界增强专项 通信异常监测日志增强。 pgxc_stat_activity视图增强。 支持Top SQL与Unique SQL关联。 新增pg_session_wlmstat分布式视图 新增系统视图:PG_COMM_QUERY_SPEED PG_STAT_ACTIVITY补充“lwtid”和“stmt_type”字段描述。 GS_WLM_SESSION_HISTORY补充unique_sql_id字段信息。 新增系统视图:PGXC_SESSION_WLMSTAT。 资源负载管理优化重构 用户资源监控增强:用户资源监控逻辑整改。 资源监控增强:优化作业、用户资源监控,并增加队列级别资源监控。 用户资源监控 资源监控增强: 新增:资源池资源监控 新增系统视图: PGXC_RESPOOL_RESOURCE_INFO PGXC_RESPOOL_RUNTIME_INFO PGXC_RESPOOL_RESOURCE_HISTORY GS_RESPOOL_RESOURCE_INFO GS_RESPOOL_RUNTIME_INFO 新增系统表: GS_RESPOOL_RESOURCE_HISTORY 分区表特性修改 边界值个数约束修改:分区表的所有分区数不超过32767个,所有分区的边界值个数不大于32767个。 修改创建默认分区策略:建分区表时,将创建两个默认分区,这两个默认分区的分区时间范围均为PERIOD。 CREATE TABLE PARTITION Agg 重分布列Hint Oracle数仓迁移过程中,通过增强Hint特性手动指定分布列。 Plan Hint调优概述 Stream方式的Hint 新增除零返回NULL(8.1.3.110新增) MySQL兼容模式下,除数为0时,控制除法取余操作是否报错。参数behavior_compat_options新增兼容配置项enable_division_by_zero_mysql。 behavior_compat_options DDL锁超时配置(8.1.3.200新增) 新增GUC参数ddl_lock_timeout,可对DDL锁超时时间进行配置。 ddl_lock_timeout PG_LOCKS视图增强(8.1.3.200新增) 新增视图PGXC_WAIT_DETAIL和PGXC_LOCKWAIT_DETAIL 增加wait_on_pid、query_id等字段。 PGXC_WAIT_DETAIL PGXC_LOCKWAIT_DETAIL 数据脱敏可算不可见兼容配置(8.1.3.310新增) 新增GUC参数redact_compat_options,用于设置数据脱敏可算不可见兼容性行为配置项。 redact_compat_options truncate、exchange与select并发(8.1.3.320新增) 新增GUC参数ddl_select_concurrent_mode,该特性主要解决数据量较大或复杂查询的场景中,查询语句持续时间过长,阻塞DDL的场景,与Oracle效果一致。 支持场景: 支持truncate和select并发; 支持exchange和select并发; 场景约束: 与高级别的锁冲突(大于1级),不支持并发(比如autoanalyze_mode=normal时,同时select触发了autoanalyze); 与事务块中的锁冲突,不支持并发; DWS常用连接方式约束: jdbc、odbc、python驱动时,如果程序设置了autocommit = false,不支持该特性; Data Studio下发的所有查询语句,自动起事务,不支持该特性; ddl_select_concurrent_mode 支持控制LIMIT语句是否启用early stop优化(8.1.3.320新增) 新增GUC参数enable_limit_stop,控制LIMIT语句是否启用early stop优化。 enable_limit_stop
  • GUC参数 表7 GUC参数 变更类型 序号 名称 变更描述 新增 1 sql_use_spacelimit 设置单SQL语句在单个DN上最大存储空间限额。 2 remote_read_mode 设置远程读模式。 3 enable_incremental_catchup 设置是否打开增量catchup。 4 wait_dummy_time 增量catchup中等待从备启动或者从备发回扫描列表的最长时间。 5 enable_xlog_group_insert 用于指定在ARM平台下,xlog是否启动group的插入方式。 6 topsql_retention_time 该参数表示gs_wlm_session_info和gs_wlm_operator_info表中的数据能够保存的天数。 7 user_metric_retention_time 该参数表示用户历史资源监控数据能够保存的天数。 8 instance_metric_retention_time 该参数表示实例历史资源监控数据能够保存的天数。 9 enable_user_metric_persistent 该参数表示是否开启用户历史资源监控转存功能。 10 enable_instance_metric_persistent 该参数表示是否开启实例历史资源监控转存功能。 11 COMM_IPC 通信性能问题定位开关,该参数设置是否打印通信各个节点的报文收发情况。 12 COMM_PA RAM 通信性能问题定位开关,该参数设置是否打印节点通信过程中session参数设置情况。 13 plan_cache_mode 控制cached plan的行为,可以强制走custom plan/generic plan/auto(和当前默认保持一致),默认值为auto。 修改 14 audit_system_object 扩展第18位表示是否审计SYNONYM对象,最大值修改为524287。 15 comm_max_stream 在一体机环境上,该参数集群安装之后,默认值修改为10000。 16 enable_dynamic_workload 默认值由off修改为on。 17 behavior_compat_options 增加成员convert_interval_to_text来控制,是否支持interval到text的隐式类型转换,默认不设置,不支持。
  • 系统表 表3 系统表 变更类型 序号 名称 变更描述 新增 1 PG_SYNONYM 新增系统表pg_synonym, 用于存储同义词对象与关联对象名间的映射关系。 2 PG_REDACTION_POLICY PG_REDACTION_COLUMN pg_redaction_policy用于存储对象脱敏策略,状态表达式等。 pg_redaction_column用于存储对象列信息,哪些列需要被脱敏,及脱敏方式。 3 PG_OBJECT 存储table/foreign table/view/index/sequence/funcion的创建时间、创建用户、最后修改时间。 修改 4 PG_AUTHID 增加一列authinfo标识用户的认证类型,默认是空,如果是AD用户,则是ldap。
  • 系统函数 表4 系统函数 变更类型 序号 名称 变更描述 新增 1 dbms_redact.add_policy dbms_redact.alter_policy dbms_redact.enable_policy dbms_redact.disable_policy dbms_redact.drop_policy 新增脱敏策略。 更改脱敏策略信息,包括对一个表对象增加脱敏列、修改脱敏列脱敏方式等。 开启、关闭脱敏策略。 删除脱敏策略。 2 pgxc_get_workload_sql_count 提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的计数统计结果以及DDL、DML、DCL类型语句的计数统计结果。 3 pgxc_get_workload_sql_elapse_time 提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的响应时间统计结果。 4 get_instr_unique_sql 提供当前节点中收集的Unique SQL的信息。 5 reset_instr_unique_sql(cstring, cstring, INT8) 清理已收集的Unique SQL信息。 6 pgxc_get_instr_unique_sql 提供集群中所有CN上收集的Unique SQL的完整信息。 7 pg_check_authid 根据用户oid检查用户是否存在。 修改 8 pg_stat_get_sql_count 新增提供当前节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的响应时间的统计结果以及DDL、DML、DCL语句的计数结果。 9 pgxc_get_sql_count 新增提供所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的响应时间的统计结果以及DDL、DML、DCL语句的计数结果。
共100000条