This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new e7cba94ca51 [docs] Add ALTER TABLE DISTRIBUTION documentation for
modifying default bucket configuration (#3358)
e7cba94ca51 is described below
commit e7cba94ca51b9f856dfd1ae7aea6364ba9beace4
Author: zclllyybb <[email protected]>
AuthorDate: Wed Feb 11 01:50:44 2026 +0800
[docs] Add ALTER TABLE DISTRIBUTION documentation for modifying default
bucket configuration (#3358)
## Versions
- [x] dev
- [x] 4.x
- [ ] 3.x
- [ ] 2.1
## Languages
- [x] Chinese
- [x] English
## Docs Checklist
- [ ] Checked by AI
- [ ] Test Cases Built
---
.../table/ALTER-TABLE-DISTRIBUTION.md | 173 +++++++++++++++++++++
.../table-and-view/table/ALTER-TABLE-PROPERTY.md | 2 +-
.../table/ALTER-TABLE-DISTRIBUTION.md | 173 +++++++++++++++++++++
.../table-and-view/table/ALTER-TABLE-PROPERTY.md | 2 +-
.../table/ALTER-TABLE-DISTRIBUTION.md | 173 +++++++++++++++++++++
.../table-and-view/table/ALTER-TABLE-PROPERTY.md | 2 +-
sidebars.ts | 1 +
.../table/ALTER-TABLE-DISTRIBUTION.md | 173 +++++++++++++++++++++
.../table-and-view/table/ALTER-TABLE-PROPERTY.md | 2 +-
versioned_sidebars/version-4.x-sidebars.json | 1 +
10 files changed, 698 insertions(+), 4 deletions(-)
diff --git
a/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
b/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
new file mode 100644
index 00000000000..a35def989d5
--- /dev/null
+++
b/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
@@ -0,0 +1,173 @@
+---
+{
+ "title": "ALTER TABLE DISTRIBUTION",
+ "language": "en",
+ "description": "This statement is used to modify the default distribution
bucket configuration of a partitioned table."
+}
+---
+
+## Description
+
+This statement is used to modify the default distribution bucket configuration
of a partitioned table. This operation is synchronous, and the return of the
command indicates the completion of the execution.
+
+This statement only changes the default bucket count for **newly created
partitions**. Existing partitions retain their original bucket count unchanged.
+
+grammar:
+
+```sql
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(column1[,
column2, ...]) BUCKETS { num | AUTO };
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM BUCKETS
{ num | AUTO };
+```
+
+Note:
+
+- `num`: A positive integer specifying a fixed number of buckets for new
partitions.
+- `AUTO`: Let the system automatically determine the number of buckets for new
partitions based on data volume and cluster configuration.
+- The distribution type (HASH or RANDOM) and distribution columns must remain
the same as the original table definition. Only the bucket count can be changed.
+- This statement only applies to **partitioned tables** (RANGE or LIST
partitioned). Unpartitioned tables are not supported.
+- This statement is not supported on **Colocate** tables.
+- You can switch freely between a fixed bucket count and `AUTO`, and perform
multiple modifications in sequence.
+
+### Interaction with AUTO PARTITION
+
+For tables using [AUTO
PARTITION](../../../../table-design/data-partitioning/auto-partitioning), new
partitions that are automatically created by data insertion after executing
`ALTER TABLE MODIFY DISTRIBUTION` will use the new bucket configuration.
Partitions that were already auto-created before the modification remain
unchanged.
+
+For example, if an AUTO PARTITION table originally uses `BUCKETS 5` and you
modify it to `BUCKETS 8`, any subsequent INSERT that triggers the creation of a
new auto partition will assign 8 buckets to that partition. If you further
modify it to `BUCKETS AUTO`, newly auto-created partitions will have their
bucket count determined automatically by the system.
+
+### Interaction with Dynamic Partition
+
+For tables using [Dynamic
Partition](../../../../table-design/data-partitioning/dynamic-partitioning),
new partitions that are automatically created by the dynamic partition
scheduler after executing `ALTER TABLE MODIFY DISTRIBUTION` will use the new
bucket configuration. Existing dynamic partitions remain unchanged.
+
+Note that Dynamic Partition tables also support the
`dynamic_partition.buckets` property. If both are configured, the
`dynamic_partition.buckets` property takes precedence for dynamically created
partitions. To use the table-level default bucket count (set by `MODIFY
DISTRIBUTION`) for dynamic partitions, ensure that `dynamic_partition.buckets`
is not explicitly set, or update it accordingly via `ALTER TABLE ... SET
("dynamic_partition.buckets" = "...")`.
+
+## Example
+
+1. Modify the default bucket count of a RANGE partitioned table with HASH
distribution from the original value to 10
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 10;
+```
+
+After this, any newly added partition will use 10 buckets:
+
+```sql
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 will have 10 buckets; existing partitions remain unchanged
+```
+
+2. Switch from a fixed bucket count to AUTO
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+```
+
+After this, newly created partitions will have their bucket count
automatically determined by the system.
+
+3. Switch from AUTO back to a fixed bucket count
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 3;
+```
+
+4. Modify the default bucket count of a LIST partitioned table
+
+```sql
+ALTER TABLE example_db.my_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+```
+
+5. Modify the default bucket count of a table with RANDOM distribution
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS 12;
+```
+
+6. Switch a RANDOM distribution table to AUTO buckets
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS AUTO;
+```
+
+7. Modify the default bucket count of an AUTO PARTITION table (RANGE)
+
+```sql
+-- Original table uses AUTO PARTITION BY RANGE with BUCKETS 5
+ALTER TABLE example_db.my_auto_range_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+
+-- New auto-created partitions from subsequent INSERT will use 8 buckets
+INSERT INTO example_db.my_auto_range_table VALUES ('2024-01-03', 3);
+```
+
+8. Modify the default bucket count of an AUTO PARTITION table (LIST)
+
+```sql
+-- Original table uses AUTO PARTITION BY LIST with BUCKETS 4
+ALTER TABLE example_db.my_auto_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 7;
+
+-- New auto-created partitions from subsequent INSERT will use 7 buckets
+INSERT INTO example_db.my_auto_list_table VALUES ('ccc', 3);
+```
+
+9. Switch an AUTO PARTITION table from AUTO buckets to fixed, and back
+
+```sql
+-- Table originally created with BUCKETS AUTO
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 5;
+-- New partitions will use 5 buckets
+
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS AUTO;
+-- New partitions will return to system-determined bucket count
+```
+
+10. Multiple sequential modifications
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 4;
+ALTER TABLE example_db.my_table ADD PARTITION p2 VALUES LESS THAN ('20');
+-- p2 has 4 buckets
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 has system-determined bucket count
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 6;
+ALTER TABLE example_db.my_table ADD PARTITION p4 VALUES LESS THAN ('40');
+-- p4 has 6 buckets
+```
+
+11. Error cases
+
+Colocate tables are not supported:
+
+```sql
+-- This will fail with: "Cannot change default bucket number of colocate table"
+ALTER TABLE example_db.my_colocate_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 10;
+```
+
+Unpartitioned tables are not supported:
+
+```sql
+-- This will fail with: "Only support change partitioned table's distribution"
+ALTER TABLE example_db.my_unpartitioned_table MODIFY DISTRIBUTION DISTRIBUTED
BY HASH(k1) BUCKETS 10;
+```
+
+Cannot change the distribution type:
+
+```sql
+-- Original table uses HASH distribution; changing to RANDOM will fail
+-- Error: "Cannot change distribution type"
+ALTER TABLE example_db.my_hash_table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM
BUCKETS 10;
+```
+
+Cannot change the distribution columns:
+
+```sql
+-- Original table uses HASH(k1); changing to HASH(k2) will fail
+-- Error: "Cannot assign hash distribution with different distribution cols"
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k2)
BUCKETS 10;
+```
+
+## Keywords
+
+```text
+ALTER, TABLE, DISTRIBUTION, MODIFY DISTRIBUTION, BUCKETS, ALTER TABLE
+```
diff --git
a/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
b/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
index 50bb48b7b11..201b9f160b7 100644
---
a/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
+++
b/docs/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
@@ -119,7 +119,7 @@ ALTER TABLE example_db.my_table MODIFY DISTRIBUTION
DISTRIBUTED BY HASH(k1) BUCK
Note:
-- Only support non colocate table with RANGE partition and HASH distribution
+- Only support partitioned non-Colocate tables. See [ALTER TABLE
DISTRIBUTION](./ALTER-TABLE-DISTRIBUTION) for more details.
9. Modify table comments
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
new file mode 100644
index 00000000000..d3f0feaf3dc
--- /dev/null
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
@@ -0,0 +1,173 @@
+---
+{
+ "title": "ALTER TABLE DISTRIBUTION",
+ "language": "zh-CN",
+ "description": "该语句用于修改分区表的默认分桶配置。"
+}
+---
+
+## 描述
+
+该语句用于修改分区表的默认分桶配置。这个操作是同步的,命令返回表示执行完毕。
+
+该语句仅修改**新创建分区**的默认分桶数。已有分区的分桶数保持不变。
+
+语法:
+
+```sql
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(column1[,
column2, ...]) BUCKETS { num | AUTO };
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM BUCKETS
{ num | AUTO };
+```
+
+说明:
+
+- `num`:正整数,指定新分区使用的固定分桶数。
+- `AUTO`:由系统根据数据量和集群配置自动决定新分区的分桶数。
+- 分桶方式(HASH 或 RANDOM)和分桶列必须与建表时保持一致,仅能修改分桶数。
+- 该语句仅适用于**分区表**(RANGE 分区或 LIST 分区)。不支持非分区表。
+- 不支持 **Colocate** 表。
+- 可以在固定分桶数和 `AUTO` 之间自由切换,并支持多次连续修改。
+
+### 与自动分区(AUTO PARTITION)的联用
+
+对于使用[自动分区](../../../../table-design/data-partitioning/auto-partitioning)的表,在执行
`ALTER TABLE MODIFY DISTRIBUTION` 之后,由数据导入自动创建的新分区将使用新的分桶配置。修改之前已经自动创建的分区保持不变。
+
+例如,某自动分区表原先使用 `BUCKETS 5`,修改为 `BUCKETS 8` 后,后续 INSERT 触发自动创建的新分区将使用 8
个分桶。若进一步修改为 `BUCKETS AUTO`,则新自动创建的分区将由系统自动决定分桶数。
+
+### 与动态分区(Dynamic Partition)的联用
+
+对于使用[动态分区](../../../../table-design/data-partitioning/dynamic-partitioning)的表,在执行
`ALTER TABLE MODIFY DISTRIBUTION` 之后,由动态分区调度器自动创建的新分区将使用新的分桶配置。已有的动态分区保持不变。
+
+注意,动态分区表还支持 `dynamic_partition.buckets` 属性。如果两者同时设置,动态创建的分区将优先使用
`dynamic_partition.buckets` 属性指定的分桶数。若希望动态分区使用表级别的默认分桶数(即通过 `MODIFY
DISTRIBUTION` 设置的值),请确保未显式设置 `dynamic_partition.buckets`,或通过 `ALTER TABLE ...
SET ("dynamic_partition.buckets" = "...")` 同步更新。
+
+## 示例
+
+1. 将 RANGE 分区、HASH 分桶表的默认分桶数修改为 10
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 10;
+```
+
+之后新增的分区将使用 10 个分桶:
+
+```sql
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 将使用 10 个分桶;已有分区不受影响
+```
+
+2. 从固定分桶数切换为 AUTO
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+```
+
+之后新建的分区将由系统自动决定分桶数。
+
+3. 从 AUTO 切换回固定分桶数
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 3;
+```
+
+4. 修改 LIST 分区表的默认分桶数
+
+```sql
+ALTER TABLE example_db.my_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+```
+
+5. 修改 RANDOM 分桶表的默认分桶数
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS 12;
+```
+
+6. 将 RANDOM 分桶表切换为 AUTO
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS AUTO;
+```
+
+7. 修改自动分区表(RANGE)的默认分桶数
+
+```sql
+-- 原表使用 AUTO PARTITION BY RANGE,分桶数为 5
+ALTER TABLE example_db.my_auto_range_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+
+-- 后续 INSERT 触发自动创建的新分区将使用 8 个分桶
+INSERT INTO example_db.my_auto_range_table VALUES ('2024-01-03', 3);
+```
+
+8. 修改自动分区表(LIST)的默认分桶数
+
+```sql
+-- 原表使用 AUTO PARTITION BY LIST,分桶数为 4
+ALTER TABLE example_db.my_auto_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 7;
+
+-- 后续 INSERT 触发自动创建的新分区将使用 7 个分桶
+INSERT INTO example_db.my_auto_list_table VALUES ('ccc', 3);
+```
+
+9. 将自动分区表从 AUTO 分桶切换为固定分桶,再切换回 AUTO
+
+```sql
+-- 原表建表时使用 BUCKETS AUTO
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 5;
+-- 新分区将使用 5 个分桶
+
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS AUTO;
+-- 新分区将恢复为系统自动决定分桶数
+```
+
+10. 多次连续修改
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 4;
+ALTER TABLE example_db.my_table ADD PARTITION p2 VALUES LESS THAN ('20');
+-- p2 使用 4 个分桶
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 使用系统自动决定的分桶数
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 6;
+ALTER TABLE example_db.my_table ADD PARTITION p4 VALUES LESS THAN ('40');
+-- p4 使用 6 个分桶
+```
+
+11. 错误示例
+
+不支持 Colocate 表:
+
+```sql
+-- 将会失败,错误信息:"Cannot change default bucket number of colocate table"
+ALTER TABLE example_db.my_colocate_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 10;
+```
+
+不支持非分区表:
+
+```sql
+-- 将会失败,错误信息:"Only support change partitioned table's distribution"
+ALTER TABLE example_db.my_unpartitioned_table MODIFY DISTRIBUTION DISTRIBUTED
BY HASH(k1) BUCKETS 10;
+```
+
+不能更改分桶方式:
+
+```sql
+-- 原表使用 HASH 分桶,改为 RANDOM 将会失败
+-- 错误信息:"Cannot change distribution type"
+ALTER TABLE example_db.my_hash_table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM
BUCKETS 10;
+```
+
+不能更改分桶列:
+
+```sql
+-- 原表使用 HASH(k1),改为 HASH(k2) 将会失败
+-- 错误信息:"Cannot assign hash distribution with different distribution cols"
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k2)
BUCKETS 10;
+```
+
+## 关键词
+
+```text
+ALTER, TABLE, DISTRIBUTION, MODIFY DISTRIBUTION, BUCKETS, ALTER TABLE
+```
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
index 2e9abf966ca..8b7a1787f44 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
@@ -113,7 +113,7 @@ ALTER TABLE example_db.my_table MODIFY DISTRIBUTION
DISTRIBUTED BY HASH(k1) BUCK
注意:
-- 只能用在分区类型为 RANGE,采用哈希分桶的非 colocate 表
+- 仅支持分区表且非 Colocate 表。详见 [ALTER TABLE
DISTRIBUTION](./ALTER-TABLE-DISTRIBUTION)。
9. 修改表注释
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
new file mode 100644
index 00000000000..d3f0feaf3dc
--- /dev/null
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
@@ -0,0 +1,173 @@
+---
+{
+ "title": "ALTER TABLE DISTRIBUTION",
+ "language": "zh-CN",
+ "description": "该语句用于修改分区表的默认分桶配置。"
+}
+---
+
+## 描述
+
+该语句用于修改分区表的默认分桶配置。这个操作是同步的,命令返回表示执行完毕。
+
+该语句仅修改**新创建分区**的默认分桶数。已有分区的分桶数保持不变。
+
+语法:
+
+```sql
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(column1[,
column2, ...]) BUCKETS { num | AUTO };
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM BUCKETS
{ num | AUTO };
+```
+
+说明:
+
+- `num`:正整数,指定新分区使用的固定分桶数。
+- `AUTO`:由系统根据数据量和集群配置自动决定新分区的分桶数。
+- 分桶方式(HASH 或 RANDOM)和分桶列必须与建表时保持一致,仅能修改分桶数。
+- 该语句仅适用于**分区表**(RANGE 分区或 LIST 分区)。不支持非分区表。
+- 不支持 **Colocate** 表。
+- 可以在固定分桶数和 `AUTO` 之间自由切换,并支持多次连续修改。
+
+### 与自动分区(AUTO PARTITION)的联用
+
+对于使用[自动分区](../../../../table-design/data-partitioning/auto-partitioning)的表,在执行
`ALTER TABLE MODIFY DISTRIBUTION` 之后,由数据导入自动创建的新分区将使用新的分桶配置。修改之前已经自动创建的分区保持不变。
+
+例如,某自动分区表原先使用 `BUCKETS 5`,修改为 `BUCKETS 8` 后,后续 INSERT 触发自动创建的新分区将使用 8
个分桶。若进一步修改为 `BUCKETS AUTO`,则新自动创建的分区将由系统自动决定分桶数。
+
+### 与动态分区(Dynamic Partition)的联用
+
+对于使用[动态分区](../../../../table-design/data-partitioning/dynamic-partitioning)的表,在执行
`ALTER TABLE MODIFY DISTRIBUTION` 之后,由动态分区调度器自动创建的新分区将使用新的分桶配置。已有的动态分区保持不变。
+
+注意,动态分区表还支持 `dynamic_partition.buckets` 属性。如果两者同时设置,动态创建的分区将优先使用
`dynamic_partition.buckets` 属性指定的分桶数。若希望动态分区使用表级别的默认分桶数(即通过 `MODIFY
DISTRIBUTION` 设置的值),请确保未显式设置 `dynamic_partition.buckets`,或通过 `ALTER TABLE ...
SET ("dynamic_partition.buckets" = "...")` 同步更新。
+
+## 示例
+
+1. 将 RANGE 分区、HASH 分桶表的默认分桶数修改为 10
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 10;
+```
+
+之后新增的分区将使用 10 个分桶:
+
+```sql
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 将使用 10 个分桶;已有分区不受影响
+```
+
+2. 从固定分桶数切换为 AUTO
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+```
+
+之后新建的分区将由系统自动决定分桶数。
+
+3. 从 AUTO 切换回固定分桶数
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 3;
+```
+
+4. 修改 LIST 分区表的默认分桶数
+
+```sql
+ALTER TABLE example_db.my_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+```
+
+5. 修改 RANDOM 分桶表的默认分桶数
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS 12;
+```
+
+6. 将 RANDOM 分桶表切换为 AUTO
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS AUTO;
+```
+
+7. 修改自动分区表(RANGE)的默认分桶数
+
+```sql
+-- 原表使用 AUTO PARTITION BY RANGE,分桶数为 5
+ALTER TABLE example_db.my_auto_range_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+
+-- 后续 INSERT 触发自动创建的新分区将使用 8 个分桶
+INSERT INTO example_db.my_auto_range_table VALUES ('2024-01-03', 3);
+```
+
+8. 修改自动分区表(LIST)的默认分桶数
+
+```sql
+-- 原表使用 AUTO PARTITION BY LIST,分桶数为 4
+ALTER TABLE example_db.my_auto_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 7;
+
+-- 后续 INSERT 触发自动创建的新分区将使用 7 个分桶
+INSERT INTO example_db.my_auto_list_table VALUES ('ccc', 3);
+```
+
+9. 将自动分区表从 AUTO 分桶切换为固定分桶,再切换回 AUTO
+
+```sql
+-- 原表建表时使用 BUCKETS AUTO
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 5;
+-- 新分区将使用 5 个分桶
+
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS AUTO;
+-- 新分区将恢复为系统自动决定分桶数
+```
+
+10. 多次连续修改
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 4;
+ALTER TABLE example_db.my_table ADD PARTITION p2 VALUES LESS THAN ('20');
+-- p2 使用 4 个分桶
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 使用系统自动决定的分桶数
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 6;
+ALTER TABLE example_db.my_table ADD PARTITION p4 VALUES LESS THAN ('40');
+-- p4 使用 6 个分桶
+```
+
+11. 错误示例
+
+不支持 Colocate 表:
+
+```sql
+-- 将会失败,错误信息:"Cannot change default bucket number of colocate table"
+ALTER TABLE example_db.my_colocate_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 10;
+```
+
+不支持非分区表:
+
+```sql
+-- 将会失败,错误信息:"Only support change partitioned table's distribution"
+ALTER TABLE example_db.my_unpartitioned_table MODIFY DISTRIBUTION DISTRIBUTED
BY HASH(k1) BUCKETS 10;
+```
+
+不能更改分桶方式:
+
+```sql
+-- 原表使用 HASH 分桶,改为 RANDOM 将会失败
+-- 错误信息:"Cannot change distribution type"
+ALTER TABLE example_db.my_hash_table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM
BUCKETS 10;
+```
+
+不能更改分桶列:
+
+```sql
+-- 原表使用 HASH(k1),改为 HASH(k2) 将会失败
+-- 错误信息:"Cannot assign hash distribution with different distribution cols"
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k2)
BUCKETS 10;
+```
+
+## 关键词
+
+```text
+ALTER, TABLE, DISTRIBUTION, MODIFY DISTRIBUTION, BUCKETS, ALTER TABLE
+```
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
index 2e9abf966ca..8b7a1787f44 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
@@ -113,7 +113,7 @@ ALTER TABLE example_db.my_table MODIFY DISTRIBUTION
DISTRIBUTED BY HASH(k1) BUCK
注意:
-- 只能用在分区类型为 RANGE,采用哈希分桶的非 colocate 表
+- 仅支持分区表且非 Colocate 表。详见 [ALTER TABLE
DISTRIBUTION](./ALTER-TABLE-DISTRIBUTION)。
9. 修改表注释
diff --git a/sidebars.ts b/sidebars.ts
index 0007f8403b4..0ee999eca50 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -2260,6 +2260,7 @@ const sidebars: SidebarsConfig = {
'sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-REPLACE',
'sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY',
'sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-COMMENT',
+
'sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION',
'sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-ADD-GENERATED-COLUMN',
'sql-manual/sql-statements/table-and-view/table/CANCEL-ALTER-TABLE',
'sql-manual/sql-statements/table-and-view/table/SHOW-ALTER-TABLE',
diff --git
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
new file mode 100644
index 00000000000..a35def989d5
--- /dev/null
+++
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION.md
@@ -0,0 +1,173 @@
+---
+{
+ "title": "ALTER TABLE DISTRIBUTION",
+ "language": "en",
+ "description": "This statement is used to modify the default distribution
bucket configuration of a partitioned table."
+}
+---
+
+## Description
+
+This statement is used to modify the default distribution bucket configuration
of a partitioned table. This operation is synchronous, and the return of the
command indicates the completion of the execution.
+
+This statement only changes the default bucket count for **newly created
partitions**. Existing partitions retain their original bucket count unchanged.
+
+grammar:
+
+```sql
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(column1[,
column2, ...]) BUCKETS { num | AUTO };
+ALTER TABLE [database.]table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM BUCKETS
{ num | AUTO };
+```
+
+Note:
+
+- `num`: A positive integer specifying a fixed number of buckets for new
partitions.
+- `AUTO`: Let the system automatically determine the number of buckets for new
partitions based on data volume and cluster configuration.
+- The distribution type (HASH or RANDOM) and distribution columns must remain
the same as the original table definition. Only the bucket count can be changed.
+- This statement only applies to **partitioned tables** (RANGE or LIST
partitioned). Unpartitioned tables are not supported.
+- This statement is not supported on **Colocate** tables.
+- You can switch freely between a fixed bucket count and `AUTO`, and perform
multiple modifications in sequence.
+
+### Interaction with AUTO PARTITION
+
+For tables using [AUTO
PARTITION](../../../../table-design/data-partitioning/auto-partitioning), new
partitions that are automatically created by data insertion after executing
`ALTER TABLE MODIFY DISTRIBUTION` will use the new bucket configuration.
Partitions that were already auto-created before the modification remain
unchanged.
+
+For example, if an AUTO PARTITION table originally uses `BUCKETS 5` and you
modify it to `BUCKETS 8`, any subsequent INSERT that triggers the creation of a
new auto partition will assign 8 buckets to that partition. If you further
modify it to `BUCKETS AUTO`, newly auto-created partitions will have their
bucket count determined automatically by the system.
+
+### Interaction with Dynamic Partition
+
+For tables using [Dynamic
Partition](../../../../table-design/data-partitioning/dynamic-partitioning),
new partitions that are automatically created by the dynamic partition
scheduler after executing `ALTER TABLE MODIFY DISTRIBUTION` will use the new
bucket configuration. Existing dynamic partitions remain unchanged.
+
+Note that Dynamic Partition tables also support the
`dynamic_partition.buckets` property. If both are configured, the
`dynamic_partition.buckets` property takes precedence for dynamically created
partitions. To use the table-level default bucket count (set by `MODIFY
DISTRIBUTION`) for dynamic partitions, ensure that `dynamic_partition.buckets`
is not explicitly set, or update it accordingly via `ALTER TABLE ... SET
("dynamic_partition.buckets" = "...")`.
+
+## Example
+
+1. Modify the default bucket count of a RANGE partitioned table with HASH
distribution from the original value to 10
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 10;
+```
+
+After this, any newly added partition will use 10 buckets:
+
+```sql
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 will have 10 buckets; existing partitions remain unchanged
+```
+
+2. Switch from a fixed bucket count to AUTO
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+```
+
+After this, newly created partitions will have their bucket count
automatically determined by the system.
+
+3. Switch from AUTO back to a fixed bucket count
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 3;
+```
+
+4. Modify the default bucket count of a LIST partitioned table
+
+```sql
+ALTER TABLE example_db.my_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+```
+
+5. Modify the default bucket count of a table with RANDOM distribution
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS 12;
+```
+
+6. Switch a RANDOM distribution table to AUTO buckets
+
+```sql
+ALTER TABLE example_db.my_random_table MODIFY DISTRIBUTION DISTRIBUTED BY
RANDOM BUCKETS AUTO;
+```
+
+7. Modify the default bucket count of an AUTO PARTITION table (RANGE)
+
+```sql
+-- Original table uses AUTO PARTITION BY RANGE with BUCKETS 5
+ALTER TABLE example_db.my_auto_range_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 8;
+
+-- New auto-created partitions from subsequent INSERT will use 8 buckets
+INSERT INTO example_db.my_auto_range_table VALUES ('2024-01-03', 3);
+```
+
+8. Modify the default bucket count of an AUTO PARTITION table (LIST)
+
+```sql
+-- Original table uses AUTO PARTITION BY LIST with BUCKETS 4
+ALTER TABLE example_db.my_auto_list_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 7;
+
+-- New auto-created partitions from subsequent INSERT will use 7 buckets
+INSERT INTO example_db.my_auto_list_table VALUES ('ccc', 3);
+```
+
+9. Switch an AUTO PARTITION table from AUTO buckets to fixed, and back
+
+```sql
+-- Table originally created with BUCKETS AUTO
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 5;
+-- New partitions will use 5 buckets
+
+ALTER TABLE example_db.my_auto_auto_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS AUTO;
+-- New partitions will return to system-determined bucket count
+```
+
+10. Multiple sequential modifications
+
+```sql
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 4;
+ALTER TABLE example_db.my_table ADD PARTITION p2 VALUES LESS THAN ('20');
+-- p2 has 4 buckets
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS AUTO;
+ALTER TABLE example_db.my_table ADD PARTITION p3 VALUES LESS THAN ('30');
+-- p3 has system-determined bucket count
+
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1)
BUCKETS 6;
+ALTER TABLE example_db.my_table ADD PARTITION p4 VALUES LESS THAN ('40');
+-- p4 has 6 buckets
+```
+
+11. Error cases
+
+Colocate tables are not supported:
+
+```sql
+-- This will fail with: "Cannot change default bucket number of colocate table"
+ALTER TABLE example_db.my_colocate_table MODIFY DISTRIBUTION DISTRIBUTED BY
HASH(k1) BUCKETS 10;
+```
+
+Unpartitioned tables are not supported:
+
+```sql
+-- This will fail with: "Only support change partitioned table's distribution"
+ALTER TABLE example_db.my_unpartitioned_table MODIFY DISTRIBUTION DISTRIBUTED
BY HASH(k1) BUCKETS 10;
+```
+
+Cannot change the distribution type:
+
+```sql
+-- Original table uses HASH distribution; changing to RANDOM will fail
+-- Error: "Cannot change distribution type"
+ALTER TABLE example_db.my_hash_table MODIFY DISTRIBUTION DISTRIBUTED BY RANDOM
BUCKETS 10;
+```
+
+Cannot change the distribution columns:
+
+```sql
+-- Original table uses HASH(k1); changing to HASH(k2) will fail
+-- Error: "Cannot assign hash distribution with different distribution cols"
+ALTER TABLE example_db.my_table MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k2)
BUCKETS 10;
+```
+
+## Keywords
+
+```text
+ALTER, TABLE, DISTRIBUTION, MODIFY DISTRIBUTION, BUCKETS, ALTER TABLE
+```
diff --git
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
index 50bb48b7b11..201b9f160b7 100644
---
a/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
+++
b/versioned_docs/version-4.x/sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY.md
@@ -119,7 +119,7 @@ ALTER TABLE example_db.my_table MODIFY DISTRIBUTION
DISTRIBUTED BY HASH(k1) BUCK
Note:
-- Only support non colocate table with RANGE partition and HASH distribution
+- Only support partitioned non-Colocate tables. See [ALTER TABLE
DISTRIBUTION](./ALTER-TABLE-DISTRIBUTION) for more details.
9. Modify table comments
diff --git a/versioned_sidebars/version-4.x-sidebars.json
b/versioned_sidebars/version-4.x-sidebars.json
index eca94a53522..a6c6313cf71 100644
--- a/versioned_sidebars/version-4.x-sidebars.json
+++ b/versioned_sidebars/version-4.x-sidebars.json
@@ -2262,6 +2262,7 @@
"sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-REPLACE",
"sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-PROPERTY",
"sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-COMMENT",
+
"sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-DISTRIBUTION",
"sql-manual/sql-statements/table-and-view/table/ALTER-TABLE-ADD-GENERATED-COLUMN",
"sql-manual/sql-statements/table-and-view/table/CANCEL-ALTER-TABLE",
"sql-manual/sql-statements/table-and-view/table/SHOW-ALTER-TABLE",
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]