云服务器内容精选

  • 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改写。
  • 系统视图 表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 废弃系统视图日落。
  • 系统函数 表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 reload_cold_partition 冷热表冷分区转热。 修改 20 pgxc_get_small_cu_info 增加可以查询二级分区每个分区cu数量的功能。 21 pgxc_get_wlm_session_info_bytime 增加parse_time字段。 删除 22 pg_sync_cstore_delta(text) 废弃系统函数日落。 23 pg_sync_cstore_delta 废弃系统函数日落。 24 pgxc_pool_check 废弃系统函数日落。 25 pg_delete_audit 废弃系统函数日落。 26 pg_log_comm_status 废弃系统函数日落。 27 pgxc_log_comm_status 废弃系统函数日落。 28 signal_backend 废弃系统函数日落。 29 pg_stat_get_realtime_info_internal 废弃系统函数日落。 30 pg_stat_get_wlm_session_info_internal 废弃系统函数日落。 31 pg_stat_get_wlm_session_info 废弃系统函数日落。 32 pg_stat_get_wlm_statistics 废弃系统函数日落。 33 pg_user_iostat 废弃系统函数日落。 34 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状态。
  • 8.3.0.101 表2 8.3.0.101新增功能/解决问题列表 类别 功能或问题描述 问题原因 问题出现版本 修复建议 新增功能 vacuum full适配binlog表。 - - - 解决问题 使用\parallel on 高并发下创建job报错duplicate key value violates unique constraint "pg_jobs_id_index" ,Key(job_id)=() already exists。 获取job_id处的锁未成功加上,导致并发时取到相同job_id报错。 8.3.0.100 升级到8.3.0.101及以上版本 多个nodegroup场景下,重分布不支持跳过指定表,导致缩容失败。 重分布不支持跳过指定表。 8.3.0.100 执行Hstore用例,网卡故障时,因为内存为超大负数,导致用例执行失败。 临时变量声明后,未赋值导致参数值非预期,后续再去扣减内存,内存出现超大负数。 8.3.0.100
  • 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,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。
  • 系统视图 表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下存在同名对象的场景下会导致结果集膨胀。
  • 行为变更 表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时也进行审计。
  • 系统函数 表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,用于支持大小写不敏感行为。
  • 关键字 表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。
  • 8.2.1.119 表1 8.2.1.119新增功能/解决问题列表 类别 功能或问题描述 问题原因 问题出现版本 修复建议 新增功能 窗口函数last_value支持ignore nulls功能,兼容Redshift。 - - - 解决问题 列存表使用try_cast函数报错。 try_cast函数未适配向量化执行引擎,导致列存表执行时报错。 8.2.1.100及以下版本 升级到8.2.1.119。 重启集群后,insert过慢长时间无法结束。 重启集群后,insert时需要使用索引扫描全量数据而影响性能。 8.2.1.100及以下版本 CCN计数异常时,未触发校准机制,导致CCN排队加剧。 CCN计数异常时,由于代码处理bug,未触发校准机制。 8.2.1.100及以下版本 JDBC中使用PBE协议插入数据,因主键冲突报错导致CN内存泄漏。 此场景下使用CN轻量化流程进行处理,事务结束后轻量化对象未释放造成内存堆积。 8.2.1.100及以下版本 SQL语句中设置了enable_stream_ctescan的GUC HINT,生成计划时CTE估算内存超阈值后,生成计划有误导致执行失败。 SQL语句中设置了enable_stream_ctescan的GUC HINT后,生成计划时CTE估算内存超阈值后,回退成非share scan的计划,但由于包含Hint回退不彻底,生成的计划包含错误节点,导致后续执行失败。 8.2.1.100及以下版本 备份metadata元数据到OBS上超过64MB时,恢复时概率性解压元数据报错,导致恢复失败。 备份metadata元数据超过64MB时,从OBS下载需要分段下载,下载最后一段buffers由于代码漏洞导致被丢弃,下载的metadata损坏,导致无法解压。 8.2.1.100及以下版本 hstore delta表analyze采样占用内存高。 hstore delta表analyze采样时,delta合并I记录占用内存较多,需要即时释放toast数据及delta数据反序列化占用的空间。 8.2.1.100及以下版本 CTE查询中有volatile函数,且只被引用一次时,不能下推,导致查询性能差。 821版本增加CTE查询中有volatile函数时不能下推的约束,但针对CTE只被引用一次的场景,需要放开约束,支持其下推。 8.2.1.100及以下版本 复杂查询的临时文件下盘,xfs系统预占空间过大,下盘文件多时导致集群只读。 复杂查询的临时文件下盘,xfs系统每个下盘文件预占16MB,下盘文件多时导致集群只读,需要减少下盘文件预占磁盘量。 8.2.1.100及以下版本
  • 8.3.0.101 表2 8.3.0.101新增功能/解决问题列表 类别 功能或问题描述 问题原因 问题出现版本 修复建议 新增功能 vacuum full适配binlog表。 - - - 解决问题 使用\parallel on 高并发下创建job报错duplicate key value violates unique constraint "pg_jobs_id_index" ,Key(job_id)=() already exists。 获取job_id处的锁未成功加上,导致并发时取到相同job_id报错。 8.3.0.100 升级到8.3.0.101及以上版本 多个nodegroup场景下,重分布不支持跳过指定表,导致缩容失败。 重分布不支持跳过指定表。 8.3.0.100 执行Hstore用例,网卡故障时,因为内存为超大负数,导致用例执行失败。 临时变量声明后,未赋值导致参数值非预期,后续再去扣减内存,内存出现超大负数。 8.3.0.100
  • 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,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。
  • DDS各版本的生命周期规划 在正式EOM/EOS前会发布公告,在此期间客户可以通过数据复制服务将版本在EOS之前切换到高版本。 EOM:End of Marketing,停止该版本的销售。 EOS:End of Service & support,停止该版本的服务,建议您在执行作业时选择最新版本的引擎。在该日期之后,不再提供该软件版本的任何技术服务支持。 表1 DDS各版本生命周期规划表 版本 当前状态 计划EOM时间 计划EOS时间 社区增强版3.4 已下线 - - 3.2 已下线 - - 3.4 商用 2023年6月 2025年6月 4.0 商用 2025年4月 2027年4月 4.2 商用 2026年4月 2028年4月 4.4 商用 2027年4月 2029年4月