Version 8.2.0
[Release date of V8.2.0.107] September 25, 2023
[Release date of V8.2.0.106] July 17, 2023
[Release date of V8.2.0.103] May 25, 2023
[Release date of V8.2.0.102] April 15, 2023
[Release date of V8.2.0.101] March 13, 2023
[Release date of V8.2.0.100] January 14, 2023
[Release date of V8.2.0]: November 28, 2022
New Feature
Feature |
Description |
Reference |
---|---|---|
The pgcrypto encryption extension plug-in is added. |
You can use pgcrypto to encrypt data. |
|
The object_name column in the audit log records all read and write objects in the SQL statement. |
|
|
Certain user operations can be allowed in security mode. |
The GUC parameter security_enable_options is added to control whether the grant_to_public, grant_with_grant_option, and foreign_table_options functions can be used in security mode. |
|
Session IDs can be recorded in audit logs. |
|
|
MIXED AGG |
The GUC parameter enable_mixedagg is added to control how the optimizer uses the Mixed Agg type. |
|
The circuit breaker mechanism based on exception rules is optimized to prevent a slow SQL statement from affecting the entire cluster or resource pool. |
|
|
Full utilization of memory resources |
|
|
The exception rule interface is implemented using the kernel syntax. |
|
|
Reconstructed resource management |
|
|
A parameter is added in the optimizer phase. An error will be reported for the SQL statement run with too many stream threads. |
The GUC parameter max_streams_per_query is added to control the number of stream nodes in a query plan. |
|
If a GaussDB(DWS) cluster becomes read-only, you can perform TRUNCATE and DROP to quickly free up disk space and automatically cancel the read-only state. |
In 8.2.0 and later versions, you can free up disk space by using DROP or TRUNCATE TABLE in a read-only cluster. |
|
Hints can take effect in subqueries. |
|
|
Dynamic sampling |
|
|
The on condition in the MERGE INTO statement supports system columns. |
Added the syntax for modifying the status flag of an index. |
|
Sequence pushdown |
Added the volatile_shipping_version parameter to control the pushdown scope of the volatile functions. |
|
Volatile temporary tables are supported. |
|
|
Enhanced MySQL compatibility |
|
|
Value-based redistribution |
|
|
Magic set enhancement |
|
|
SetOp supports two-level computing. |
The setop_optmode parameter is added to control whether to perform deduplication on the query branch statements of a set operation (UNION/EXCEPT/INTERSECT) without the ALL option. |
|
The performance of OBS foreign table import is optimized. |
The file_split_threshold parameter is added, which is valid only for read only foreign tables in TEXT format. It is applicable to the import scenario where the number of files is smaller than the number of DNs. |
|
GaussDB(DWS) can connect to OBS through an agency. |
The security_token parameter is added to form a temporary security credential together with the temporary AK and SK. |
|
The AK and SK can be specified using server when OBS foreign tables are exported in text format. |
|
|
OBS read and write performance monitoring |
The GS_OBS_LATENCY view is added to record the average latency of OBS. |
|
OBS read/write bandwidth views |
The read/write bandwidth views GS_OBS_READ_TRAFFIC and GS_OBS_WRITE_TRAFFIC are added. Data is aggregated at an interval of 10 minutes. The logtime column is added to display time groups. |
|
Column storage supports ring buffer. |
The GUC parameter enable_cstore_ring_buffer is added to control the column-store ring buffer. |
|
Adaptation to GaussDB(DWS) hstore column-store vacuum |
System functions are added for column-store vacuum. get_col_file_info(table_name) get_all_col_file_info() col_rebuild_file_relation(table_name) |
|
Compressed text can be imported to OBS foreign tables dfs_fdw. |
The compression parameter is added to specify the file compression mode for import and export. |
|
The import with indexes is optimized to avoid generating too many Xlogs. |
|
|
The dist fdw foreign table in the LATIN1 database supports the dataencoding parameter. |
The dataencoding parameter is added to convert between dataencoding and encoding during GDS import and export. |
|
Bandwidth compression for GDS communication |
The gds_compress is added to reduce the bandwidth usage for interconnection between clusters when users use GDS pipe files. |
|
DDL lock timeout configuration |
The GUC parameter ddl_lock_timeout is added to specify the DDL lock timeout interval. |
|
PG_LOCKS view enhancement |
|
|
The original pushdown plan is modified. |
The implied_quality_optmode parameter is added to specify how to pass conditions for the equivalent columns in a statement. |
|
ANALYZE sampling adaptation (added in 8.2.0.100) |
|
|
Cost estimation enhancement (added in 8.2.0.100) |
The default value of enable_extrapolation_stats is changed to on. |
|
Column-store small CU view (added in 8.2.0.100) |
Add the CU information function for column-store tables.
|
|
Optimized dirty page monitoring view (added in 8.2.0.100) |
Added view: PGXC_STAT_TABLE_DIRTY Added functions: pg_stat_get_tuple() and pgxc_stat_single_table |
|
SELECT does not block TRUNCATE (add in 8.2.0.100) |
Added the GUC parameter ddl_select_concurrent_mode to control the concurrency of DDL and SELECT statements. |
|
Support for HStore tables (added in 8.2.0.100) |
Added the enable_hstore parameter to the CREATE TABLE syntax in the standalone hybrid data warehouse scenario. |
|
Fine-grained DR (added in 8.2.0.100) |
|
|
Display none of the non-aggregation function query columns after GROUP BY (added in 8.2.0.101) |
The disable_full_group_by_mysql option is added to the GUC parameter behavior_compat_options. Users can set this parameter to display none of the non-aggregation function query columns after GROUP BY in a query. |
Developer Guide > GUC Parameters > Miscellaneous Parameters > behavior_compat_options |
Optimization of the returned number of limits on each DN in the distinct limit scenario (added in 8.2.0.101) |
The enable_agg_limit_opt parameter is added to specify whether to optimize select distinct col from table limit N. |
Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options |
The query performance of a single table is improved, and the restriction on inlist roughcheck is removed. (Added in 8.2.0.101) |
The inlist_rough_check_threshold parameter is added to control the maximum number of values in the IN condition. |
Developer Guide > GUC Parameters > Query Planning > Other Optimizer Options |
Optimized hstore hot and cold table features (added in 8.2.0.101) |
Hot and cold data can be managed in HStore tables. |
Developer Guide > Hybrid Data Warehouse > Introduction to Hybrid Data Warehouse |
Optimized DN Parallel Import in the PBE Scenario (added in 8.2.0.102) |
Added the GUC parameter enable_parallel_batch_insert to control whether to enable concurrent data import to row-store and column-store tables. |
Behavior changes
Change Type |
No. |
Change |
Description |
---|---|---|---|
Added |
1 |
Added WindowAgg support for value partition execution plans |
The window function is executed at the outermost layer of statements. If ORDER BY is not used, the data behaviors are in a default order. In version 8.2.0, after enable_value_redistribute is enabled by default, the data becomes unordered. You need to use the ORDER BY clause to specify the order. |
Modified |
2 |
Changed the exception rule configuration mode from tool configuration to syntax configuration. |
In earlier versions, exception rules are configured for Cgroups using gs_cgroup. In 8.2.0, exception rules are configured using the CREATE/ALTER/DROP EXCEPT RULE syntax. |
3 |
Replaced the exception rule qualificationtime with elapsedtime. |
In earlier versions, qualificationtime is used as a rule, but it can only be used together with cpuskewpercent. Their effect is the same as that of elapsedtime. Therefore, this configuration item can be replaced with elapsedtime. |
|
4 |
Tid column name |
Row storage supports the tid column names, which are not supported before. |
|
5 |
max_process_memory |
Changed the number of CNs to half of that of DNs. |
SQL Syntax
Change Type |
No. |
Feature |
Change Description |
---|---|---|---|
Added |
1 |
Table parameter analyze_mode |
Added the parameter analyze_mode, which specifies the ANALYZE modes supported by a table. If this parameter is not set, the previous mode remains unchanged. |
2 |
Hints for disabling subqueries |
Added the hints for disabling subqueries. Format: no_merge (current query) and no_merge(relid) (specified object). |
|
3 |
DML hints |
Added support for hints in INSERT, UPDATE, MERGE, and DELETE statements. |
|
4 |
AGG redistribution hints support specified column names. |
Column names can be specified for AGG redistribution hints. The format is /+ redistribute ((*) (a b c d)) */. |
|
5 |
Count(distinct) hints |
Added hints for specifying the count(distinct) column, effective only in the double Hash Agg scenario. |
|
6 |
invisible |
Added index OPTIONS to specify whether the index scan is visible in the execution plan. |
|
7 |
Backquotes |
Backquotes can be used to distinguish common characters from special characters. |
|
8 |
ON UPDATE in column definition |
When the ON UPDATE attribute is specified in the column definition, the update timestamp is automatically filled when data is updated. |
|
9 |
CREATE/ALTER/DROP EXCEPT RULE |
Added the syntax to add, create, and delete kernel exception rules. |
|
10 |
OPTIONS security_token in CREATE SERVER statements |
Added OPTIONS security_token to transfer security tokens for using temporary AKs and SKs to access OBS. |
|
11 |
OPTIONS security_token in CREATE FOREIGN TABLE statements |
Added OPTIONS security_token to transfer security tokens for using temporary AKs and SKs to access OBS. |
|
12 |
file_split_ threshold in (dist_fdw) option in OBS foreign tables |
Added the file_split_ threshold to the OBS foreign table parameter (dist_fdw) option. |
|
13 |
gds_compress in GDS foreign tables |
Added the gds_compress parameter, which is used for compressed transmission of data between DNs and GDSs during GDS foreign table interconnection. Currently, only the Snappy compression algorithm is supported. |
|
14 |
dataencoding in GDS foreign tables |
Added the dataencoding parameter, which specifies the character set of the data stored in the latin1 database. |
|
15 |
gds_compress in gc_fdw foreign tables (sql on other gaussdb foreign tables) |
Added the gds_compress parameter, which is used for compressed transmission of data between DNs and GDSs during GDS foreign table interconnection. Currently, only the Snappy compression algorithm is supported. |
|
16 |
dataencoding in gc_fdw foreign tables (sql on other gaussdb). |
Added the dataencoding parameter, which specifies the character set of the data stored in the latin1 database. |
|
Modified |
17 |
CREATE/ALTER REDACTION POLICY |
The default value of deltarow_threshold is set to 10000, which specifies the upper limit of rows when column-store tables are imported to the Delta table. This parameter is valid only when the table-level parameter enable_delta is enabled. |
18 |
Syntax of association between resource pools exception rules |
Added the INHERIT option, which specifies whether a policy is inherited from other policies. |
|
19 |
single_node support for OBS foreign table syntax |
In earlier versions, memory exception rules can be configured for resource pools. The exception rules in 8.2.0 are configured via the unified interface: CREATE/ALTER RESOURCE POOL 'pool' with (EXCEPT_RULE='rule1,2'); |
|
20 |
Use server to specify the AK and SK of an OBS foreign table (dist_fdw). |
Single_node supports OBS foreign tables (dfs_fdw). |
Keywords
Change Type |
No. |
Keyword |
Change Description |
---|---|---|---|
Added |
1 |
TRY_CAST |
Added the non-reserved keyword TRY_CAST for the compatibility with the TRY_CAST function in MySQL. If the type conversion fails, NULL is returned. |
System Catalogs
Change Type |
No. |
Name |
Change Description |
---|---|---|---|
Added |
1 |
gs_blocklist_query |
Added the system catalog gs_blocklist_query, which is used to store blocklist statements and exception rule triggering information. |
2 |
pg_except_rule |
Added the system catalog pg_except_rule, which is used to store information about exception rules created in the cluster, including the rule name, rule threshold, and action triggered by the rule. |
|
Modified |
3 |
pg_redaction_policy, pg_redaction_column |
Added the inherited column, which specifies whether a policy is manually created or inherited. |
System Functions
Change Type |
No. |
Function |
Description |
---|---|---|---|
Added |
1 |
pg_stat_get_runtime_relstats |
Queries table-level statistics generated by AUTOANALYZE. |
2 |
pg_stat_get_runtime_attstats |
Queries column-level statistics generated by AUTOANALYZE. |
|
3 |
pg_stat_set_last_data_changed_num |
Interface for manually setting the total size of historical modification for the remedy of the pgstat content loss. |
|
4 |
strcmp() |
Compares two strings. If the first string equals the second string, 0 is returned. If the first string is less than the second string, -1 is returned. If the second string is less than the first string, 1 is returned. If the input parameters contain null, null is returned. |
|
5 |
hex() |
Converts each character or decimal integer in the input parameter into a hexadecimal number. |
|
6 |
unhex() |
Performs the reverse operation of hex(). This function interprets each pair of hexadecimal digits (in the argument) as a number and converts it into a character. The result character is returned in bytea format. |
|
7 |
space(n) |
Returns a string consisting of n spaces. |
|
8 |
rand() |
Obtains a random number ranging from 0.0 to 1.0. |
|
9 |
truncate(x,d) |
Truncates x to d decimal places. If d is a negative number, then the number is truncated to the left side of the decimal point. |
|
10 |
addtime(expr1,expr2) |
Adds time. expr1 is of the time or timestamp type, and expr2 is of the interval type. |
|
11 |
subtime(expr1,expr2) |
Subtracts a time period expr2 from the time expr1. expr1 is of the time or timestamp type. expr2 is of the interval type. The return type is the same as that of expr1. |
|
12 |
timediff(expr1,expr2) |
Calculates the time difference between two expr1 and expr2 (expr1 - expr2). Returns the time type. The arguments must be both of the time or timestamp type. |
|
13 |
curdate() |
Returns the current date (date type). |
|
14 |
curtime([fsp]) |
Returns the current time (time type). fsp indicates the precision of the returned time. |
|
15 |
uuid() |
Returns a universally unique identifier (UUID). |
|
16 |
convert_tz() |
Convert the time zone. |
|
17 |
cast(expr,typename) |
Converts expr to a specified type. |
|
18 |
digest() |
Generates binary hash values of the given data based on different algorithms. |
|
19 |
hmac() |
Calculates the MAC value for the data with the key. |
|
20 |
crypt () and gen_salt () |
The crypt() and gen_salt() functions are used for password hashing. crypt() executes hashes to encrypt data, and gen_salt() generates salted hashes. |
|
21 |
pgp_sym_encrypt() |
Used for symmetric key encryption. |
|
22 |
pgp_sym_decrypt() |
Decrypts a message encrypted using a PGP symmetric key. |
|
23 |
pgp_pub_encrypt() |
Used for public key encryption. |
|
24 |
pgp_pub_decrypt() |
Decrypts a message encrypted using a PGP public key. |
|
25 |
pgp_key_id() |
Extracts the key ID of the PGP public or private key. If an encrypted message is used as the input, the ID of the key used to encrypt the message will be returned. |
|
26 |
armor() |
Converts binary data into PGP ASCII-armor format by the CRC calculation and formatting of a Base64 string. |
|
27 |
dearmor() |
Performs the conversion opposite to the armor() function. |
|
28 |
pgp_armor_headers() |
Returns the armor header in data. |
|
29 |
encrypt |
Original encryption function, which does not support any advanced functions of PGP encryption. The IV is 0. |
|
30 |
decrypt |
Original decryption function, which does not support any advanced functions of PGP encryption. The IV is 0. |
|
31 |
encrypt_iv |
Original decryption function, which does not support any advanced functions of PGP encryption. The IV can be set by users. |
|
32 |
decrypt_iv |
Original decryption function, which does not support any advanced functions of PGP encryption. The IV can be set by users. |
|
33 |
gen_random_bytes |
Generates cryptographically strong random bytes. |
|
34 |
gen_random_uuid() |
Returns a random UUID of version 4. |
|
35 |
get_volatile_pg_class |
Obtains the pg_class metadata related to all volatile temporary tables in memory (metadata in volatile temporary tables is not stored in system catalogs). |
|
36 |
get_volatile_pg_attribute |
Obtains the pg_attribute metadata related to all volatile temporary tables in memory. |
|
37 |
gs_increase_except_num |
Increases the number of query exceptions. |
|
38 |
gs_update_blocklist_hash_info |
Updates the blocklist information in memory. |
|
39 |
gs_append_blocklist |
Adds blocklist statements. |
|
40 |
gs_remove_blocklist |
Removes statements from a blocklist. |
|
41 |
gs_wlm_rebuild_except_rule_hash |
Triggers the building of an exception rule kernel hash table. |
|
42 |
pg_stat_wal_write |
Queries the thread information on the current CN or DN, and the import volume and rate of WAL and data pages. |
|
43 |
pgxc_stat_wal_write |
Queries the thread information about the interaction between CNs and DNs, and the import volume and rate of WALs and data pages. |
|
44 |
get_col_file_info |
Obtains the number of empty CU files and the total number of CU files of a specified column-store table. |
|
45 |
get_all_col_file_info |
Obtains the number of empty CU files and the total number of CU files of all column-store tables. |
|
46 |
col_rebuild_file_relation |
Replaces the Relfilenode and reorganize the CU files of the specified column-store table. After the reorganization, the CU files become consecutive 1 GB files. |
|
Modified |
47 |
pg_query_audit/pgxc_query_audit |
Changed the thread_id field to the session id field to record the session where the statement is executed. |
48 |
login_audit_messages/login_audit_messages_pid |
Added the session id field to record the session where the statement is executed. |
System Views
Change Type |
No. |
View |
Change Description |
---|---|---|---|
Added |
1 |
gs_obs_latency |
Monitors OBS latency. |
2 |
pgxc_stat_wal |
Queries the traffic information about WAL logs and data pages of the current query. |
|
3 |
pgxc_lockwait_detail |
Displays detailed information about the lock wait chain on each node. |
|
4 |
pgxc_wait_detail |
Displays details about the SQL waiting chains of all nodes, including the wait nodes and queries. |
|
Modified |
5 |
gs_obs_read_traffic |
Data aggregation interval is changed to 10 minutes, and the logtime column is added to display time groups. |
6 |
gs_obs_write_traffic |
Data aggregation interval is changed to 10 minutes, and the logtime column is added to display time groups. |
GUC Parameters
Change Type |
No. |
Parameter |
Change Description |
---|---|---|---|
Added |
1 |
enable_wlm_internal_memory_limit |
Controls whether to enable the internal restriction of the WLM. For example, the estimated memory of a job cannot exceed 80%, 90%, or 40%. |
2 |
enable_strict_memory_expansion |
Controls whether job memory expansion is performed on DNs. |
|
3 |
allow_zero_estimate_memory |
Controls whether the estimated memory of a job can be set to 0 when there is no statistics for the job. |
|
4 |
max_process_memory_auto_adjust |
Controls whether to dynamically adjust max_process_memory during a primary/standby CM switchover. |
|
5 |
wlm_memory_feedback_adjust |
Specifies whether to enable the memory negative feedback function in dynamic load management. The value can be on, off, or on(50,40). |
|
6 |
autoanalyze_mode |
A system-level AUTOANALYZE control parameter. By default, the normal mode is the same as before. If the mode is set to light, dynamic sampling is enabled. |
|
7 |
enable_redactcol_computable |
This parameter specifies whether to enable the computable data redaction. By default, this function is disabled. |
|
8 |
windowagg_pushdown_enhancement |
Controls whether to push down the intersection of PARTITION BY and GROUP BY when the window function and GROUP BY appear at the same time. |
|
9 |
enable_from_collapse_hint |
Specifies whether the plans with hints take precedence in execution. By default, the parameter is enabled and statement-level hints are supported. |
|
10 |
enable_value_redistribute |
Specifies whether to use value partition streams to optimize WindowAgg. |
|
11 |
setop_optmode |
Specifies whether to perform deduplication on subqueries of the setop operation. The default value is disable, indicating that deduplication is not performed, which is the same as that in versions earlier than 8.2.0. The value force indicates that deduplication is forcibly performed. The value cost indicates that deduplication is performed based on the cost. (Note: Deduplication is performed only when the bottom layer of the setop branch is the stream operator.) |
|
12 |
security_enable_options |
Indicates that some operations are enabled in security mode. By default, this parameter is left blank. |
|
13 |
audit_object_name_format |
Specifies the displaying mode of objects in the object_name column in audit logs. The default value is single, indicating that a single object is displayed. |
|
14 |
enable_redactcol_equal_const |
Restricts the constant obtaining behaviors in the new version. By default, this function is disabled, and equivalent comparison between anonymized columns and constants is prohibited. |
|
15 |
enable_mixedagg |
Indicates whether to generate a mixed aggregate execution plan. This parameter is disabled by default. |
|
16 |
max_streams_per_query |
Controls whether to report an error in the optimizer phase for a plan with a large number of streams to prevent streams from occupying too many connections. The default value is 10000. |
|
17 |
agg_max_mem |
Controls the maximum estimated memory when the number of aggregation columns exceeds 5. This prevents CCN queuing caused by high estimated memory. |
|
18 |
max_volatile_memory |
Maximum number of memory contexts related to the volatile temporary table. The unit is KB. The value ranges from 1024 to INT_MAX. The default value is 1 GB. |
|
19 |
max_volatile_tables |
Maximum number of volatile temporary tables (including auxiliary tables such as TOAST and CUDESC) in a single session. The default value is 300. |
|
20 |
enable_hashfilter |
Determines whether to generate hash filters. |
|
21 |
volatile_shipping_version |
Controls the sequence pushdown enhancing in 8.2.0. The default value is 1. |
|
22 |
smp_thread_cost |
Control the generated query_dop value. The default value is 1000. |
|
23 |
enable_wal_decelerate |
Specifies whether to limit the flow control rate when data is imported with indexes. |
|
24 |
wal_decelerate_policy |
Specifies the behavior policy after rate limiting is triggered. |
|
25 |
wal_write_speed |
Indicates the maximum WAL write speed (byte/s) of each query on a single DN per second. |
|
26 |
wal_decelerate_trigger_threshold |
Specifies the WAL write rate limit triggered by each query on a single DN. |
|
27 |
enable_cstore_ring_buffer |
Controls whether to enable the column-store ring buffer. |
|
28 |
enable_tsdb_multi_temperature |
Specifies whether to enable the OBS cold and hot storage for time series tables. By default, the OBS cold and hot storage is disabled. |
|
29 |
enable_tsdb_multi_temperature |
Specifies whether to enable the OBS cold and hot storage for time series tables. By default, the OBS cold and hot storage is disabled. |
|
30 |
ddl_lock_timeout |
Specifies the lockwait time for DDL statements. If the lockwait times out, DDL statements are terminated. This parameter is valid only for level-8 locks. The default value is 0, indicating that this parameter does not take effect. |
|
31 |
build_backup_param |
Specifies the minimum specifications for disk backup during incremental build. |
|
Modified |
32 |
comm_tcp_mode |
The parameter type is changed from POSTMASTER to SIGHUP. |
33 |
max_process_memory |
Indicates the maximum memory usage of a process. The type of the parameter is changed from POSTMASTER to SIGHUP. The minimum threshold is 2 GB. You are not advised to set it to the minimum threshold. |
|
34 |
rewrite_rule |
The enumerated value eager_magicset is added to control the magic set enhancement. |
|
35 |
behavior_compat_options |
The normal_session_id parameter is added to behavior_compat_options to determine whether to concatenate the session ID with node_name. By default, normal_session_id is disabled, and the session ID is concatenated with node_name. |
|
36 |
behavior_compat_options |
Added behavior_compat_options to merge_into_with_trigger. After the parameter is enabled, MERGE INTO can be executed on tables with triggers. This parameter is disabled by default. |
|
37 |
behavior_compat_options |
Added the option disable_jsonb_exact_match to control the operator matching. By default, this option is disabled. When this option is disabled, only exact match of JSONB types is supported. If exact match fails, the non-JSONB types are matched. When this option is enabled, and the operator matching does not distinguish types. |
|
38 |
hashjoin_spill_strategy |
Policies 5 and 6 are added. The behavior is the same as that of policies 0 and 1. The original policies 0 and 1 are modified. Originally, if the memory of the internal table is large and the memory of the external table is small, exchange the internal and external tables. After the modification, if the memory of the internal table is large and the memory of the external table is small, continue to divide the internal table until the internal table cannot be divided. Then try to exchange internal and external tables |
|
39 |
sql_use_spacelimit |
Modified the initial value of sql_use_spacelimit to 10% (upper limit) of the disk space where the current instance resides. If the value is less than 10 GB (lower limit), set the value to 10 GB. |
|
40 |
temp_file_limit |
Modified the initial value of temp_file_limit to 10% (upper limit) of the disk space where the current instance resides. If the value is less than 10 GB (lower limit), set the value to 10 GB. |
|
Deleted |
41 |
enable_grant_public |
Indicates that the grant to public syntax is not supported in security mode. |
42 |
enable_grant_option |
Indicates that the grant with grant option syntax is not supported in security mode. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot