@@ -8,66 +8,65 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
8
8
9
9
import DetailsWrap from '@site/src /components/DetailsWrap';
10
10
11
- ๅจ Databend ไธญไผๅ่กจๅ
ๆฌๅ็ผฉๆๆธ
้คๅๅฒๆฐๆฎ๏ผไปฅ่็ๅญๅจ็ฉบ้ดๅนถๆ้ซๆฅ่ฏขๆง่ฝ ใ
11
+ ๅจ Databend ไธญไผๅ่กจ๏ผๅณ้่ฟๅๅนถๆๆธ
็ๅๅฒๆฐๆฎๆฅ่็ๅญๅจ็ฉบ้ดๅนถๆๅๆฅ่ฏขๆง่ฝ ใ
12
12
13
13
<DetailsWrap >
14
14
15
15
<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/>
18
18
19
- <div >้็ๆถ้ด็ๆจ็งป๏ผๅฝไธไธช่กจ็งฏ็ดฏไบๆดๅค็ Parquet ๆไปถๆถ๏ผๅฏ่ฝไผๅฏผ่ดๆง่ฝ้ฎ้ขๅๅญๅจ้ๆฑ็ๅขๅ ใไธบไบไผๅ่กจ็ๆง่ฝ๏ผๅฏไปฅๅ ้คไธๅ้่ฆ็ๅๅฒ Parquet ๆไปถใ่ฟ็งไผๅๆๅฉไบๆ้ซๆฅ่ฏขๆง่ฝๅนถๅๅฐ่กจไฝฟ็จ็ๅญๅจ็ฉบ้ด้ ใ</div >
19
+ <div >้็ๆถ้ดๆจ็งป๏ผ่กจไผ็ดฏ็งฏๅคง้ Parquet ๆไปถ๏ผๅฏ่ฝๅฏผ่ดๆง่ฝไธ้ๅๅญๅจ้ๆฑๅขๅ ใไธบไผๅ่กจๆง่ฝ๏ผๅฏๅจไธๅ้่ฆๆถๅ ้คๅๅฒ Parquet ๆไปถใ่ฟ็งไผๅๆๅฉไบๆๅๆฅ่ฏขๆง่ฝๅนถๅๅฐ่กจๅ ็จ็ๅญๅจ็ฉบ้ด ใ</div >
20
20
</details >
21
21
22
22
</DetailsWrap >
23
23
24
- ## Databend ๆฐๆฎๅญๅจ๏ผๅฟซ็
งใๆฎตๅๅ
24
+ ## Databend ๆฐๆฎๅญๅจ๏ผๅฟซ็
งใๆฎตไธๅ
25
25
26
- ๅฟซ็
งใๆฎตๅๅๆฏ Databend ็จไบๆฐๆฎๅญๅจ็ๆฆๅฟตใ Databend ไฝฟ็จๅฎไปฌๆฅๆๅปบ็จไบๅญๅจ่กจๆฐๆฎ็ๅๅฑ็ปๆ ใ
26
+ ๅฟซ็
ง๏ผSnapshot๏ผใๆฎต๏ผSegment๏ผๅๅ๏ผBlock๏ผๆฏ Databend ็จไบๆฐๆฎๅญๅจ็ๆ ธๅฟๆฆๅฟต๏ผ Databend ๅฉ็จๅฎไปฌๆๅปบ่กจๆฐๆฎ็ๅๅฑๅญๅจ็ปๆ ใ
27
27
28
28
![ ] ( /img/sql/storage-structure.PNG )
29
29
30
- Databend ๅจๆฐๆฎๆดๆฐๆถ่ชๅจๅๅปบ่กจๅฟซ็
งใๅฟซ็
ง่กจ็คบ่กจๆฎตๅ
ๆฐๆฎ็็ๆฌ ใ
30
+ Databend ๅจๆฐๆฎๆดๆฐๆถไผ่ชๅจๅๅปบ่กจๅฟซ็
งใๅฟซ็
งไปฃ่กจ่กจๆไธ็ๆฌ็ๆฎตๅ
ๆฐๆฎ ใ
31
31
32
- ๅฝไฝฟ็จ Databend ๆถ๏ผๅฝๆจไฝฟ็จ [ AT] ( ../../20-query-syntax/03-query-at.md ) ๅญๅฅๆฃ็ดขๅๆฅ่ฏข่กจ็ๅ
ๅ็ๆฌ็ๆฐๆฎๆถ๏ผๆจๆๆๅฏ่ฝไฝฟ็จๅฟซ็
ง ID ่ฎฟ้ฎๅฟซ็
งใ
32
+ ไฝฟ็จ Databend ๆถ๏ผ่ฅ้่ฟ [ AT] ( ../../20-query-syntax/03-query-at.md ) ๅญๅฅๆฃ็ดขๅนถๆฅ่ฏข่กจ็ๅๅฒ็ๆฌๆฐๆฎ๏ผ้ๅธธ้ๅๅฉๅฟซ็
ง ID ่ฎฟ้ฎๅฟซ็
งใ
33
33
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 ) ๅฏๆฅ็ไฟๅญ็ๅฟซ็
ง ใ
35
35
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 ) ๅฏๆฅ็่ฏฅๅฟซ็
งๅผ็จ็ๆฎต ใ
37
37
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 ) ๅฏๆฅ็่ฏฅๅฟซ็
งๅผ็จ็ๅ ใ
39
39
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 ไฝๅฐๅๅๅ
ญ่ฟๅถๅญ็ฌฆไธฒ ๏ผๅฝๅใ
41
41
42
- | ๆไปถ | ๆ ผๅผ | ๆไปถๅ | ๅญๅจๆไปถๅคน |
42
+ | ๆไปถ | ๆ ผๅผ | ๆไปถๅ | ๅญๅจๆไปถๅคน |
43
43
| ----------| ---------| ---------------------------------| -----------------------------------------------------|
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/ ` |
47
47
48
48
## ่กจไผๅ
49
49
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 ไผ่ชๅจ่งฆๅ้่็ฐไปฅๅๆฎตๅๅๅๅนถๆต็จใ
51
52
52
- - ๅฝไฝฟ็จ COPY INTO ๆ REPLACE INTO ๅฝไปคๅฐๆฐๆฎๅๅ
ฅๅ
ๅซ่็ฐ้ฎ็่กจๆถ๏ผDatabend ๅฐ่ชๅจๅฏๅจ้ๆฐ่็ฐ่ฟ็จ๏ผไปฅๅๆฎตๅๅๅ็ผฉ่ฟ็จใ
53
-
54
- - ๆฎตๅๅๅ็ผฉๆฏๆๅจ้็พค็ฏๅขไธญ่ฟ่กๅๅธๅผๆง่กใๆจๅฏไปฅ้่ฟๅฐ ENABLE_DISTRIBUTED_COMPACT ่ฎพ็ฝฎไธบ 1 ๆฅๅฏ็จๅฎไปฌใ่ฟๆๅฉไบๆ้ซ้็พค็ฏๅขไธญ็ๆฐๆฎๆฅ่ฏขๆง่ฝๅๅฏไผธ็ผฉๆงใ
53
+ - ๆฎตไธๅๅๅนถๆฏๆๅจ้็พค็ฏๅขไธญๅๅธๅผๆง่กใๅฏ้่ฟ่ฎพ็ฝฎ ENABLE_DISTRIBUTED_COMPACT ไธบ 1 ๅฏ็จ๏ผไปฅๆๅ้็พค็ฏๅขไธญ็ๆฅ่ฏขๆง่ฝๅๅฏๆฉๅฑๆงใ
55
54
56
55
``` sql
57
56
SET enable_distributed_compact = 1 ;
58
57
```
59
58
60
- ### ๆฎตๅ็ผฉ
59
+ ### ๆฎตๅๅนถ๏ผSegment Compaction๏ผ
61
60
62
- ๅฝไธไธช่กจๆๅคชๅคๅฐๆฎต๏ผๆฏไธชๆฎตๅฐไบ ` 100 blocks ` ๏ผๆถ๏ผๅ็ผฉๆฎต ใ
61
+ ๅฝ่กจๅญๅจ่ฟๅคๅฐๆฎต๏ผๆฏๆฎตๅฐไบ ` 100 ไธชๅ ` ๏ผๆถ๏ผ้่ฟ่กๆฎตๅๅนถ ใ
63
62
``` sql
64
63
SELECT
65
64
block_count,
66
65
segment_count,
67
66
IF(
68
67
block_count / segment_count < 100 ,
69
- ' The table needs segment compact now ' ,
70
- ' The table does not need segment compact now '
68
+ ' ่ฏฅ่กจๅฝๅ้่ฟ่กๆฎตๅๅนถ ' ,
69
+ ' ่ฏฅ่กจๅฝๅๆ ้ๆฎตๅๅนถ '
71
70
) AS advice
72
71
FROM
73
72
fuse_snapshot(' your-database' , ' your-table' )
80
79
OPTIMIZE TABLE [database.]table_name COMPACT SEGMENT [LIMIT < segment_count> ]
81
80
```
82
81
83
- ้่ฟๅฐๅฐๆฎตๅๅนถไธบๅคงๆฎตๆฅๅ็ผฉ่กจๆฐๆฎ ใ
82
+ ้่ฟๅๅนถๅฐๆฎตไธบ่พๅคงๆฎตๆฅไผๅ่กจๆฐๆฎ ใ
84
83
85
- - ้้กน LIMIT ่ฎพ็ฝฎ่ฆๅ็ผฉ็ๆๅคงๆฎตๆฐใๅจ่ฟ็งๆ
ๅตไธ ๏ผDatabend ๅฐ้ๆฉๅนถๅ็ผฉๆๆฐ็ๆฎต ใ
84
+ - LIMIT ้้กน่ฎพ็ฝฎๆๅคงๅๅนถๆฎตๆฐ ๏ผDatabend ๅฐ้ๆฉๅนถๅๅนถๆๆฐๆฎต ใ
86
85
87
86
** ็คบไพ**
88
87
89
88
``` sql
90
- -- Check whether need segment compact
89
+ -- ๆฃๆฅๆฏๅฆ้ๆฎตๅๅนถ
91
90
SELECT
92
91
block_count,
93
92
segment_count,
94
93
IF(
95
94
block_count / segment_count < 100 ,
96
- ' The table needs segment compact now ' ,
97
- ' The table does not need segment compact now '
95
+ ' ่ฏฅ่กจๅฝๅ้่ฟ่กๆฎตๅๅนถ ' ,
96
+ ' ่ฏฅ่กจๅฝๅๆ ้ๆฎตๅๅนถ '
98
97
) AS advice
99
98
FROM
100
99
fuse_snapshot(' hits' , ' hits' );
@@ -105,17 +104,17 @@ FROM
105
104
| 751 | 32 | The table needs segment compact now |
106
105
+ -- -----------+---------------+-------------------------------------+
107
106
108
- -- Compact segment
107
+ -- ๆง่กๆฎตๅๅนถ
109
108
OPTIMIZE TABLE hits COMPACT SEGMENT;
110
109
111
- -- Check again
110
+ -- ๅๆฌกๆฃๆฅ
112
111
SELECT
113
112
block_count,
114
113
segment_count,
115
114
IF(
116
115
block_count / segment_count < 100 ,
117
- ' The table needs segment compact now ' ,
118
- ' The table does not need segment compact now '
116
+ ' ่ฏฅ่กจๅฝๅ้่ฟ่กๆฎตๅๅนถ ' ,
117
+ ' ่ฏฅ่กจๅฝๅๆ ้ๆฎตๅๅนถ '
119
118
) AS advice
120
119
FROM
121
120
fuse_snapshot(' hits' , ' hits' )
@@ -128,130 +127,47 @@ FROM
128
127
+ -- -----------+---------------+---------------------------------------------+
129
128
```
130
129
131
- ### ๅๅ็ผฉ
130
+ ### ๅๅๅนถ๏ผBlock Compaction๏ผ
132
131
133
- ๅฝไธไธช่กจๆๅคง้ๅฐๅๆๅฝ่ฏฅ่กจๆๅพ้ซๆฏไพ็ๆๅ
ฅใๅ ้คๆๆดๆฐ็่กๆถ๏ผๅ็ผฉๅ ใ
132
+ ๅฝ่กจๅญๅจๅคง้ๅฐๅ๏ผๆๆๅ
ฅใๅ ้คใๆดๆฐ่กๆฏไพ่พ้ซๆถ๏ผ้่ฟ่กๅๅๅนถ ใ
134
133
135
- ๆจๅฏไปฅ้่ฟๆฃๆฅๆฏไธชๅ็ๆชๅ็ผฉๅคงๅฐๆฏๅฆๆฅ่ฟ ` 100MB ` ็ๅฎ็พๅคงๅฐๆฅๆฃๆฅๅฎ ใ
134
+ ๅฏ้่ฟๆฃๆฅๆฏไธชๅ็ๆชๅ็ผฉๅคงๅฐๆฏๅฆๆฅ่ฟ็ๆณๅผ ` 100 MB ` ๆฅๅคๆญ ใ
136
135
137
- ๅฆๆๅคงๅฐๅฐไบ ` 50MB ` ๏ผๆไปฌๅปบ่ฎฎ่ฟ่กๅๅ็ผฉ๏ผๅ ไธบๅฎ่กจ็คบๆๅคชๅคๅฐๅ ๏ผ
136
+ ่ฅๅคงๅฐๅฐไบ ` 50 MB ` ๏ผๅปบ่ฎฎๆง่กๅๅๅนถ๏ผ่กจๆๅญๅจ่ฟๅคๅฐๅ ๏ผ
138
137
139
138
``` sql
140
139
SELECT
141
140
block_count,
142
141
humanize_size(bytes_uncompressed / block_count) AS per_block_uncompressed_size,
143
142
IF(
144
143
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
+ ' ่ฏฅ่กจๅฝๅๆ ้ๅๅๅนถ '
147
146
) AS advice
148
147
FROM
149
148
fuse_snapshot(' your-database' , ' your-table' )
150
149
LIMIT 1 ;
151
150
```
152
151
153
152
::: info
154
- ๆไปฌๅปบ่ฎฎๅ
ๆง่กๆฎตๅ็ผฉ๏ผ็ถๅๅๆง่กๅๅ็ผฉ ใ
153
+ ๅปบ่ฎฎๅ
ๆง่กๆฎตๅๅนถ๏ผๅๆง่กๅๅๅนถ ใ
155
154
:::
156
155
157
156
** ่ฏญๆณ**
158
157
``` sql
159
158
OPTIMIZE TABLE [database.]table_name COMPACT [LIMIT < segment_count> ]
160
159
```
161
- ้่ฟๅฐๅฐๅๅๆฎตๅๅนถไธบๅคงๅๅๆฎตๆฅๅ็ผฉ่กจๆฐๆฎ ใ
160
+ ้่ฟๅๅนถๅฐๅๅๆฎตไธบ่พๅคงๅๅๆฎตๆฅไผๅ่กจๆฐๆฎ ใ
162
161
163
- - ๆญคๅฝไปคๅๅปบๆๆฐ่กจๆฐๆฎ็ๆฐๅฟซ็
ง๏ผไปฅๅๅ็ผฉ็ๆฎตๅๅ๏ผ๏ผ่ไธๅฝฑๅ็ฐๆๅญๅจๆไปถ๏ผๅ ๆญคๅจๆจๆธ
้คๅๅฒๆฐๆฎไนๅ๏ผไธไผ้ๆพๅญๅจ็ฉบ้ด ใ
162
+ - ่ฏฅๅฝไปคไผไธบๆๆฐ่กจๆฐๆฎๅๅปบๆฐๅฟซ็
ง๏ผๅซๅๅนถๅ็ๆฎตๅๅ๏ผ๏ผไธๅฝฑๅ็ฐๆๅญๅจๆไปถ๏ผๆ
้ๆธ
็ๅๅฒๆฐๆฎๅๆไผ้ๆพๅญๅจ็ฉบ้ด ใ
164
163
165
- - ๆ นๆฎ็ปๅฎ่กจ็ๅคงๅฐ๏ผๅฎๆๆง่กๅฏ่ฝ้่ฆ็ธๅฝ้ฟ็ๆถ้ด ใ
164
+ - ๆ นๆฎ่กจๅคงๅฐ๏ผๆง่กๅฏ่ฝ่ๆถ่พ้ฟ ใ
166
165
167
- - ้้กน LIMIT ่ฎพ็ฝฎ่ฆๅ็ผฉ็ๆๅคงๆฎตๆฐใๅจ่ฟ็งๆ
ๅตไธ ๏ผDatabend ๅฐ้ๆฉๅนถๅ็ผฉๆๆฐ็ๆฎต ใ
166
+ - LIMIT ้้กน่ฎพ็ฝฎๆๅคงๅๅนถๆฎตๆฐ ๏ผDatabend ๅฐ้ๆฉๅนถๅๅนถๆๆฐๆฎต ใ
168
167
169
- - Databend ๅฐๅจๅ็ผฉ่ฟ็จๅ่ชๅจ้ๆฐ่็ฐ่็ฐ่กจ ใ
168
+ - ๅๅนถๅฎๆๅ๏ผ Databend ไผ่ชๅจๅฏน่็ฐ่กจๆง่ก้่็ฐ ใ
170
169
171
170
** ็คบไพ**
172
171
``` sql
173
172
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
- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
257
173
```
0 commit comments