Skip to content

Commit b0f1529

Browse files
๐ŸŒ Add LLM Translations (#879)
* ๐Ÿ’ฌGenerate LLM translations * docs: minor update Signed-off-by: Chojan Shang <[email protected]> --------- Signed-off-by: Chojan Shang <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Chojan Shang <[email protected]>
1 parent b6964d1 commit b0f1529

File tree

7 files changed

+243
-243
lines changed

7 files changed

+243
-243
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
title: ่š็ฑป้”ฎ
3+
---
4+
5+
ๅœจ Databend ไธญ๏ผŒๆ‚จๅฏไปฅ้€‰ๆ‹ฉ้€š่ฟ‡่š็ฑป่กจๆฅๅขžๅผบๆŸฅ่ฏขๆ€ง่ƒฝใ€‚่ฟ™ๆถ‰ๅŠๅˆฐๅ‘ Databend ๆไพ›ๆ˜Ž็กฎ็š„ๆŒ‡ไปค๏ผŒๅ‘Š่ฏ‰ๅฎƒๅฆ‚ไฝ•็ป„็ป‡ๅ’Œๅˆ†็ป„ๅญ˜ๅ‚จไธญ็š„่กŒ๏ผŒ่€Œไธๆ˜ฏไป…ไป…ไพ่ต–ๆ•ฐๆฎๆ‘„ๅ–็š„้กบๅบใ€‚ๆ‚จๅฏไปฅ้€š่ฟ‡ๅฎšไน‰ไธ€ไธช่š็ฑป้”ฎๆฅ่š็ฑป่กจ๏ผŒ่ฏฅ้”ฎ้€šๅธธ็”ฑไธ€ไธชๆˆ–ๅคšไธชๅˆ—ๆˆ–่กจ่พพๅผ็ป„ๆˆใ€‚ๅ› ๆญค๏ผŒDatabend ๆ นๆฎ่ฟ™ไธช่š็ฑป้”ฎๆŽ’ๅˆ—ๆ•ฐๆฎ๏ผŒๅฐ†็›ธไผผ็š„่กŒๅˆ†็ป„ๅˆฐ็›ธ้‚ป็š„ๅ—ไธญใ€‚่ฟ™ไบ›ๅ—ๅฏนๅบ”ไบŽ Databend ็”จไบŽๆ•ฐๆฎๅญ˜ๅ‚จ็š„ Parquet ๆ–‡ไปถใ€‚ๆ›ดๅคš่ฏฆ็ป†ไฟกๆฏ๏ผŒ่ฏทๅ‚้˜…[Databend ๆ•ฐๆฎๅญ˜ๅ‚จ๏ผšๅฟซ็…งใ€ๆฎตๅ’Œๅ—](/sql/sql-commands/ddl/table/optimize-table#databend-ๆ•ฐๆฎๅญ˜ๅ‚จ-ๅฟซ็…ง-ๆฎต-ๅ’Œ-ๅ—)ใ€‚
6+
7+
:::tip
8+
ๅœจๅคงๅคšๆ•ฐๆƒ…ๅ†ตไธ‹๏ผŒ่ฎพ็ฝฎ่š็ฑป้”ฎไธๆ˜ฏๅฟ…้œ€็š„ใ€‚่š็ฑปๆˆ–้‡ๆ–ฐ่š็ฑป่กจ้œ€่ฆๆ—ถ้—ดๅนถๆถˆ่€—ๆ‚จ็š„ไฟก็”จ๏ผŒ็‰นๅˆซๆ˜ฏๅœจ Databend Cloud ็Žฏๅขƒไธญใ€‚Databend ๅปบ่ฎฎไธป่ฆไธบๆŸฅ่ฏขๆ€ง่ƒฝ่พƒๆ…ข็š„ๅคงๅž‹่กจๅฎšไน‰่š็ฑป้”ฎใ€‚
9+
:::
10+
11+
่š็ฑป้”ฎไฝœไธบ Databend ๅ…ƒๆœๅŠกๅฑ‚ไธญ็š„ๅ…ƒๆ•ฐๆฎไธŽๅญ˜ๅ‚จๅ—๏ผˆParquet ๆ–‡ไปถ๏ผ‰ไน‹้—ด็š„่ฟžๆŽฅใ€‚ไธ€ๆ—ฆไธบ่กจๅฎšไน‰ไบ†่š็ฑป้”ฎ๏ผŒ่กจ็š„ๅ…ƒๆ•ฐๆฎๅฐฑไผšๅปบ็ซ‹ไธ€ไธช้”ฎๅ€ผๅˆ—่กจ๏ผŒๆŒ‡็คบๅˆ—ๆˆ–่กจ่พพๅผๅ€ผไธŽๅ…ถๅ„่‡ช็š„ๅญ˜ๅ‚จๅ—ไน‹้—ด็š„่ฟžๆŽฅใ€‚ๅฝ“ๆ‰ง่กŒๆŸฅ่ฏขๆ—ถ๏ผŒDatabend ๅฏไปฅไฝฟ็”จๅ…ƒๆ•ฐๆฎๅฟซ้€Ÿๅฎšไฝๆญฃ็กฎ็š„ๅ—๏ผŒไธŽๆœช่ฎพ็ฝฎ่š็ฑป้”ฎๆ—ถ็›ธๆฏ”๏ผŒ่ฏปๅ–็š„่กŒๆ•ฐๆ›ดๅฐ‘ใ€‚
12+
13+
## ่š็ฑป้”ฎ็š„ๅทฅไฝœๅŽŸ็†
14+
15+
่ฎฉๆˆ‘ไปฌ่€ƒ่™‘ไธ€ไธชๅŒ…ๅซๅŠ ๆ‹ฟๅคงๆ‰€ๆœ‰ๅŸŽๅธ‚ๆธฉๅบฆ็š„่กจ๏ผŒๅŒ…ๅซไธ‰ไธชๅˆ—๏ผšCityใ€Temperature ๅ’Œ Provinceใ€‚
16+
17+
```sql
18+
CREATE TABLE T (
19+
City VARCHAR(255),
20+
Temperature DECIMAL(10, 2),
21+
Province VARCHAR(255)
22+
);
23+
```
24+
25+
ๅฆ‚ๆžœๆ‚จ็š„ๆŸฅ่ฏขไธป่ฆๆถ‰ๅŠๆ นๆฎๆธฉๅบฆๆฃ€็ดขๅŸŽๅธ‚๏ผŒๅˆ™ๅฐ†่š็ฑป้”ฎ่ฎพ็ฝฎไธบ Temperature ๅˆ—ใ€‚ไปฅไธ‹ๆ˜ฏๅฆ‚ไฝ•ไธบ็ป™ๅฎš่กจๅญ˜ๅ‚จๆ•ฐๆฎๅ—็š„็คบไพ‹๏ผš
26+
27+
![Alt text](@site/docs/public/img/sql/clustered.png)
28+
29+
่กŒๆ นๆฎๆฏไธชๅ—๏ผˆๆ–‡ไปถ๏ผ‰ไธญ็š„ Temperature ๅˆ—่ฟ›่กŒๆŽ’ๅบใ€‚็„ถ่€Œ๏ผŒๅ—ไน‹้—ดๅฏ่ƒฝๅญ˜ๅœจ้‡ๅ ็š„ๆธฉๅบฆ่Œƒๅ›ดใ€‚ๅฆ‚ๆžœๆŸฅ่ฏขๆฐๅฅฝ่ฝๅœจๅ—็š„้‡ๅ ่Œƒๅ›ดๅ†…๏ผŒๅˆ™้œ€่ฆ่ฏปๅ–ๅคšไธชๅ—ใ€‚ๅœจ่ฟ™็งๆƒ…ๅ†ตไธ‹ๆถ‰ๅŠ็š„ๅ—ๆ•ฐ็งฐไธบโ€œๆทฑๅบฆโ€ใ€‚ๅ› ๆญค๏ผŒๆทฑๅบฆ่ถŠๅฐ่ถŠๅฅฝใ€‚่ฟ™ๆ„ๅ‘ณ็€ๅœจๆŸฅ่ฏขๆœŸ้—ด่ฏปๅ–ๆ›ดๅฐ‘็š„็›ธๅ…ณๅ—ๅฏไปฅๆ้ซ˜ๆŸฅ่ฏขๆ€ง่ƒฝใ€‚
30+
31+
่ฆๆŸฅ็œ‹่กจ็š„่š็ฑปๆƒ…ๅ†ต๏ผŒ่ฏทไฝฟ็”จ[CLUSTERING_INFORMATION](/sql/sql-functions/system-functions/clustering_information)ๅ‡ฝๆ•ฐใ€‚ไพ‹ๅฆ‚๏ผŒ
32+
33+
```sql
34+
SELECT * FROM clustering_information('default','T');
35+
*************************** 1. row ***************************
36+
cluster_key: (id)
37+
total_block_count: 451
38+
constant_block_count: 0
39+
unclustered_block_count: 0
40+
average_overlaps: 2.1774
41+
average_depth: 2.4612
42+
block_depth_histogram: {"00001":32,"00002":217,"00003":164,"00004":38}
43+
1 row in set (0.02 sec)
44+
Read 1 rows, 448.00 B in 0.015 sec., 67.92 rows/sec., 29.71 KiB/sec.
45+
```
46+
47+
| ๅ‚ๆ•ฐ | ๆ่ฟฐ |
48+
| ----------------------- | ------------------------------------------------------------------------ |
49+
| cluster_key | ๅฎšไน‰็š„่š็ฑป้”ฎใ€‚ |
50+
| total_block_count | ๅฝ“ๅ‰ๅ—็š„ๆ€ปๆ•ฐใ€‚ |
51+
| constant_block_count | ๆœ€ๅฐ/ๆœ€ๅคงๅ€ผ็›ธ็ญ‰็š„ๅ—ๆ•ฐ๏ผŒๆ„ๅ‘ณ็€ๆฏไธชๅ—ๅชๅŒ…ๅซไธ€ไธช๏ผˆ็ป„๏ผ‰่š็ฑป้”ฎๅ€ผใ€‚ |
52+
| unclustered_block_count | ๅฐšๆœช่š็ฑป็š„ๅ—ๆ•ฐใ€‚ |
53+
| average_overlaps | ็ป™ๅฎš่Œƒๅ›ดๅ†…้‡ๅ ๅ—็š„ๅนณๅ‡ๆฏ”็އใ€‚ |
54+
| average_depth | ่š็ฑป้”ฎ็š„้‡ๅ ๅˆ†ๅŒบ็š„ๅนณๅ‡ๆทฑๅบฆใ€‚ |
55+
| block_depth_histogram | ๆฏไธชๆทฑๅบฆ็บงๅˆซ็š„ๅˆ†ๅŒบๆ•ฐใ€‚่พƒไฝŽๆทฑๅบฆ็บงๅˆซไธŠๅˆ†ๅŒบ็š„ๆ›ด้ซ˜้›†ไธญๅบฆ่กจ็คบๆ›ดๆœ‰ๆ•ˆ็š„่กจ่š็ฑปใ€‚ |
56+
57+
### ้€‰ๆ‹ฉ่š็ฑป้”ฎ
58+
59+
่š็ฑป้”ฎๅฏไปฅๆ˜ฏ่กจไธญ็š„ไธ€ไธชๆˆ–ๅคšไธชๅˆ—๏ผŒๆˆ–่€…ๆ˜ฏๅŸบไบŽ่ฟ™ไบ›ๅˆ—็š„่กจ่พพๅผใ€‚้€šๅธธ๏ผŒๆ‚จๅฎšไน‰็š„่š็ฑป้”ฎๅบ”ไธŽๆ•ฐๆฎๆŸฅ่ฏขไธญๅบ”็”จ็š„ไธป่ฆ่ฟ‡ๆปคๅ™จ็›ธไธ€่‡ดใ€‚ไพ‹ๅฆ‚๏ผŒๅฆ‚ๆžœๅคงๅคšๆ•ฐๆŸฅ่ฏขๆถ‰ๅŠๆŒ‰`order_id`่ฟ‡ๆปคๆ•ฐๆฎ๏ผŒๅˆ™ๅปบ่ฎฎๅฐ†`order_id`ๅˆ—่ฎพ็ฝฎไธบ่กจ็š„่š็ฑป้”ฎใ€‚
60+
61+
```sql
62+
CREATE TABLE sales (
63+
order_id INT,
64+
order_date TIMESTAMP,
65+
product_id INT,
66+
is_secondhand BOOLEAN,
67+
quantity INT,
68+
region VARCHAR,
69+
product_category VARCHAR,
70+
-- ๅ…ถไป–ๅˆ—...
71+
CLUSTER BY (order_id)
72+
);
73+
```
74+
75+
ๅฆไธ€ๆ–น้ข๏ผŒๅฆ‚ๆžœ่ฟ‡ๆปค้€šๅธธๅŸบไบŽ`region`ๅ’Œ`product_category`ๅ‘็”Ÿ๏ผŒๅˆ™ไฝฟ็”จ่ฟ™ไธคไธชๅˆ—่š็ฑป่กจๅฐ†ๆ˜ฏๆœ‰็›Š็š„๏ผš
76+
77+
```sql
78+
CREATE TABLE sales (
79+
order_id INT,
80+
order_date TIMESTAMP,
81+
product_id INT,
82+
is_secondhand BOOLEAN,
83+
quantity INT,
84+
region VARCHAR,
85+
product_category VARCHAR,
86+
-- ๅ…ถไป–ๅˆ—...
87+
CLUSTER BY (region, product_category)
88+
);
89+
```
90+
91+
ๅœจ้€‰ๆ‹ฉๅˆ—ไฝœไธบ่š็ฑป้”ฎๆ—ถ๏ผŒ็กฎไฟไธๅŒๅ€ผ็š„ๆ•ฐ้‡ๅœจๆœ‰ๆ•ˆๆŸฅ่ฏขๆ€ง่ƒฝๅ’Œ็ณป็ปŸๅ†…ไผ˜ๅŒ–ๅญ˜ๅ‚จไน‹้—ดๅ–ๅพ—ๅนณ่กกใ€‚
92+
93+
ไพ‹ๅฆ‚๏ผŒๅŸบไบŽไป…ๅŒ…ๅซๅธƒๅฐ”ๅ€ผ็š„`is_secondhand`ๅˆ—่š็ฑป่กจๅฏ่ƒฝไธไผšๅœจๆ•ฐๆฎๅˆ†็ป„ๆ–น้ขๆไพ›ๅคชๅคšๅฅฝๅค„ใ€‚่ฟ™ๆ˜ฏๅ› ไธบไธๅŒๅ€ผๆœ‰้™๏ผŒ่š็ฑปๅฏ่ƒฝไธไผšๅฏผ่‡ด็›ธไผผๆ•ฐๆฎ็š„ๆ˜พ่‘—็‰ฉ็†ๅˆ†็ป„๏ผŒๅฝฑๅ“่š็ฑปๅฏนๆŸฅ่ฏขไผ˜ๅŒ–็š„ๆฝœๅœจไผ˜ๅŠฟใ€‚
94+
95+
ๅ…ทๆœ‰ๅคง้‡ไธๅŒๅ€ผ็š„ๅˆ—๏ผŒๅฆ‚`order_id`ๅˆ—๏ผŒ้€šๅธธไธๆ˜ฏ็›ดๆŽฅ็”จไฝœ่š็ฑป้”ฎ็š„ๅฅฝๅ€™้€‰๏ผŒๅ› ไธบๅฎƒๅ€พๅ‘ไบŽ้˜ป็ขๅญ˜ๅ‚จๆ•ˆ็އๅนถๅ‰Šๅผฑๆ•ฐๆฎๅˆ†็ป„็š„ๆ•ˆๆžœใ€‚็„ถ่€Œ๏ผŒไธ€ไธชๅฏ่กŒ็š„ๆ›ฟไปฃๆ–นๆกˆๆ˜ฏ่€ƒ่™‘ไฝฟ็”จ่กจ่พพๅผๆฅโ€œๅ‡ๅฐ‘โ€ไธๅŒๅ€ผใ€‚ไพ‹ๅฆ‚๏ผŒๅฆ‚ๆžœ`order_id`้€šๅธธๅŒ…ๅซไธ€ไธชๆ—ฅๆœŸ๏ผˆไพ‹ๅฆ‚๏ผŒ20240116๏ผ‰๏ผŒไปŽๅ›บๅฎšไฝ็ฝฎๅผ€ๅง‹๏ผŒไปŽๅ…ถไธญๆๅ–ๆ—ถ้—ด็ป„ไปถๅฏไปฅไฝœไธบๆ›ดๅˆ้€‚็š„่š็ฑป้”ฎใ€‚
96+
97+
```sql
98+
CREATE TABLE sales (
99+
order_id INT,
100+
order_date TIMESTAMP,
101+
product_id INT,
102+
is_secondhand BOOLEAN,
103+
quantity INT,
104+
region VARCHAR,
105+
product_category VARCHAR,
106+
-- ๅ…ถไป–ๅˆ—...
107+
CLUSTER BY (SUBSTRING(order_id,7,8))
108+
);
109+
```
110+
111+
้€š่ฟ‡ไฝฟ็”จไปŽ`order_id`ๅˆ—ๆๅ–็š„ๆ—ฅๆœŸ่š็ฑป่กจ๏ผŒๅœจๅŒไธ€ๅคฉๅ‘็”Ÿ็š„ไบคๆ˜“็Žฐๅœจ่ขซๅˆ†็ป„ๅˆฐ็›ธๅŒ็š„ๆˆ–็›ธ้‚ป็š„ๅ—ไธญใ€‚่ฟ™้€šๅธธๅฏผ่‡ดๅŽ‹็ผฉๆ”น่ฟ›ๅ’ŒๆŸฅ่ฏขๆ‰ง่กŒๆœŸ้—ดๅฟ…้กปไปŽๅญ˜ๅ‚จ่ฏปๅ–็š„ๆ•ฐๆฎ้‡ๅ‡ๅฐ‘๏ผŒๆœ‰ๅŠฉไบŽๆ้ซ˜ๆ•ดไฝ“ๆ€ง่ƒฝใ€‚
112+
113+
### ไฝฟ็”จ่‡ชๅฎšไน‰ๅ—ๅคงๅฐ่ฐƒๆ•ดๆ€ง่ƒฝ
114+
115+
Databend ไธญ็š„ๅ—ๅคงๅฐ็”ฑ[Fuse Engine](/sql/sql-reference/table-engines/fuse)็š„ ROW_PER_BLOCK ๅ’Œ BLOCK_SIZE_THRESHOLD ๅ‚ๆ•ฐ็กฎๅฎšใ€‚ๅฝ“ไปปไธ€้˜ˆๅ€ผ่พพๅˆฐๆ—ถ๏ผŒDatabend ไผšๅˆ›ๅปบไธ€ไธชๆ–ฐๅ—ใ€‚ๆ‚จๅฏไปฅ้€š่ฟ‡ไธบๅŒ…ๅซ่š็ฑป้”ฎ็š„่กจ่‡ชๅฎšไน‰ๅ—ๅคงๅฐๆฅ่ฟ›ไธ€ๆญฅๅขžๅผบๅ•็‚นๅ’Œ่Œƒๅ›ดๆŸฅ่ฏข็š„ๆ€ง่ƒฝใ€‚
116+
117+
้€š่ฟ‡่‡ชๅฎšไน‰ๅ—ๅคงๅฐๅขžๅŠ ๅญ˜ๅ‚จๅ—็š„ๆ•ฐ้‡๏ผŒๅฏผ่‡ดๆŸฅ่ฏขๅค„็†ๆœŸ้—ด่ฏปๅ–็š„่กŒๆ•ฐๅ‡ๅฐ‘ใ€‚่ฟ™ๆ˜ฏๅ› ไธบๅฏนไบŽ็›ธๅŒ็š„ๆ•ฐๆฎ้›†๏ผŒๅ—็š„ๆ•ฐ้‡ๅขžๅŠ ๏ผŒๆฏไธช Parquet ๆ–‡ไปถไธญ็š„่กŒๆ•ฐๅ‡ๅฐ‘ใ€‚
118+
119+
**็คบไพ‹**:
120+
121+
ไปฅไธ‹่ฏญๅฅ้œ€่ฆๆ‰ซๆ่ฟ‘ 500,000 ่กŒๆฅๅค„็†ๅ•็‚นๆŸฅ่ฏข๏ผš
122+
123+
![Alt text](@site/docs/public/img/sql/block-size-before.png)
124+
125+
ไผ˜ๅŒ–ๅ‡ๅฐ‘ไบ†ๅ—ๅคงๅฐ๏ผŒๅฏผ่‡ดๆฏไธช Parquet ๆ–‡ไปถ็š„่กŒๆ•ฐๅ‡ๅฐ‘ใ€‚
126+
127+
```sql
128+
ALTER TABLE sbtest10w SET OPTIONS(ROW_PER_BLOCK=100000,BLOCK_SIZE_THRESHOLD=52428800);
129+
```
130+
131+
ไผ˜ๅŒ–ๅŽ๏ผŒ็›ธๅŒ็š„ๆŸฅ่ฏขๅช้œ€่ฆๆ‰ซๆ 100,000 ่กŒ๏ผš
132+
133+
![Alt text](@site/docs/public/img/sql/block-size-after.png)
134+
135+
:::tip
136+
่™ฝ็„ถๅ‡ๅฐ‘ๅ—ๅคงๅฐๅฏ่ƒฝไผšๅ‡ๅฐ‘ๅ•ไธชๆŸฅ่ฏขๆถ‰ๅŠ็š„่กŒๆ•ฐ๏ผŒไฝ†้‡่ฆ็š„ๆ˜ฏ่ฆๆณจๆ„๏ผŒ่พƒๅฐ็š„ๅ—ๅคงๅฐๅนถไธๆ€ปๆ˜ฏๆ›ดๅฅฝใ€‚ๅœจ่ฐƒๆ•ดๅ—ๅคงๅฐไน‹ๅ‰๏ผŒ่ฟ›่กŒ้€‚ๅฝ“็š„ๆ€ง่ƒฝ่ฐƒๆ•ดๅ’Œๆต‹่ฏ•ไปฅ็กฎๅฎšๆœ€ไฝณ้…็ฝฎ่‡ณๅ…ณ้‡่ฆใ€‚ไธๅŒ็š„ๆ•ฐๆฎๅ’ŒๆŸฅ่ฏข็ฑปๅž‹ๅฏ่ƒฝ้œ€่ฆไธๅŒ็š„ๅ—ๅคงๅฐไปฅๅฎž็Žฐๆœ€ไฝณๆ€ง่ƒฝใ€‚
137+
:::
138+
139+
## ้‡ๆ–ฐ่š็ฑป่กจ
140+
141+
ไธ€ไธช่‰ฏๅฅฝ่š็ฑป็š„่กจๅฏ่ƒฝๅœจๆŸไบ›ๅญ˜ๅ‚จๅ—ๅ†…ๅ˜ๅพ—ๆททไนฑ๏ผŒ่ฟ™ๅฏ่ƒฝไผšๅฏนๆŸฅ่ฏขๆ€ง่ƒฝไบง็”Ÿ่ดŸ้ขๅฝฑๅ“ใ€‚ไพ‹ๅฆ‚๏ผŒๅฆ‚ๆžœ่กจ็ปง็ปญ่ฟ›่กŒ DML ๆ“ไฝœ๏ผˆINSERT / UPDATE / DELETE๏ผ‰๏ผŒๅˆ™ๅฏ่ƒฝ้œ€่ฆ่€ƒ่™‘้‡ๆ–ฐ่š็ฑป่กจใ€‚ๆœ‰ๅ…ณๅฆ‚ไฝ•้‡ๆ–ฐ่š็ฑป่กจ็š„่ฏฆ็ป†ไฟกๆฏ๏ผŒ่ฏทๅ‚้˜…[RECLUSTER TABLE](/sql/sql-commands/ddl/clusterkey/dml-recluster-table)ใ€‚
142+
143+
:::note
144+
ๅฝ“ไฝฟ็”จ COPY INTO ๆˆ– REPLACE INTO ๅ‘ฝไปคๅฐ†ๆ•ฐๆฎๅ†™ๅ…ฅๅŒ…ๅซ่š็ฑป้”ฎ็š„่กจๆ—ถ๏ผŒDatabend ๅฐ†่‡ชๅŠจๅฏๅŠจ้‡ๆ–ฐ่š็ฑป่ฟ‡็จ‹๏ผŒไปฅๅŠๆฎตๅ’Œๅ—ๅŽ‹็ผฉ่ฟ‡็จ‹ใ€‚
145+
:::
146+
147+
ๅฆ‚ๆžœๆ‚จ้‡ๆ–ฐ่š็ฑป[่š็ฑป้”ฎ็š„ๅทฅไฝœๅŽŸ็†](#่š็ฑป้”ฎ็š„ๅทฅไฝœๅŽŸ็†)้ƒจๅˆ†ไธญ็š„็คบไพ‹่กจ๏ผŒๆ‚จๅฏ่ƒฝไผšๅพ—ๅˆฐๅฆ‚ไธ‹ๅญ˜ๅ‚จ็š„ๆ•ฐๆฎ๏ผš
148+
149+
![Alt text](@site/docs/public/img/sql/well-clustered.png)
150+
151+
่ฟ™ๆ˜ฏๆœ€็†ๆƒณ็š„ๆƒ…ๅ†ตใ€‚ๅœจๅคงๅคšๆ•ฐๆƒ…ๅ†ตไธ‹๏ผŒๅฎž็Žฐ่ฟ™็งๆƒ…ๅ†ตๅฏ่ƒฝ้œ€่ฆๅคšๆฌก่ฟ่กŒ้‡ๆ–ฐ่š็ฑปๆ“ไฝœใ€‚้‡ๆ–ฐ่š็ฑป่กจ้œ€่ฆๆ—ถ้—ด๏ผˆๅฆ‚ๆžœๅŒ…ๅซ**FINAL**้€‰้กน๏ผŒๅˆ™ๆ—ถ้—ดๆ›ด้•ฟ๏ผ‰ๅ’Œไฟก็”จ๏ผˆๅฝ“ๆ‚จๅœจ Databend Cloud ไธญๆ—ถ๏ผ‰ใ€‚Databend ๅปบ่ฎฎไฝฟ็”จ[CLUSTERING_INFORMATION](/sql/sql-functions/system-functions/clustering_information)ๅ‡ฝๆ•ฐๆฅ็กฎๅฎšไฝ•ๆ—ถ้‡ๆ–ฐ่š็ฑป่กจ๏ผš
152+
153+
```sql
154+
SELECT If(average_depth > total_block_count * 0.001
155+
AND average_depth > 1, 'The table needs re-cluster now',
156+
'The table does not need re-cluster now')
157+
FROM CLUSTERING_INFORMATION('<your_database>', '<your_table>');
158+
```
159+
160+
## ็ฎก็†่š็ฑป้”ฎ
161+
162+
ๅœจ Databend ไธญ๏ผŒๆ‚จๅฏไปฅๅœจๅˆ›ๅปบ่กจๆ—ถ่ฎพ็ฝฎ่š็ฑป้”ฎ๏ผŒๅนถไธ”ๅฆ‚ๆžœ้œ€่ฆ๏ผŒๅฏไปฅๆ›ดๆ”น่š็ฑป้”ฎใ€‚ๅฆ‚ๆžœไธ€ไธชๅฎŒๅ…จ่š็ฑป็š„่กจ็ปง็ปญ่ฟ›่กŒๆ‘„ๅ–ๆˆ–ๆ•ฐๆฎๆ“ไฝœ่ฏญ่จ€ๆ“ไฝœ๏ผˆๅฆ‚ INSERTใ€UPDATEใ€DELETE๏ผ‰๏ผŒๅฎƒๅฏ่ƒฝไผšๅ˜ๅพ—ๆททไนฑ๏ผŒๆ‚จๅฐ†้œ€่ฆ้‡ๆ–ฐ่š็ฑป่กจๆฅไฟฎๅคๆททไนฑใ€‚ๆ›ดๅคšไฟกๆฏ๏ผŒ่ฏทๅ‚้˜…[่š็ฑป้”ฎ](/sql/sql-commands/ddl/clusterkey/)ใ€‚

โ€Ždocs/cn/guides/55-performance/virtual-column.md renamed to โ€Ždocs/cn/guides/55-performance/01-virtual-column.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,40 @@
11
---
2-
title: Virtual Column
2+
title: ่™šๆ‹Ÿๅˆ—
33
---
4+
45
import IndexOverviewList from '@site/src/components/IndexOverviewList';
56
import EEFeature from '@site/src/components/EEFeature';
67

78
<EEFeature featureName='VIRTUAL COLUMN'/>
89

9-
A virtual column is a construct formed by extracting nested fields within [Variant](/sql/sql-reference/data-types/data-type-variant) data and storing that data in separate storage files. Consider using virtual columns when you regularly query specific nested fields within Variant data to realize the following benefits:
10+
่™šๆ‹Ÿๅˆ—ๆ˜ฏ้€š่ฟ‡ๆๅ–[Variant](/sql/sql-reference/data-types/data-type-variant)ๆ•ฐๆฎไธญ็š„ๅตŒๅฅ—ๅญ—ๆฎต๏ผŒๅนถๅฐ†่ฟ™ไบ›ๆ•ฐๆฎๅญ˜ๅ‚จๅœจๅ•็‹ฌ็š„ๅญ˜ๅ‚จๆ–‡ไปถไธญๅฝขๆˆ็š„ไธ€็ง็ป“ๆž„ใ€‚ๅฝ“ๆ‚จ็ปๅธธๆŸฅ่ฏข Variant ๆ•ฐๆฎไธญ็š„็‰นๅฎšๅตŒๅฅ—ๅญ—ๆฎตๆ—ถ๏ผŒ่€ƒ่™‘ไฝฟ็”จ่™šๆ‹Ÿๅˆ—ไปฅๅฎž็Žฐไปฅไธ‹ๅฅฝๅค„๏ผš
1011

11-
- **Accelerated Query Processing**: Virtual columns streamline the querying process by eliminating the need to traverse the entire nested structure to locate the desired data. Direct data retrieval from virtual columns parallels the process of accessing regular columns, resulting in a significant acceleration of query execution.
12+
- **ๅŠ ้€ŸๆŸฅ่ฏขๅค„็†**๏ผš่™šๆ‹Ÿๅˆ—้€š่ฟ‡ๆถˆ้™ค้ๅކๆ•ดไธชๅตŒๅฅ—็ป“ๆž„ไปฅๅฎšไฝๆ‰€้œ€ๆ•ฐๆฎ็š„้œ€ๆฑ‚๏ผŒ็ฎ€ๅŒ–ไบ†ๆŸฅ่ฏข่ฟ‡็จ‹ใ€‚็›ดๆŽฅไปŽ่™šๆ‹Ÿๅˆ—ๆฃ€็ดขๆ•ฐๆฎไธŽ่ฎฟ้—ฎๅธธ่ง„ๅˆ—็š„่ฟ‡็จ‹็›ธๅนณ่กŒ๏ผŒไปŽ่€Œๆ˜พ่‘—ๅŠ ๅฟซไบ†ๆŸฅ่ฏขๆ‰ง่กŒ้€Ÿๅบฆใ€‚
1213

13-
- **Reduced Memory Usage**: Variant data often includes numerous internal fields, and reading all of them can lead to substantial memory consumption. By transitioning to reading virtual columns, there is a notable reduction in memory usage, mitigating the risk of potential memory overflows.
14+
- **ๅ‡ๅฐ‘ๅ†…ๅญ˜ไฝฟ็”จ**๏ผšVariant ๆ•ฐๆฎ้€šๅธธๅŒ…ๅซ่ฎธๅคšๅ†…้ƒจๅญ—ๆฎต๏ผŒ่ฏปๅ–ๆ‰€ๆœ‰่ฟ™ไบ›ๅญ—ๆฎตๅฏ่ƒฝๅฏผ่‡ดๅคง้‡ๅ†…ๅญ˜ๆถˆ่€—ใ€‚้€š่ฟ‡่ฝฌๅ‘่ฏปๅ–่™šๆ‹Ÿๅˆ—๏ผŒๅ†…ๅญ˜ไฝฟ็”จ้‡ๆ˜พ่‘—ๅ‡ๅฐ‘๏ผŒ้™ไฝŽไบ†ๆฝœๅœจๅ†…ๅญ˜ๆบขๅ‡บ็š„้ฃŽ้™ฉใ€‚
1415

1516
![Alt text](@site/docs/public/img/sql/virtual-column.png)
1617

17-
### Managing Virtual Columns
18+
## ็ฎก็†่™šๆ‹Ÿๅˆ—
1819

19-
Databend provides a variety of commands to manage virtual columns. For details, see [VIRTUAL COLUMN](/sql/sql-commands/ddl/virtual-column/).
20+
Databend ๆไพ›ไบ†ๅคš็งๅ‘ฝไปคๆฅ็ฎก็†่™šๆ‹Ÿๅˆ—ใ€‚่ฏฆ็ป†ไฟกๆฏ๏ผŒ่ฏทๅ‚้˜… [VIRTUAL COLUMN](/sql/sql-commands/ddl/virtual-column/)ใ€‚
2021

21-
### Usage Examples
22+
## ไฝฟ็”จ็คบไพ‹
2223

23-
This example demonstrates the practical use of virtual columns and their impact on query execution:
24+
ๆœฌ็คบไพ‹ๅฑ•็คบไบ†่™šๆ‹Ÿๅˆ—็š„ๅฎž้™…ๅบ”็”จๅŠๅ…ถๅฏนๆŸฅ่ฏขๆ‰ง่กŒ็š„ๅฝฑๅ“๏ผš
2425

2526
```sql
26-
-- Create a table named 'test' with columns 'id' and 'val' of type Variant.
27+
-- ๅˆ›ๅปบไธ€ไธชๅไธบ 'test' ็š„่กจ๏ผŒๅŒ…ๅซ 'id' ๅ’Œ 'val' ๅˆ—๏ผŒ็ฑปๅž‹ไธบ Variantใ€‚
2728
CREATE TABLE test(id int, val variant);
2829

29-
-- Create virtual columns for specific elements in the 'val' column.
30+
-- ไธบ 'val' ๅˆ—ไธญ็š„็‰นๅฎšๅ…ƒ็ด ๅˆ›ๅปบ่™šๆ‹Ÿๅˆ—ใ€‚
3031
CREATE VIRTUAL COLUMN (
31-
val ['name'], -- Extract the 'name' field.
32-
val ['tags'] [0], -- Extract the first element in the 'tags' array.
33-
val ['pricings'] [0] ['type'] -- Extract the 'type' field from the first pricing in the 'pricings' array.
32+
val ['name'], -- ๆๅ– 'name' ๅญ—ๆฎตใ€‚
33+
val ['tags'] [0], -- ๆๅ– 'tags' ๆ•ฐ็ป„ไธญ็š„็ฌฌไธ€ไธชๅ…ƒ็ด ใ€‚
34+
val ['pricings'] [0] ['type'] -- ไปŽ 'pricings' ๆ•ฐ็ป„ไธญ็š„็ฌฌไธ€ไธชๅฎšไปทๆๅ– 'type' ๅญ—ๆฎตใ€‚
3435
) FOR test;
3536

36-
-- Insert a sample record into the 'test' table with Variant data.
37+
-- ๅ‘ 'test' ่กจๆ’ๅ…ฅไธ€ไธชๅŒ…ๅซ Variant ๆ•ฐๆฎ็š„็คบไพ‹่ฎฐๅฝ•ใ€‚
3738
INSERT INTO
3839
test
3940
VALUES
@@ -42,7 +43,7 @@ VALUES
4243
'{"id":1,"name":"databend","tags":["powerful","fast"],"pricings":[{"type":"Standard","price":"Pay as you go"},{"type":"Enterprise","price":"Custom"}]}'
4344
);
4445

45-
-- Explain the query execution plan for selecting specific fields from the table.
46+
-- ่งฃ้‡ŠไปŽ่กจไธญ้€‰ๆ‹ฉ็‰นๅฎšๅญ—ๆฎต็š„ๆŸฅ่ฏขๆ‰ง่กŒ่ฎกๅˆ’ใ€‚
4647
EXPLAIN
4748
SELECT
4849
val ['name'],
@@ -63,7 +64,7 @@ TableScan
6364
โ”œโ”€โ”€ push downs: [filters: [], limit: NONE, virtual_columns: [val['name'], val['pricings'][0]['type'], val['tags'][0]]]
6465
โ””โ”€โ”€ estimated rows: 1.00
6566

66-
-- Explain the query execution plan for selecting only the 'name' field from the table.
67+
-- ่งฃ้‡Šไป…ไปŽ่กจไธญ้€‰ๆ‹ฉ 'name' ๅญ—ๆฎต็š„ๆŸฅ่ฏขๆ‰ง่กŒ่ฎกๅˆ’ใ€‚
6768
EXPLAIN
6869
SELECT
6970
val ['name']
@@ -82,7 +83,7 @@ TableScan
8283
โ”œโ”€โ”€ push downs: [filters: [], limit: NONE, virtual_columns: [val['name']]]
8384
โ””โ”€โ”€ estimated rows: 1.00
8485

85-
-- Display all the virtual columns defined in the system.
86+
-- ๆ˜พ็คบ็ณป็ปŸไธญๅฎšไน‰็š„ๆ‰€ๆœ‰่™šๆ‹Ÿๅˆ—ใ€‚
8687
SHOW VIRTUAL COLUMNS;
8788

8889
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
@@ -91,6 +92,6 @@ SHOW VIRTUAL COLUMNS;
9192
โ”‚ default โ”‚ test โ”‚ val['name'], val['pricings'][0]['type'], val['tags'][0] โ”‚
9293
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
9394

94-
-- Drop the virtual columns associated with the 'test' table.
95+
-- ๅˆ ้™คไธŽ 'test' ่กจๅ…ณ่”็š„่™šๆ‹Ÿๅˆ—ใ€‚
9596
DROP VIRTUAL COLUMN FOR test;
96-
```
97+
```

0 commit comments

Comments
ย (0)