Skip to content

Commit e6c56e6

Browse files
AI Translate 01-table to Simplified-Chinese (#2736)
* [INIT] Start translation to Simplified-Chinese * ๐ŸŒ Translate 60-optimize-table.md to Simplified-Chinese --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 2692a1e commit e6c56e6

File tree

2 files changed

+45
-129
lines changed

2 files changed

+45
-129
lines changed

โ€Ž.translation-initโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Translation initialization: 2025-09-03T09:07:20.601831
1+
Translation initialization: 2025-09-03T13:05:30.749701

โ€Ždocs/cn/sql-reference/10-sql-commands/00-ddl/01-table/60-optimize-table.mdโ€Ž

Lines changed: 44 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -8,66 +8,65 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
88

99
import DetailsWrap from '@site/src/components/DetailsWrap';
1010

11-
ๅœจ Databend ไธญไผ˜ๅŒ–่กจๅŒ…ๆ‹ฌๅŽ‹็ผฉๆˆ–ๆธ…้™คๅކๅฒๆ•ฐๆฎ๏ผŒไปฅ่Š‚็œๅญ˜ๅ‚จ็ฉบ้—ดๅนถๆ้ซ˜ๆŸฅ่ฏขๆ€ง่ƒฝใ€‚
11+
ๅœจ Databend ไธญไผ˜ๅŒ–่กจ๏ผŒๅณ้€š่ฟ‡ๅˆๅนถๆˆ–ๆธ…็†ๅކๅฒๆ•ฐๆฎๆฅ่Š‚็œๅญ˜ๅ‚จ็ฉบ้—ดๅนถๆๅ‡ๆŸฅ่ฏขๆ€ง่ƒฝใ€‚
1212

1313
<DetailsWrap>
1414

1515
<details>
16-
<summary>ไธบไป€ไนˆ่ฆไผ˜ๅŒ–๏ผŸ</summary>
17-
<div>Databend ไฝฟ็”จ Parquet ๆ ผๅผๅฐ†ๆ•ฐๆฎๅญ˜ๅ‚จๅœจ่กจไธญ๏ผŒParquet ๆ ผๅผ่ขซ็ป„็ป‡ๆˆๅ—ใ€‚ๆญคๅค–๏ผŒDatabend ๆ”ฏๆŒๆ—ถ้—ดๅ›žๆบฏๅŠŸ่ƒฝ๏ผŒๅ…ถไธญๆฏไธชไฟฎๆ”น่กจ็š„ๆ“ไฝœ้ƒฝไผš็”Ÿๆˆไธ€ไธช Parquet ๆ–‡ไปถ๏ผŒ่ฏฅๆ–‡ไปถๆ•่Žทๅนถๅๆ˜ ๅฏน่กจๆ‰€ๅš็š„ๆ›ดๆ”นใ€‚</div><br/>
16+
<summary>ไธบไฝ•้œ€่ฆไผ˜ๅŒ–๏ผŸ</summary>
17+
<div>Databend ไฝฟ็”จ Parquet ๆ ผๅผๅฐ†ๆ•ฐๆฎๅญ˜ๅ‚จๅœจ่กจไธญ๏ผŒๅนถๆŒ‰ๅ—๏ผˆBlock๏ผ‰็ป„็ป‡ใ€‚ๆญคๅค–๏ผŒDatabend ๆ”ฏๆŒๆ—ถ้—ดๅ›žๆบฏ๏ผˆTime Travel๏ผ‰ๅŠŸ่ƒฝ๏ผŒๆฏๆฌกไฟฎๆ”น่กจ็š„ๆ“ไฝœ้ƒฝไผš็”Ÿๆˆไธ€ไธช Parquet ๆ–‡ไปถ๏ผŒ็”จไบŽๆ•่Žทๅนถๅๆ˜ ๅฏน่กจ็š„ๅ˜ๆ›ดใ€‚</div><br/>
1818

19-
<div>้š็€ๆ—ถ้—ด็š„ๆŽจ็งป๏ผŒๅฝ“ไธ€ไธช่กจ็งฏ็ดฏไบ†ๆ›ดๅคš็š„ Parquet ๆ–‡ไปถๆ—ถ๏ผŒๅฏ่ƒฝไผšๅฏผ่‡ดๆ€ง่ƒฝ้—ฎ้ข˜ๅ’Œๅญ˜ๅ‚จ้œ€ๆฑ‚็š„ๅขžๅŠ ใ€‚ไธบไบ†ไผ˜ๅŒ–่กจ็š„ๆ€ง่ƒฝ๏ผŒๅฏไปฅๅˆ ้™คไธๅ†้œ€่ฆ็š„ๅކๅฒ Parquet ๆ–‡ไปถใ€‚่ฟ™็งไผ˜ๅŒ–ๆœ‰ๅŠฉไบŽๆ้ซ˜ๆŸฅ่ฏขๆ€ง่ƒฝๅนถๅ‡ๅฐ‘่กจไฝฟ็”จ็š„ๅญ˜ๅ‚จ็ฉบ้—ด้‡ใ€‚</div>
19+
<div>้š็€ๆ—ถ้—ดๆŽจ็งป๏ผŒ่กจไผš็ดฏ็งฏๅคง้‡ Parquet ๆ–‡ไปถ๏ผŒๅฏ่ƒฝๅฏผ่‡ดๆ€ง่ƒฝไธ‹้™ๅ’Œๅญ˜ๅ‚จ้œ€ๆฑ‚ๅขžๅŠ ใ€‚ไธบไผ˜ๅŒ–่กจๆ€ง่ƒฝ๏ผŒๅฏๅœจไธๅ†้œ€่ฆๆ—ถๅˆ ้™คๅކๅฒ Parquet ๆ–‡ไปถใ€‚่ฟ™็งไผ˜ๅŒ–ๆœ‰ๅŠฉไบŽๆๅ‡ๆŸฅ่ฏขๆ€ง่ƒฝๅนถๅ‡ๅฐ‘่กจๅ ็”จ็š„ๅญ˜ๅ‚จ็ฉบ้—ดใ€‚</div>
2020
</details>
2121

2222
</DetailsWrap>
2323

24-
## Databend ๆ•ฐๆฎๅญ˜ๅ‚จ๏ผšๅฟซ็…งใ€ๆฎตๅ’Œๅ—
24+
## Databend ๆ•ฐๆฎๅญ˜ๅ‚จ๏ผšๅฟซ็…งใ€ๆฎตไธŽๅ—
2525

26-
ๅฟซ็…งใ€ๆฎตๅ’Œๅ—ๆ˜ฏ Databend ็”จไบŽๆ•ฐๆฎๅญ˜ๅ‚จ็š„ๆฆ‚ๅฟตใ€‚Databend ไฝฟ็”จๅฎƒไปฌๆฅๆž„ๅปบ็”จไบŽๅญ˜ๅ‚จ่กจๆ•ฐๆฎ็š„ๅˆ†ๅฑ‚็ป“ๆž„ใ€‚
26+
ๅฟซ็…ง๏ผˆSnapshot๏ผ‰ใ€ๆฎต๏ผˆSegment๏ผ‰ๅ’Œๅ—๏ผˆBlock๏ผ‰ๆ˜ฏ Databend ็”จไบŽๆ•ฐๆฎๅญ˜ๅ‚จ็š„ๆ ธๅฟƒๆฆ‚ๅฟต๏ผŒDatabend ๅˆฉ็”จๅฎƒไปฌๆž„ๅปบ่กจๆ•ฐๆฎ็š„ๅˆ†ๅฑ‚ๅญ˜ๅ‚จ็ป“ๆž„ใ€‚
2727

2828
![](/img/sql/storage-structure.PNG)
2929

30-
Databend ๅœจๆ•ฐๆฎๆ›ดๆ–ฐๆ—ถ่‡ชๅŠจๅˆ›ๅปบ่กจๅฟซ็…งใ€‚ๅฟซ็…ง่กจ็คบ่กจๆฎตๅ…ƒๆ•ฐๆฎ็š„็‰ˆๆœฌใ€‚
30+
Databend ๅœจๆ•ฐๆฎๆ›ดๆ–ฐๆ—ถไผš่‡ชๅŠจๅˆ›ๅปบ่กจๅฟซ็…งใ€‚ๅฟซ็…งไปฃ่กจ่กจๆŸไธ€็‰ˆๆœฌ็š„ๆฎตๅ…ƒๆ•ฐๆฎใ€‚
3131

32-
ๅฝ“ไฝฟ็”จ Databend ๆ—ถ๏ผŒๅฝ“ๆ‚จไฝฟ็”จ [AT](../../20-query-syntax/03-query-at.md) ๅญๅฅๆฃ€็ดขๅ’ŒๆŸฅ่ฏข่กจ็š„ๅ…ˆๅ‰็‰ˆๆœฌ็š„ๆ•ฐๆฎๆ—ถ๏ผŒๆ‚จๆœ€ๆœ‰ๅฏ่ƒฝไฝฟ็”จๅฟซ็…ง ID ่ฎฟ้—ฎๅฟซ็…งใ€‚
32+
ไฝฟ็”จ Databend ๆ—ถ๏ผŒ่‹ฅ้€š่ฟ‡ [AT](../../20-query-syntax/03-query-at.md) ๅญๅฅๆฃ€็ดขๅนถๆŸฅ่ฏข่กจ็š„ๅކๅฒ็‰ˆๆœฌๆ•ฐๆฎ๏ผŒ้€šๅธธ้œ€ๅ€ŸๅŠฉๅฟซ็…ง ID ่ฎฟ้—ฎๅฟซ็…งใ€‚
3333

34-
ๅฟซ็…งๆ˜ฏไธ€ไธช JSON ๆ–‡ไปถ๏ผŒๅฎƒไธไฟๅญ˜่กจ็š„ๆ•ฐๆฎ๏ผŒไฝ†ๆŒ‡็คบๅฟซ็…ง้“พๆŽฅๅˆฐ็š„ๆฎตใ€‚ๅฆ‚ๆžœๆ‚จๅฏน่กจ่ฟ่กŒ [FUSE_SNAPSHOT](../../../20-sql-functions/16-system-functions/fuse_snapshot.md)๏ผŒๆ‚จๅฏไปฅๆ‰พๅˆฐไธบ่ฏฅ่กจไฟๅญ˜็š„ๅฟซ็…งใ€‚
34+
ๅฟซ็…งๆ˜ฏไธ€ไธช JSON ๆ–‡ไปถ๏ผŒไธๅญ˜ๅ‚จ่กจๆ•ฐๆฎ๏ผŒไฝ†่ฎฐๅฝ•ไบ†ๅฟซ็…งๅ…ณ่”็š„ๆฎตใ€‚ๅฏน่กจๆ‰ง่กŒ [FUSE_SNAPSHOT](../../../20-sql-functions/16-system-functions/fuse_snapshot.md) ๅฏๆŸฅ็œ‹ไฟๅญ˜็š„ๅฟซ็…งใ€‚
3535

36-
ๆฎตๆ˜ฏไธ€ไธช JSON ๆ–‡ไปถ๏ผŒ็”จไบŽ็ป„็ป‡ๅญ˜ๅ‚จๆ•ฐๆฎ็š„ๅญ˜ๅ‚จๅ—๏ผˆ่‡ณๅฐ‘ 1 ไธช๏ผŒๆœ€ๅคš 1,000 ไธช๏ผ‰ใ€‚ๅฆ‚ๆžœๆ‚จไฝฟ็”จๅฟซ็…ง ID ๅฏนๅฟซ็…ง่ฟ่กŒ [FUSE_SEGMENT](../../../20-sql-functions/16-system-functions/fuse_segment.md)๏ผŒๆ‚จๅฏไปฅๆ‰พๅˆฐๅฟซ็…งๅผ•็”จ็š„ๆฎตใ€‚
36+
ๆฎตๆ˜ฏไธ€ไธช JSON ๆ–‡ไปถ๏ผŒ็”จไบŽ็ป„็ป‡ๅญ˜ๅ‚จๆ•ฐๆฎ็š„ๅ—๏ผˆ่‡ณๅฐ‘ 1 ไธช๏ผŒๆœ€ๅคš 1,000 ไธช๏ผ‰ใ€‚ไฝฟ็”จๅฟซ็…ง ID ๅฏนๅฟซ็…งๆ‰ง่กŒ [FUSE_SEGMENT](../../../20-sql-functions/16-system-functions/fuse_segment.md) ๅฏๆŸฅ็œ‹่ฏฅๅฟซ็…งๅผ•็”จ็š„ๆฎตใ€‚
3737

38-
Databends ๅฐ†ๅฎž้™…่กจๆ•ฐๆฎไฟๅญ˜ๅœจ parquet ๆ–‡ไปถไธญ๏ผŒๅนถๅฐ†ๆฏไธช parquet ๆ–‡ไปถ่ง†ไธบไธ€ไธชๅ—ใ€‚ๅฆ‚ๆžœๆ‚จไฝฟ็”จๅฟซ็…ง ID ๅฏนๅฟซ็…ง่ฟ่กŒ [FUSE_BLOCK](../../../20-sql-functions/16-system-functions/fuse_block.md)๏ผŒๆ‚จๅฏไปฅๆ‰พๅˆฐๅฟซ็…งๅผ•็”จ็š„ๅ—ใ€‚
38+
Databend ๅฐ†ๅฎž้™…่กจๆ•ฐๆฎๅญ˜ๅ‚จๅœจ Parquet ๆ–‡ไปถไธญ๏ผŒๅนถๅฐ†ๆฏไธช Parquet ๆ–‡ไปถ่ง†ไธบไธ€ไธชๅ—ใ€‚ไฝฟ็”จๅฟซ็…ง ID ๅฏนๅฟซ็…งๆ‰ง่กŒ [FUSE_BLOCK](../../../20-sql-functions/16-system-functions/fuse_block.md) ๅฏๆŸฅ็œ‹่ฏฅๅฟซ็…งๅผ•็”จ็š„ๅ—ใ€‚
3939

40-
Databend ไธบๆฏไธชๆ•ฐๆฎๅบ“ๅ’Œ่กจๅˆ›ๅปบไธ€ไธชๅ”ฏไธ€็š„ ID๏ผŒ็”จไบŽๅญ˜ๅ‚จๅฟซ็…งใ€ๆฎตๅ’Œๅ—ๆ–‡ไปถ๏ผŒๅนถๅฐ†ๅฎƒไปฌไฟๅญ˜ๅˆฐๅฏน่ฑกๅญ˜ๅ‚จไธญ็š„่ทฏๅพ„ `<bucket_name>/<tenant_id>/<db_id>/<table_id>/`ใ€‚ๆฏไธชๅฟซ็…งใ€ๆฎตๅ’Œๅ—ๆ–‡ไปถ้ƒฝไฝฟ็”จ UUID๏ผˆ32 ไธชๅญ—็ฌฆ็š„ๅฐๅ†™ๅๅ…ญ่ฟ›ๅˆถๅญ—็ฌฆไธฒ๏ผ‰ๅ‘ฝๅใ€‚
40+
Databend ไธบๆฏไธชๆ•ฐๆฎๅบ“ๅ’Œ่กจๅˆ›ๅปบๅ”ฏไธ€ ID๏ผŒ็”จไบŽๅญ˜ๅ‚จๅฟซ็…งใ€ๆฎตๅ’Œๅ—ๆ–‡ไปถ๏ผŒๅนถๅฐ†ๅ…ถไฟๅญ˜่‡ณๅฏน่ฑกๅญ˜ๅ‚จ่ทฏๅพ„ `<bucket_name>/<tenant_id>/<db_id>/<table_id>/`ใ€‚ๆฏไธชๅฟซ็…งใ€ๆฎตๅ’Œๅ—ๆ–‡ไปถๅ‡ไปฅ UUID๏ผˆ32 ไฝๅฐๅ†™ๅๅ…ญ่ฟ›ๅˆถๅญ—็ฌฆไธฒ๏ผ‰ๅ‘ฝๅใ€‚
4141

42-
| ๆ–‡ไปถ | ๆ ผๅผ | ๆ–‡ไปถๅ | ๅญ˜ๅ‚จๆ–‡ไปถๅคน |
42+
| ๆ–‡ไปถ | ๆ ผๅผ | ๆ–‡ไปถๅ | ๅญ˜ๅ‚จๆ–‡ไปถๅคน |
4343
|----------|---------|---------------------------------|-----------------------------------------------------|
44-
| Snapshot | JSON | `<32bitUUID>_<version>.json` | `<bucket_name>/<tenant_id>/<db_id>/<table_id>/_ss/` |
45-
| Segment | JSON | `<32bitUUID>_<version>.json` | `<bucket_name>/<tenant_id>/<db_id>/<table_id>/_sg/` |
46-
| Block | parquet | `<32bitUUID>_<version>.parquet` | `<bucket_name>/<tenant_id>/<db_id>/<table_id>/_b/` |
44+
| ๅฟซ็…ง | JSON | `<32bitUUID>_<version>.json` | `<bucket_name>/<tenant_id>/<db_id>/<table_id>/_ss/` |
45+
| ๆฎต | JSON | `<32bitUUID>_<version>.json` | `<bucket_name>/<tenant_id>/<db_id>/<table_id>/_sg/` |
46+
| ๅ— | parquet | `<32bitUUID>_<version>.parquet` | `<bucket_name>/<tenant_id>/<db_id>/<table_id>/_b/` |
4747

4848
## ่กจไผ˜ๅŒ–
4949

50-
ๅœจ Databend ไธญ๏ผŒๅปบ่ฎฎไปฅ 100MB๏ผˆๆœชๅŽ‹็ผฉ๏ผ‰ๆˆ– 1,000,000 ่กŒไฝœไธบ็†ๆƒณ็š„ๅ—ๅคงๅฐ๏ผŒๆฏไธชๆฎต็”ฑ 1,000 ไธชๅ—็ป„ๆˆใ€‚ไธบไบ†ๆœ€ๅคง้™ๅบฆๅœฐไผ˜ๅŒ–่กจ๏ผŒ่‡ณๅ…ณ้‡่ฆ็š„ๆ˜ฏ่ฆๆธ…ๆฅšๅœฐไบ†่งฃไฝ•ๆ—ถไปฅๅŠๅฆ‚ไฝ•ๅบ”็”จๅ„็งไผ˜ๅŒ–ๆŠ€ๆœฏ๏ผŒไพ‹ๅฆ‚ [ๆฎตๅŽ‹็ผฉ](#segment-compaction)ใ€[ๅ—ๅŽ‹็ผฉ](#block-compaction) ๅ’Œ [ๆธ…้™ค](#purging)ใ€‚
50+
ๅœจ Databend ไธญ๏ผŒๅปบ่ฎฎ็š„็†ๆƒณๅ—ๅคงๅฐไธบ 100 MB๏ผˆๆœชๅŽ‹็ผฉ๏ผ‰ๆˆ– 1,000,000 ่กŒ๏ผŒๆฏไธชๆฎตๅŒ…ๅซ 1,000 ไธชๅ—ใ€‚ไธบๆœ€ๅคงๅŒ–่กจไผ˜ๅŒ–ๆ•ˆๆžœ๏ผŒ้œ€ๆ˜Ž็กฎไฝ•ๆ—ถไปฅๅŠๅฆ‚ไฝ•ๅบ”็”จๅ„็งไผ˜ๅŒ–ๆŠ€ๆœฏ๏ผŒๅฆ‚[ๆฎตๅˆๅนถ](#segment-compaction)ๅ’Œ[ๅ—ๅˆๅนถ](#block-compaction)ใ€‚
51+
- ไฝฟ็”จ COPY INTO ๆˆ– REPLACE INTO ๅ‘ฝไปคๅ‘ๅŒ…ๅซ่š็ฐ‡้”ฎ๏ผˆCluster Key๏ผ‰็š„่กจๅ†™ๅ…ฅๆ•ฐๆฎๆ—ถ๏ผŒDatabend ไผš่‡ชๅŠจ่งฆๅ‘้‡่š็ฐ‡ไปฅๅŠๆฎตๅ’Œๅ—ๅˆๅนถๆต็จ‹ใ€‚
5152

52-
- ๅฝ“ไฝฟ็”จ COPY INTO ๆˆ– REPLACE INTO ๅ‘ฝไปคๅฐ†ๆ•ฐๆฎๅ†™ๅ…ฅๅŒ…ๅซ่š็ฐ‡้”ฎ็š„่กจๆ—ถ๏ผŒDatabend ๅฐ†่‡ชๅŠจๅฏๅŠจ้‡ๆ–ฐ่š็ฐ‡่ฟ‡็จ‹๏ผŒไปฅๅŠๆฎตๅ’Œๅ—ๅŽ‹็ผฉ่ฟ‡็จ‹ใ€‚
53-
54-
- ๆฎตๅ’Œๅ—ๅŽ‹็ผฉๆ”ฏๆŒๅœจ้›†็พค็Žฏๅขƒไธญ่ฟ›่กŒๅˆ†ๅธƒๅผๆ‰ง่กŒใ€‚ๆ‚จๅฏไปฅ้€š่ฟ‡ๅฐ† ENABLE_DISTRIBUTED_COMPACT ่ฎพ็ฝฎไธบ 1 ๆฅๅฏ็”จๅฎƒไปฌใ€‚่ฟ™ๆœ‰ๅŠฉไบŽๆ้ซ˜้›†็พค็Žฏๅขƒไธญ็š„ๆ•ฐๆฎๆŸฅ่ฏขๆ€ง่ƒฝๅ’Œๅฏไผธ็ผฉๆ€งใ€‚
53+
- ๆฎตไธŽๅ—ๅˆๅนถๆ”ฏๆŒๅœจ้›†็พค็Žฏๅขƒไธญๅˆ†ๅธƒๅผๆ‰ง่กŒใ€‚ๅฏ้€š่ฟ‡่ฎพ็ฝฎ ENABLE_DISTRIBUTED_COMPACT ไธบ 1 ๅฏ็”จ๏ผŒไปฅๆๅ‡้›†็พค็Žฏๅขƒไธญ็š„ๆŸฅ่ฏขๆ€ง่ƒฝๅ’Œๅฏๆ‰ฉๅฑ•ๆ€งใ€‚
5554

5655
```sql
5756
SET enable_distributed_compact = 1;
5857
```
5958

60-
### ๆฎตๅŽ‹็ผฉ
59+
### ๆฎตๅˆๅนถ๏ผˆSegment Compaction๏ผ‰
6160

62-
ๅฝ“ไธ€ไธช่กจๆœ‰ๅคชๅคšๅฐๆฎต๏ผˆๆฏไธชๆฎตๅฐไบŽ `100 blocks`๏ผ‰ๆ—ถ๏ผŒๅŽ‹็ผฉๆฎตใ€‚
61+
ๅฝ“่กจๅญ˜ๅœจ่ฟ‡ๅคšๅฐๆฎต๏ผˆๆฏๆฎตๅฐ‘ไบŽ `100 ไธชๅ—`๏ผ‰ๆ—ถ๏ผŒ้œ€่ฟ›่กŒๆฎตๅˆๅนถใ€‚
6362
```sql
6463
SELECT
6564
block_count,
6665
segment_count,
6766
IF(
6867
block_count / segment_count < 100,
69-
'The table needs segment compact now',
70-
'The table does not need segment compact now'
68+
'่ฏฅ่กจๅฝ“ๅ‰้œ€่ฟ›่กŒๆฎตๅˆๅนถ',
69+
'่ฏฅ่กจๅฝ“ๅ‰ๆ— ้œ€ๆฎตๅˆๅนถ'
7170
) AS advice
7271
FROM
7372
fuse_snapshot('your-database', 'your-table')
@@ -80,21 +79,21 @@ FROM
8079
OPTIMIZE TABLE [database.]table_name COMPACT SEGMENT [LIMIT <segment_count>]
8180
```
8281

83-
้€š่ฟ‡ๅฐ†ๅฐๆฎตๅˆๅนถไธบๅคงๆฎตๆฅๅŽ‹็ผฉ่กจๆ•ฐๆฎใ€‚
82+
้€š่ฟ‡ๅˆๅนถๅฐๆฎตไธบ่พƒๅคงๆฎตๆฅไผ˜ๅŒ–่กจๆ•ฐๆฎใ€‚
8483

85-
- ้€‰้กน LIMIT ่ฎพ็ฝฎ่ฆๅŽ‹็ผฉ็š„ๆœ€ๅคงๆฎตๆ•ฐใ€‚ๅœจ่ฟ™็งๆƒ…ๅ†ตไธ‹๏ผŒDatabend ๅฐ†้€‰ๆ‹ฉๅนถๅŽ‹็ผฉๆœ€ๆ–ฐ็š„ๆฎตใ€‚
84+
- LIMIT ้€‰้กน่ฎพ็ฝฎๆœ€ๅคงๅˆๅนถๆฎตๆ•ฐ๏ผŒDatabend ๅฐ†้€‰ๆ‹ฉๅนถๅˆๅนถๆœ€ๆ–ฐๆฎตใ€‚
8685

8786
**็คบไพ‹**
8887

8988
```sql
90-
-- Check whether need segment compact
89+
-- ๆฃ€ๆŸฅๆ˜ฏๅฆ้œ€ๆฎตๅˆๅนถ
9190
SELECT
9291
block_count,
9392
segment_count,
9493
IF(
9594
block_count / segment_count < 100,
96-
'The table needs segment compact now',
97-
'The table does not need segment compact now'
95+
'่ฏฅ่กจๅฝ“ๅ‰้œ€่ฟ›่กŒๆฎตๅˆๅนถ',
96+
'่ฏฅ่กจๅฝ“ๅ‰ๆ— ้œ€ๆฎตๅˆๅนถ'
9897
) AS advice
9998
FROM
10099
fuse_snapshot('hits', 'hits');
@@ -105,17 +104,17 @@ FROM
105104
| 751 | 32 | The table needs segment compact now |
106105
+-------------+---------------+-------------------------------------+
107106

108-
-- Compact segment
107+
-- ๆ‰ง่กŒๆฎตๅˆๅนถ
109108
OPTIMIZE TABLE hits COMPACT SEGMENT;
110109

111-
-- Check again
110+
-- ๅ†ๆฌกๆฃ€ๆŸฅ
112111
SELECT
113112
block_count,
114113
segment_count,
115114
IF(
116115
block_count / segment_count < 100,
117-
'The table needs segment compact now',
118-
'The table does not need segment compact now'
116+
'่ฏฅ่กจๅฝ“ๅ‰้œ€่ฟ›่กŒๆฎตๅˆๅนถ',
117+
'่ฏฅ่กจๅฝ“ๅ‰ๆ— ้œ€ๆฎตๅˆๅนถ'
119118
) AS advice
120119
FROM
121120
fuse_snapshot('hits', 'hits')
@@ -128,130 +127,47 @@ FROM
128127
+-------------+---------------+---------------------------------------------+
129128
```
130129

131-
### ๅ—ๅŽ‹็ผฉ
130+
### ๅ—ๅˆๅนถ๏ผˆBlock Compaction๏ผ‰
132131

133-
ๅฝ“ไธ€ไธช่กจๆœ‰ๅคง้‡ๅฐๅ—ๆˆ–ๅฝ“่ฏฅ่กจๆœ‰ๅพˆ้ซ˜ๆฏ”ไพ‹็š„ๆ’ๅ…ฅใ€ๅˆ ้™คๆˆ–ๆ›ดๆ–ฐ็š„่กŒๆ—ถ๏ผŒๅŽ‹็ผฉๅ—ใ€‚
132+
ๅฝ“่กจๅญ˜ๅœจๅคง้‡ๅฐๅ—๏ผŒๆˆ–ๆ’ๅ…ฅใ€ๅˆ ้™คใ€ๆ›ดๆ–ฐ่กŒๆฏ”ไพ‹่พƒ้ซ˜ๆ—ถ๏ผŒ้œ€่ฟ›่กŒๅ—ๅˆๅนถใ€‚
134133

135-
ๆ‚จๅฏไปฅ้€š่ฟ‡ๆฃ€ๆŸฅๆฏไธชๅ—็š„ๆœชๅŽ‹็ผฉๅคงๅฐๆ˜ฏๅฆๆŽฅ่ฟ‘ `100MB` ็š„ๅฎŒ็พŽๅคงๅฐๆฅๆฃ€ๆŸฅๅฎƒใ€‚
134+
ๅฏ้€š่ฟ‡ๆฃ€ๆŸฅๆฏไธชๅ—็š„ๆœชๅŽ‹็ผฉๅคงๅฐๆ˜ฏๅฆๆŽฅ่ฟ‘็†ๆƒณๅ€ผ `100 MB` ๆฅๅˆคๆ–ญใ€‚
136135

137-
ๅฆ‚ๆžœๅคงๅฐๅฐไบŽ `50MB`๏ผŒๆˆ‘ไปฌๅปบ่ฎฎ่ฟ›่กŒๅ—ๅŽ‹็ผฉ๏ผŒๅ› ไธบๅฎƒ่กจ็คบๆœ‰ๅคชๅคšๅฐๅ—๏ผš
136+
่‹ฅๅคงๅฐๅฐไบŽ `50 MB`๏ผŒๅปบ่ฎฎๆ‰ง่กŒๅ—ๅˆๅนถ๏ผŒ่กจๆ˜Žๅญ˜ๅœจ่ฟ‡ๅคšๅฐๅ—๏ผš
138137

139138
```sql
140139
SELECT
141140
block_count,
142141
humanize_size(bytes_uncompressed / block_count) AS per_block_uncompressed_size,
143142
IF(
144143
bytes_uncompressed / block_count / 1024 / 1024 < 50,
145-
'The table needs block compact now',
146-
'The table does not need block compact now'
144+
'่ฏฅ่กจๅฝ“ๅ‰้œ€่ฟ›่กŒๅ—ๅˆๅนถ',
145+
'่ฏฅ่กจๅฝ“ๅ‰ๆ— ้œ€ๅ—ๅˆๅนถ'
147146
) AS advice
148147
FROM
149148
fuse_snapshot('your-database', 'your-table')
150149
LIMIT 1;
151150
```
152151

153152
:::info
154-
ๆˆ‘ไปฌๅปบ่ฎฎๅ…ˆๆ‰ง่กŒๆฎตๅŽ‹็ผฉ๏ผŒ็„ถๅŽๅ†ๆ‰ง่กŒๅ—ๅŽ‹็ผฉใ€‚
153+
ๅปบ่ฎฎๅ…ˆๆ‰ง่กŒๆฎตๅˆๅนถ๏ผŒๅ†ๆ‰ง่กŒๅ—ๅˆๅนถใ€‚
155154
:::
156155

157156
**่ฏญๆณ•**
158157
```sql
159158
OPTIMIZE TABLE [database.]table_name COMPACT [LIMIT <segment_count>]
160159
```
161-
้€š่ฟ‡ๅฐ†ๅฐๅ—ๅ’Œๆฎตๅˆๅนถไธบๅคงๅ—ๅ’ŒๆฎตๆฅๅŽ‹็ผฉ่กจๆ•ฐๆฎใ€‚
160+
้€š่ฟ‡ๅˆๅนถๅฐๅ—ๅ’Œๆฎตไธบ่พƒๅคงๅ—ๅ’Œๆฎตๆฅไผ˜ๅŒ–่กจๆ•ฐๆฎใ€‚
162161

163-
- ๆญคๅ‘ฝไปคๅˆ›ๅปบๆœ€ๆ–ฐ่กจๆ•ฐๆฎ็š„ๆ–ฐๅฟซ็…ง๏ผˆไปฅๅŠๅŽ‹็ผฉ็š„ๆฎตๅ’Œๅ—๏ผ‰๏ผŒ่€Œไธๅฝฑๅ“็Žฐๆœ‰ๅญ˜ๅ‚จๆ–‡ไปถ๏ผŒๅ› ๆญคๅœจๆ‚จๆธ…้™คๅކๅฒๆ•ฐๆฎไน‹ๅ‰๏ผŒไธไผš้‡Šๆ”พๅญ˜ๅ‚จ็ฉบ้—ดใ€‚
162+
- ่ฏฅๅ‘ฝไปคไผšไธบๆœ€ๆ–ฐ่กจๆ•ฐๆฎๅˆ›ๅปบๆ–ฐๅฟซ็…ง๏ผˆๅซๅˆๅนถๅŽ็š„ๆฎตๅ’Œๅ—๏ผ‰๏ผŒไธๅฝฑๅ“็Žฐๆœ‰ๅญ˜ๅ‚จๆ–‡ไปถ๏ผŒๆ•…้œ€ๆธ…็†ๅކๅฒๆ•ฐๆฎๅŽๆ‰ไผš้‡Šๆ”พๅญ˜ๅ‚จ็ฉบ้—ดใ€‚
164163

165-
- ๆ นๆฎ็ป™ๅฎš่กจ็š„ๅคงๅฐ๏ผŒๅฎŒๆˆๆ‰ง่กŒๅฏ่ƒฝ้œ€่ฆ็›ธๅฝ“้•ฟ็š„ๆ—ถ้—ดใ€‚
164+
- ๆ นๆฎ่กจๅคงๅฐ๏ผŒๆ‰ง่กŒๅฏ่ƒฝ่€—ๆ—ถ่พƒ้•ฟใ€‚
166165

167-
- ้€‰้กน LIMIT ่ฎพ็ฝฎ่ฆๅŽ‹็ผฉ็š„ๆœ€ๅคงๆฎตๆ•ฐใ€‚ๅœจ่ฟ™็งๆƒ…ๅ†ตไธ‹๏ผŒDatabend ๅฐ†้€‰ๆ‹ฉๅนถๅŽ‹็ผฉๆœ€ๆ–ฐ็š„ๆฎตใ€‚
166+
- LIMIT ้€‰้กน่ฎพ็ฝฎๆœ€ๅคงๅˆๅนถๆฎตๆ•ฐ๏ผŒDatabend ๅฐ†้€‰ๆ‹ฉๅนถๅˆๅนถๆœ€ๆ–ฐๆฎตใ€‚
168167

169-
- Databend ๅฐ†ๅœจๅŽ‹็ผฉ่ฟ‡็จ‹ๅŽ่‡ชๅŠจ้‡ๆ–ฐ่š็ฐ‡่š็ฐ‡่กจใ€‚
168+
- ๅˆๅนถๅฎŒๆˆๅŽ๏ผŒDatabend ไผš่‡ชๅŠจๅฏน่š็ฐ‡่กจๆ‰ง่กŒ้‡่š็ฐ‡ใ€‚
170169

171170
**็คบไพ‹**
172171
```sql
173172
OPTIMIZE TABLE my_database.my_table COMPACT LIMIT 50;
174-
```
175-
176-
### ๆธ…้™ค
177-
178-
ๆธ…้™คไผšๆฐธไน…ๅˆ ้™คๅކๅฒๆ•ฐๆฎ๏ผŒๅŒ…ๆ‹ฌๆœชไฝฟ็”จ็š„ๅฟซ็…งใ€ๆฎตๅ’Œๅ—๏ผŒไฝ†ไฟ็•™ๆœŸๅ†…็š„ๅฟซ็…ง๏ผˆๅŒ…ๆ‹ฌๆญคๅฟซ็…งๅผ•็”จ็š„ๆฎตๅ’Œๅ—๏ผ‰้™คๅค–ใ€‚่ฟ™ๅฏไปฅ่Š‚็œๅญ˜ๅ‚จ็ฉบ้—ด๏ผŒไฝ†ๅฏ่ƒฝไผšๅฝฑๅ“ๆ—ถ้—ดๅ›žๆบฏๅŠŸ่ƒฝใ€‚ๅœจไปฅไธ‹ๆƒ…ๅ†ตไธ‹่€ƒ่™‘ๆธ…้™ค๏ผš
179-
180-
- ๅญ˜ๅ‚จๆˆๆœฌๆ˜ฏไธ€ไธชไธป่ฆ้—ฎ้ข˜๏ผŒๅนถไธ”ๆ‚จไธ้œ€่ฆๅކๅฒๆ•ฐๆฎ็”จไบŽๆ—ถ้—ดๅ›žๆบฏๆˆ–ๅ…ถไป–็›ฎ็š„ใ€‚
181-
- ๆ‚จๅทฒ็ปๅŽ‹็ผฉไบ†ๆ‚จ็š„่กจ๏ผŒๅนถไธ”ๆƒณ่ฆๅˆ ้™ค่พƒๆ—ง็š„ใ€ๆœชไฝฟ็”จ็š„็š„ๆ•ฐๆฎใ€‚
182-
183-
:::note
184-
้ป˜่ฎคไฟ็•™ๆœŸไธบ 24 ๅฐๆ—ถ็š„ๅކๅฒๆ•ฐๆฎๅฐ†ไธไผš่ขซๅˆ ้™คใ€‚่ฆ่ฐƒๆ•ดไฟ็•™ๆœŸ๏ผŒ่ฏทไฝฟ็”จ *data_retention_time_in_days* ่ฎพ็ฝฎใ€‚
185-
:::
186-
187-
**่ฏญๆณ•**
188-
189-
```sql
190-
OPTIMIZE TABLE <table_name> PURGE
191-
[ BEFORE
192-
(SNAPSHOT => '<SNAPSHOT_ID>') |
193-
(TIMESTAMP => '<TIMESTAMP>'::TIMESTAMP) |
194-
(STREAM => <stream_name>)
195-
]
196-
[ LIMIT <snapshot_count> ]
197-
```
198-
199-
| ๅ‚ๆ•ฐ | ๆ่ฟฐ |
200-
|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
201-
| BEFORE | ๆŒ‡ๅฎšๆธ…้™คๅކๅฒๆ•ฐๆฎ็š„ๆกไปถใ€‚ๅฎƒไธŽ `SNAPSHOT`ใ€`TIMESTAMP` ๆˆ– `STREAM` ้€‰้กนไธ€่ตทไฝฟ็”จ๏ผŒไปฅๅฎšไน‰ๅบ”ๆธ…้™คๆ•ฐๆฎ็š„ๆ—ถ้—ด็‚นใ€‚<br/>ๅฝ“ๆŒ‡ๅฎš `BEFORE` ้€‰้กนๆ—ถ๏ผŒ่ฏฅๅ‘ฝไปค้ฆ–ๅ…ˆ้€‰ๆ‹ฉไธ€ไธชๅŸบๆœฌๅฟซ็…ง๏ผˆๅฆ‚ๆŒ‡ๅฎš้€‰้กนๆ‰€็คบ๏ผ‰ๆฅๆธ…้™คๅކๅฒๆ•ฐๆฎใ€‚้šๅŽ๏ผŒๅฎƒไผšๅˆ ้™คๅœจๆญคๅŸบๆœฌๅฟซ็…งไน‹ๅ‰็”Ÿๆˆ็š„ๅฟซ็…งใ€‚ๅœจๆŒ‡ๅฎšๅธฆๆœ‰ `BEFORE STREAM` ็š„ๆต็š„ๆƒ…ๅ†ตไธ‹๏ผŒ่ฏฅๅ‘ฝไปคไผšๅฐ†ๅˆ›ๅปบๆตไน‹ๅ‰็š„ๆœ€่ฟ‘ๅฟซ็…ง่ฏ†ๅˆซไธบๅŸบๆœฌๅฟซ็…งใ€‚็„ถๅŽ๏ผŒๅฎƒไผšๅˆ ้™คๅœจๆญคๆœ€่ฟ‘ๅฟซ็…งไน‹ๅ‰็”Ÿๆˆ็š„ๅฟซ็…งใ€‚|
202-
| LIMIT | ่ฎพ็ฝฎ่ฆๆธ…้™ค็š„ๆœ€ๅคงๅฟซ็…งๆ•ฐใ€‚ๆŒ‡ๅฎšๅŽ๏ผŒDatabend ๅฐ†้€‰ๆ‹ฉๅนถๆธ…้™คๆœ€ๆ—ง็š„ๅฟซ็…ง๏ผŒๆœ€ๅคš่พพๅˆฐๆŒ‡ๅฎš็š„่ฎกๆ•ฐใ€‚ |
203-
204-
**็คบไพ‹**
205-
206-
ๆญค็คบไพ‹ๆผ”็คบๅฆ‚ไฝ•ไฝฟ็”จ `BEFORE STREAM` ้€‰้กนๆธ…้™คๅކๅฒๆ•ฐๆฎใ€‚
207-
208-
1. ๅˆ›ๅปบไธ€ไธชๅไธบ `t` ็š„่กจ๏ผŒๅ…ถไธญๅŒ…ๅซไธ€ไธชๅˆ— `a`๏ผŒๅนถๅฐ†ไธค่กŒๅ€ผ 1 ๅ’Œ 2 ๆ’ๅ…ฅๅˆฐ่กจไธญใ€‚
209-
210-
```sql
211-
CREATE TABLE t(a INT);
212-
213-
INSERT INTO t VALUES(1);
214-
INSERT INTO t VALUES(2);
215-
```
216-
217-
2. ๅœจ่กจ `t` ไธŠๅˆ›ๅปบไธ€ไธชๅไธบ `s` ็š„ๆต๏ผŒๅนถๅฐ†ไธ€ไธชๅ€ผไธบ 3 ็š„้™„ๅŠ ่กŒๆทปๅŠ ๅˆฐ่กจไธญใ€‚
218-
219-
```sql
220-
CREATE STREAM s ON TABLE t;
221-
222-
INSERT INTO t VALUES(3);
223-
```
224-
225-
3. ่ฟ”ๅ›ž่กจ `t` ็š„ๅฟซ็…ง ID ๅ’Œ็›ธๅบ”็š„ๆ—ถ้—ดๆˆณใ€‚
226-
227-
```sql
228-
SELECT snapshot_id, timestamp FROM FUSE_SNAPSHOT('default', 't');
229-
230-
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
231-
โ”‚ snapshot_id โ”‚ timestamp โ”‚
232-
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
233-
โ”‚ 00dd8ca67c1f461987f31a6b3a1c3c84 โ”‚ 2024-04-02 18:09:39.157702 โ”‚
234-
โ”‚ e448bb2bf488489dae7294b0a8af38d1 โ”‚ 2024-04-02 18:09:34.986507 โ”‚
235-
โ”‚ 2ac038dd83e741afbae543b170105d63 โ”‚ 2024-04-02 18:09:34.966336 โ”‚
236-
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
237-
238-
-- ไป…ๅ‡บไบŽๆผ”็คบ็›ฎ็š„๏ผŒๅฐ†ๆ•ฐๆฎไฟ็•™ๆ—ถ้—ด่ฎพ็ฝฎไธบ 0ใ€‚ไธๅปบ่ฎฎๅœจ็”Ÿไบงไธญไฝฟ็”จใ€‚
239-
SET data_retention_time_in_days = 0;
240-
```
241-
242-
4. ไฝฟ็”จ `BEFORE STREAM` ้€‰้กนๆธ…้™คๅކๅฒๅฟซ็…งใ€‚
243-
244-
```sql
245-
OPTIMIZE TABLE t PURGE BEFORE (STREAM => s);
246-
247-
-- ่ฏฅๅ‘ฝไปค้€‰ๆ‹ฉๅฟซ็…ง ID e448bb2bf488489dae7294b0a8af38d1 ไฝœไธบๅŸบๆœฌๅฟซ็…ง๏ผŒ่ฏฅๅฟซ็…งๆ˜ฏๅœจๅˆ›ๅปบๆตโ€œsโ€ไน‹ๅ‰็ซ‹ๅณ็”Ÿๆˆ็š„ใ€‚
248-
-- ๅ› ๆญค๏ผŒๅฐ†ๅˆ ้™คๅœจๅŸบๆœฌๅฟซ็…งไน‹ๅ‰็”Ÿๆˆ็š„ๅฟซ็…ง ID 2ac038dd83e741afbae543b170105d63ใ€‚
249-
SELECT snapshot_id, timestamp FROM FUSE_SNAPSHOT('default', 't');
250-
251-
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
252-
โ”‚ snapshot_id โ”‚ timestamp โ”‚
253-
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
254-
โ”‚ 00dd8ca67c1f461987f31a6b3a1c3c84 โ”‚ 2024-04-02 18:09:39.157702 โ”‚
255-
โ”‚ e448bb2bf488489dae7294b0a8af38d1 โ”‚ 2024-04-02 18:09:34.986507 โ”‚
256-
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
257173
```

0 commit comments

Comments
ย (0)