云服务器内容精选

  • 步骤四:通过外表导入 DLI 表数据 使用系统管理员dbadmin用户登录 GaussDB (DWS)数据库,默认登录gaussdb数据库即可。 执行以下SQL创建外部Server。其中OBS终端节点从1获取,AK和SK从准备工作获取,DLI终端节点从2获取。 如果DWS和DLI是同一个账户创建下,则AK和SK分别对应重复填写一次。 1 2 3 4 5 6 7 8 9 CREATE SERVER dli_server FOREIGN DATA WRAPPER DFS_FDW OPTIONS ( ADDRESS 'OBS终端节点', AC CES S_KEY 'AK值', SECRET_ACCESS_KEY 'SK值', TYPE 'DLI', DLI_ADDRESS 'DLI终端节点', DLI_ACCESS_KEY 'AK值', DLI_SECRET_ACCESS_KEY 'SK值' ); 执行以下SQL创建目标schema。 1 CREATE SCHEMA dws_data; 执行以下SQL创建外表。其中项目ID替换为3获取的实际值。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE FOREIGN TABLE dws_data.dli_pq_order ( order_id VARCHAR(14) PRIMARY KEY NOT ENFORCED, order_channel VARCHAR(32), order_time TIMESTAMP, cust_code VARCHAR(6), pay_amount DOUBLE PRECISION, real_pay DOUBLE PRECISION ) SERVER dli_server OPTIONS ( FORMAT 'parquet', ENCODING 'utf8', DLI_PROJECT_ID '项目ID', DLI_DATABASE_NAME 'dli_data', DLI_TABLE_NAME 'dli_order') DISTRIBUTE BY roundrobin; 执行以下SQL,通过外表查询DLI的表数据。 结果显示,成功访问DLI表数据。 1 SELECT * FROM dws_data.dli_pq_order; 执行以下SQL,创建一张新的本地表,用于导入DLI表数据。 1 2 3 4 5 6 CREATE TABLE dws_data.dws_monthly_order ( order_month CHAR(8), cust_code VARCHAR(6), order_count INT, total_pay_amount DOUBLE PRECISION, total_real_pay DOUBLE PRECISION ); 执行以下SQL,查询出2023年的月度订单明细,并将结果导入DWS表。 1 2 3 4 5 6 7 8 INSERT INTO dws_data.dws_monthly_order ( order_month, cust_code, order_count , total_pay_amount, total_real_pay ) SELECT TO_CHAR(order_time, 'MON-YYYY'), cust_code, COUNT(*) , SUM(pay_amount), SUM(real_pay) FROM dws_data.dli_pq_order WHERE DATE_PART('Year', order_time) = 2023 GROUP BY TO_CHAR(order_time, 'MON-YYYY'), cust_code; 执行以下SQL查询表数据。 结果显示,DLI表数据成功导入DWS数据库。 1 SELECT * FROM dws_data.dws_monthly_order;
  • 步骤三:获取GaussDB(DWS)外部服务器所需鉴权信息 获取OBS桶的终端节点。 登录OBS管理控制台。 单击桶名称,左侧选择“概览”,并记录终端节点。 访问终端节点获取DLI的终端节点。 本例(华北-北京四)为dli.cn-north-4.myhuaweicloud.com。 获取创建DLI所使用的账号的特定区域的项目ID。 鼠标悬浮在右上方的账户名,单击“我的凭证”。 左侧选择“API凭证”。 从列表中,找到DLI所属区域,本例为华北-北京四,记录区 域名 所在的项目ID。 获取账号的AK和SK,参见准备工作。
  • 支持区域 当前已上传OBS数据的区域如表1所示。 表1 区域和OBS桶名 区域 OBS桶名 华北-北京一 dws-demo-cn-north-1 华北-北京二 dws-demo-cn-north-2 华北-北京四 dws-demo-cn-north-4 华北-乌兰察布一 dws-demo-cn-north-9 华东-上海一 dws-demo-cn-east-3 华东-上海二 dws-demo-cn-east-2 华南-广州 dws-demo-cn-south-1 华南-广州友好 dws-demo-cn-south-4 中国-香港 dws-demo-ap-southeast-1 亚太-新加坡 dws-demo-ap-southeast-3 亚太-曼谷 dws-demo-ap-southeast-2 拉美-圣地亚哥 dws-demo-la-south-2 非洲-约翰内斯堡 dws-demo-af-south-1 拉美-墨西哥城一 dws-demo-na-mexico-1 拉美-墨西哥城二 dws-demo-la-north-2 莫斯科二 dws-demo-ru-northwest-2 拉美-圣保罗一 dws-demo-sa-brazil-1
  • 关于磁盘缓存 DWS会把经常访问的数据缓存到EVS本地磁盘,以减少OBS直读次数,加速查询性能。磁盘缓存只在DN计算节点上存在,协调节点CN上不存在。 缓存大小 集群默认的缓存大小(disk_cache_max_size)配置为:EVS容量的1/3。 EVS容量默认划分是:1/3 * 2(副本)存储本地持久化的数据(如:列存索引,行存表,本地列存表),另外1/3给缓存用。DWS的索引不同于Redshift,Redshift索引只是一个优化器提示,没有实体的索引数据,DWS的索引类似Oracle,会实际存储索引数据。 如果列存表没有创建索引,则可适当调大缓存的大小,即通过DWS管理控制台调大disk_cache_max_size。 缓存状态 用户查询数据时,会优先到Disk Cache中查看数据是否已存在于本地磁盘,如果不存在则再去OBS读取数据,同时将数据缓存到本地磁盘,下次再读取这段数据时,即可在本地磁盘中读取到。使用Disk Cache可显著提升OBS数据的查询速度。 Disk Cache会默认使用主备两块硬盘作为缓存介质,通过查询以下参数查看相关信息: 通过disk_cache_base_paths参数查看和增减缓存硬盘路径。 通过disk_cache_max_size参数来查看及调节Disk Cache的大小。 通过查询视图pgxc_disk_cache_all_stats可以查看当前缓存的命中率以及各个DN磁盘的使用大小情况: 图2 pgxc_disk_cache_all_stats查询结果 缓存双写 开启缓存双写可以提升首次查询数据的性能,即用户在写数据到远端OBS的同时,将数据也写到本地Disk Cache上。当第一次读取数据时,可显著提升读取效率。用户可通过disk_cache_dual_write_option来设置是否开启缓存双写,参数包含三个设置选项: none:表示不开启缓存双写。 hstore_only(默认值):表示只对hstore opt表,在delta merge时才开启缓存双写。 all:表示对普通v3表和hstore opt表都开启缓存双写。 缓存清理 通过函数pgxc_clear_disk_cache()可以将所有的Disk Cache清空。
  • 集群购买 EVS磁盘空间 9.1.0.x版本只是实现了将列存用户数据存储到OBS上,其它数据仍然保存在本地盘。因此,即使在存算分离架构下,也并不意味着不需要额外配置EVS磁盘或者只需要配置一个很小的磁盘,后续版本存算分离能力将会持续演进。 表1 表类型的存储说明 表类型 存储位置 适用场景 行存表/临时表/列存索引 本地,无压缩 点查、实时小批量入库、频繁更新。 列存表2.0 本地,有压缩 批量入库、查询、实时小批量入库、点查、更新。 列存表3.0 OBS,有压缩 批量入库、查询、低频批量更新。 EVS存储内容:行存、列存元数据(min/max)、 索引、Delta、WAL、OBS数据缓存、计算中的临时下盘文件(sort/hash),购买DWS集群时可指定大小。 EVS存储总大小购买计算公式: ( 2副本 *(行存表大小 + 索引大小 + Delta表大小) + OBS热数据缓存大小) / 0.8(预留) 当EVS存储总大小超过90%时会触发集群只读,预留的10%空间保存WAL和临时文件下盘。 OBS热数据:1. 明确知道热数据的大小;2. 如果不知道,可以选择OBS总数据量 *30%。 列存索引大小 = 原始未压缩数据size * 索引列宽 * 3(膨胀) / 总列宽 列存数据按照3倍压缩比评估,假设20列的表,2列做主键,索引就是压缩前数据的30%,和压缩后数据相当。 Delta大小:一个表(或者一个分区) Max(10GB, 压缩后表大小 / 10) 行存索引按照30%评估。 EVS磁盘空间推荐:如果按以上算法估算,实际操作比较麻烦,建议:EVS磁盘空间总大小设置为压缩后的总数据量大小(压缩比一般按5倍计算),如果表上没有索引(EVS主要做缓存使用),EVS磁盘空间总大小可以设置为总数据量(可以排除掉归档数据的大小)大小的50%或者30%,并调大磁盘缓存的大小(见下文)。 最小容量: 性能客户:保证每个DN主备各挂载的磁盘容量最少要500G(以达到每块盘350MB/s的带宽),比如一个E CS 上部署了2主2备,该机器要至少挂载 4 * 500G 磁盘容量。 成本敏感客户:每个DN主备各挂载最小200G(每块盘带宽160MB/s)。 OBS配置 OBS要求3AZ部署并支持并行文件系统。 OBS性能: 如需调整OBS性能指标,请联系技术支持。公有云场景,6个DN及以下节点集群,OBS指标一般不需要调整。 CPU配置 建议生产环境每个节点16U起步,4U/8U仅用于体验。 搬迁场景:与搬迁对象保持一致。 新建场景:根据总数据量/100GB,计算CPU核数(与实际场景有关,计算密集型的应该增大CPU核数)。
  • 教程二:企业项目下的只读操作 创建用户组并授权。 使用华为云账号登录 IAM 控制台,创建用户组,并授予 数据仓库 服务的只读权限“DWS ReadOnlyAccess”。 企业项目视图下,跟资源无关的只读操作细粒度权限依旧会提示无权限访问。如事件、告警等相关接口的细粒度。 配置IAM项目视图下相关的事件与告警等只读权限。 创建如下自定义策略readonly_event_alarm: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dws:alarm*:list*", "dws:cluster*:list*", "dws:dms*:get*", "dws:event*:list*" ] } ] } 登录IAM控制台,创建用户组并授权刚创建的自定义策略: 创建用户并加入用户组。 在IAM控制台创建用户,并将其加入步骤1中创建的用户组。 用户登录并验证权限。 使用新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择数据仓库服务,进入DWS主界面,单击右上角“创建数据仓库集群”,尝试创建数据仓库集群,如果无法创建(假设当前权限仅包含DWS ReadOnlyAccess),表示“DWS ReadOnlyAccess”已生效。 在“服务列表”中选择除数据仓库服务之外(假设当前策略仅包含DWS ReadOnlyAccess)的任一服务,若提示权限不足,表示“DWS ReadOnlyAccess”已生效。
  • 教程一:IAM项目视图下的只读操作 创建用户组并授权。 使用华为云账号登录IAM控制台,创建用户组,并授予数据仓库服务的只读权限“DWS ReadOnlyAccess”。 创建用户并加入用户组。 在IAM控制台创建用户,并将其加入步骤1中创建的用户组。 用户登录并验证权限。 使用新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择数据仓库服务,进入DWS主界面,单击右上角“创建数据仓库集群”,尝试创建数据仓库集群,如果无法创建(假设当前权限仅包含DWS ReadOnlyAccess),表示“DWS ReadOnlyAccess”已生效。 在“服务列表”中选择除数据仓库服务之外(假设当前策略仅包含DWS ReadOnlyAccess)的任一服务,若提示权限不足,表示“DWS ReadOnlyAccess”已生效。
  • 背景信息 如果您需要对华为云上的GaussDB(DWS)资源,为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用 统一身份认证 服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制云资源的访问。通过IAM,您可以在云账号中给员工创建IAM用户,并授权控制他们对云资源的访问范围。 场景一:您的员工中有负责软件开发的人员,您希望他们拥有GaussDB(DWS)的使用权限,但是不希望他们拥有删除集群等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用GaussDB(DWS),但是不允许删除集群的权限,控制他们对GaussDB(DWS)资源的使用范围。 场景二:您希望您的员工只有GaussDB(DWS)的资源使用权限,不希望拥有其他云资源的权限,以防止资源滥用。例如只开通GaussDB(DWS)的操作权限,不能使用其他云服务。 通过IAM权限控制,有效达到云资源访问控制,避免云资源误操作。本文将指导如何配置只读权限的IAM用户。
  • JDBC问题定位 JDBC(Java Database Connectivity,java数据库连接)是应用程序访问数据库的统一标准接口,应用程序可使用JDBC连接数据库并执行SQL。 GaussDB(DWS)提供了对JDBC 4.0特性的支持,本章节提供了JCDB常见问题定位及对应报错和问题的处理方法。 产生JDBC问题的原因主要分为以下三个方面: 应用程序和应用程序框架问题。 JDBC业务功能问题。 数据库配置问题。 JDBC问题在具体业务中的表现主要分为以下三个方面: 执行报错,JDBC抛出异常。 执行效率低,耗时异常。 特性不支持,JDBC未实现的JDK接口。 JDBC问题具体分类可参见表1。 表1 JDBC问题分类 问题分类 问题原因 建立数据库连接失败 JDBC客户端配置问题:包括URL格式不对,或用户名密码错误。 网络不通。 Jar包冲突。 数据库配置问题,数据库未配置远程访问权限。 执行业务抛出异常 传入SQL有误,GaussDB(DWS)不支持。 业务处理异常,返回异常报文。 网络故障。 数据库连接超时,socket已关闭。 性能问题 SQL执行慢。 结果集过大,导致应用程序端响应慢。 用户传入SQL过长,JDBC解析慢。 功能支持问题 JDK未提供标准接口。 JDBC未实现接口。 父主题: JDBC/ODBC类
  • 处理方法 方法一:更改某个GaussDB(DWS)集群的数据库默认时区。 登录GaussDB(DWS)管理控制台。 在左侧导航栏中,单击“集群管理”。 在集群列表中找到所需要的集群,单击集群名称,进入集群“基本信息”页面。 单击“参数修改”页签,修改参数“timezone”,修改为您所在的时区,然后单击“保存”。 在“修改预览”窗口,确认修改无误后,单击“保存”。 用户可根据界面中参数“timezone”所在行的“是否重启”列,判断修改参数后无需进行重启操作。 修改“timezone”参数后无需重启集群操作 ,则修改后立即生效。 方法二:通过后台命令查询和更改数据库时区。 查询客户端时区和当前时间。其中客户端时区为UTC时区,now()函数返回当前时间。 1 2 3 4 5 6 7 8 9 10 11 SHOW time zone; TimeZone ---------- UTC (1 row) select now(); now ------------------------------- 2022-05-16 06:05:58.711454+00 (1 row) 创建数据表,其中timestamp、timestamptz是常用的时间类型。timestamp不保存时区,timestamptz保存时区。 1 2 3 4 5 6 7 8 9 CREATE TABLE timezone_test (id int, t1 timestamp, t2 timestamptz) DISTRIBUTE BY HASH (id); \d timezone_test Table "public.timezone_test" Column | Type | Modifiers --------+-----------------------------+----------- id | integer | t1 | timestamp without time zone | t2 | timestamp with time zone | 向timezone_test表插入当前时间并查询当前表。 1 2 3 4 5 6 7 8 9 10 11 12 INSERT INTO timezone_test values (1, now(), now() ); show time zone; TimeZone ---------- UTC (1 row) SELECT * FROM timezone_test; id | t1 | t2 ----+----------------------------+------------------------------- 1 | 2022-05-16 06:10:04.564599 | 2022-05-16 06:10:04.564599+00 (1 row) t1(timestamp类型)在保存数据时丢弃了时区信息,t2(timestamptz类型)保存了时区信息。 把客户端时区设置为东8区(UTC-8),再次查询timezone_test表。 1 2 3 4 5 6 7 8 9 10 11 12 SET time zone 'UTC-8'; SHOW time zone; TimeZone ---------- UTC-8 (1 row) SELECT now(); now ------------------------------- 2022-05-16 14:13:43.175416+08 (1 row) 继续插入当前时间到timezone_test表,并查询。此时t1新插入的值使用的是东8区时间,t2根据客户端时区对查询结果进行转换。 1 2 3 4 5 6 7 INSERT INTO timezone_test values (2, now(), now() ); SELECT * FROM timezone_test; id | t1 | t2 ----+----------------------------+------------------------------- 1 | 2022-05-16 06:10:04.564599 | 2022-05-16 14:10:04.564599+08 2 | 2022-05-16 14:15:03.715265 | 2022-05-16 14:15:03.715265+08 (2 rows) timestamp类型只受数据在插入时的时区影响,查询结果不受客户端时区影响。 timestamptz类型在数据插入时记录了时区信息,查询时会根据客户端时区做转换,以客户端时区显示数据。
  • GUC参数 表7 GUC参数 变更类型 序号 名称 变更描述 新增 1 max_queue_statements 默认为-1,标识最大排队长度,当作业排队超过该值时报错退出。对于新装和升级集群该参数不生效。 2 job_retention_time 标识pg_job执行结果最长保存天数,默认为30。 3 vector_engine_strategy 控制向量化算子的策略,默认为improve,表示尽可能将计划向量化;可设置为force,表示强制回退为行存计划。 4 enable_release_scan_lock 控制SELECT语句是否在语句执行结束后将一级锁释放。默认关闭。 5 job_queue_naptime 设置触发调度任务检查的时间间隔及任务线程启动的超时时间,默认1s。 6 approx_count_distinct_precision 该参数表示HyperLogLog++ (HLL++)算法中分桶个数,可以用来调整approx_count_distinct聚集函数的误差率。桶的个数会影响distinct值估算的精度,桶的个数越多,误差越小。默认值17。 7 llvm_compile_expr_limit 限制LLVM表达式最大编译个数。 8 llvm_compile_time_limit LLVM编译时间在执行器运行时间中的占比超过llvm_compile_time_limit所设置的阈值,说明LLVM编译时间占比过高,生成告警提示。 9 max_opt_sort_rows 控制order by子句中最大优化的limit+offset行数。如果超过这一行数,走原逻辑,小于这个行数走优化后逻辑。默认设为0,即默认走原逻辑。 10 dfs_max_memory 设置orc导出时能占用的最大内存。默认值262144KB。 11 default_partition_cache_strategy 控制分区缓存的默认策略。 12 enable_connect_standby 设置CN是否连接DN备机。仅适用于运维操作。 13 enable_stream_sync_quit 设置stream计划结束时,stream线程是否同步退出。默认关闭,实现sync quit不阻塞。 14 full_group_by_mode 用于控制disable_full_group_by_mysql语法开关打开后的两种不同行为: nullpadding表示对于非聚集列而言,对该列NULL值进行填充,取该列非NULL值,结果集可能为不同行。 notpadding表示对于非聚集列而言,不处理NULL值,取该行整行数据,非聚集列结果集为随机的一行。 修改 15 behavior_compat_options 新增选项alter_distribute_key_by_partition,控制ALTER TABLE修改分区表分布列时INSERT INTO是否按分区执行。 16 behavior_compat_options 新增选项enable_full_string_agg,控制string_agg(a, delimeter) over (partition by b order by c)场景行为,采用窗口内的全量聚合逻辑还是增量聚合逻辑。 17 behavior_compat_options 新增选项unsupported_set_function_case,控制是否支持case when条件中含有返回为多结果集函数。 18 behavior_compat_options 新增选项enable_unknown_datatype。在未设置时,不允许用户创建存在unknown类型列的表。 19 behavior_compat_options 新增选项enable_whole_row_var。针对使用表名做表达式场景(SELECT T FROM T,或SELECT .... FROM T GROUP BY T),未设置enable_whole_row_var选项时,在parse阶段,对该类场景进行拦截,报错处理。 20 time_track_strategy 参数由USERSET级别修改为SIGHUP级别,内核层面默认修改为timer,可以通过管理控制台设置为tsc。 21 rewrite_rule 控制在重写时是否走case when改写。
  • 系统函数 表5 系统函数 变更类型 序号 名称 变更描述 新增 1 dbms_job.submit_node 新增dbms_job.submit_node,功能在submit基础上增加job_node,用于指定执行节点,默认null,代表当前CN节点。 2 dbms_job.change_node 新增dbms_job.change_node用于指定执行节点,默认null,代表当前CN节点。 3 漏斗函数 新增漏斗函数windowfunnel。 4 留存函数 新增留存函数retention。 5 留存扩展函数 新增留存扩展函数range_retention_count。 6 留存扩展函数 新增留存扩展函数range_retention_sum。 7 approx_count_distinct 新增近似计算聚集函数。 8 pg_scan_residualfiles 扫描当前节点当前库中所有符合特征的残留文件。 9 pgxc_scan_residualfiles 扫描多个节点当前库中所有符合特征的残留文件。 10 pg_get_scan_residualfiles 获取当前节点扫描到的残留文件列表。 11 pgxc_get_scan_residualfiles 获取多个节点上扫描到的残留文件列表。 12 pg_archive_scan_residualfiles 归档当前节点扫描的残留文件列表。 13 pgxc_archive_scan_residualfiles 归档多个节点上扫描的残留文件列表。 14 pg_rm_scan_residualfiles_archive 删除当前节点所有残留文件归档。 15 pgxc_rm_scan_residualfiles_archive 删除多个节点上所有残留文件归档。 16 pg_partition_management_time 修改自增分区任务调用时间。 17 uniq 辅助完成精准去重等对数据的uv计算。 18 reload_cold_partition 冷热表冷分区转热。 修改 19 pgxc_get_small_cu_info 增加可以查询二级分区每个分区cu数量的功能。 20 pgxc_get_wlm_session_info_bytime 增加parse_time字段。 删除 21 pg_sync_cstore_delta(text) 废弃系统函数日落。 22 pg_sync_cstore_delta 废弃系统函数日落。 23 pgxc_pool_check 废弃系统函数日落。 24 pg_delete_audit 废弃系统函数日落。 25 pg_log_comm_status 废弃系统函数日落。 26 pgxc_log_comm_status 废弃系统函数日落。 27 signal_backend 废弃系统函数日落。 28 pg_stat_get_realtime_info_internal 废弃系统函数日落。 29 pg_stat_get_wlm_session_info_internal 废弃系统函数日落。 30 pg_stat_get_wlm_session_info 废弃系统函数日落。 31 pg_stat_get_wlm_statistics 废弃系统函数日落。 32 pg_user_iostat 废弃系统函数日落。 33 pg_stat_get_wlm_session_iostat_info 废弃系统函数日落。
  • 行为变更 表2 行为变更 变更类型 序号 名称 变更描述 删除 1 policy_oid 原policy_oid字段在升级到8.3.0版本时字段为NULL,现改为在升级阶段通过脚本对policy_oid字段填充对应的policy_oid。 修改 2 gs_dump gs_dump会带上索引的unusable状态。 3 pg_get_tabledef pg_get_tabledef会带上索引的unusable状态。 4 pg_get_indexdef pg_get_indexdef会带上索引的unusable状态。 5 create table like including复制的索引会带上源索引的unusable状态。
  • 系统视图 表6 系统视图 变更类型 序号 名称 变更描述 新增 1 pgxc_memory_debug_info 显示当前集群每个节点在执行作业时的内存报错信息,便于定位内存报错问题。 修改 2 pgxc_stat_object 跟随pg_stat_object一起更改,预留字段extra1改名为last_autovacuum_csn。 3 gs_wlm_session_statistics 增加parse_time字段。 4 pgxc_wlm_session_statistics 增加parse_time字段。 5 gs_wlm_session_history 增加parse_time字段。 6 pgxc_wlm_session_history 增加parse_time字段。 7 gs_wlm_session_info 增加parse_time字段。 8 information_schema.tables 修改视图定义,改变筛选条件,使reloptions为空的视图可以查到。 9 gs_table_stat 优化gs_table_stat视图查询性能。 10 gs_row_table_io_stat 等价逻辑改写查询性能优化。 11 gs_column_table_io_stat 等价逻辑改写查询性能优化。 删除 12 gs_wlm_session_info_all 废弃系统视图日落。 13 pg_wlm_statistics 废弃系统视图日落。 14 pg_session_iostat 废弃系统视图日落。
  • 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语法。