@@ -7,34 +7,50 @@ import EEFeature from '@site/src/components/EEFeature';
77
88<EEFeature featureName =' VIRTUAL COLUMN ' />
99
10- Virtual Column ๆฏไธ็ง็ปๆ๏ผ้่ฟๆๅ [ Variant ] ( /sql/sql-reference/data-types/variant ) ๆฐๆฎไธญ็ๅตๅฅๅญๆฎต๏ผๅนถๅฐ่ฟไบๆฐๆฎๅญๅจๅจๅ็ฌ็ๅญๅจๆไปถไธญๆฅๅฝขๆใๅฝๆจๅฎๆๆฅ่ฏข Variant ๆฐๆฎไธญ็็นๅฎๅตๅฅๅญๆฎตๆถ๏ผ่ฏท่่ไฝฟ็จ Virtual Column๏ผไปฅๅฎ็ฐไปฅไธไผๅฟ๏ผ
10+ # Databend ไธญ็่ๆๅ๏ผๅ ้ๅ็ปๆๅๆฐๆฎ็ๆฅ่ฏข
1111
12- - ** ๅ ้ๆฅ่ฏขๅค็ ** : Virtual Column ้่ฟๆถ้ค้ๅๆดไธชๅตๅฅ็ปๆไปฅๅฎไฝๆ้ๆฐๆฎ็้ๆฑ๏ผไป่็ฎๅไบๆฅ่ฏข่ฟ็จใไป Virtual Column ็ดๆฅๆฃ็ดขๆฐๆฎไธ่ฎฟ้ฎๅธธ่งๅ็่ฟ็จ็ฑปไผผ๏ผไป่ๆพ่ๅ ้ไบๆฅ่ฏขๆง่ก ใ
12+ Databend ไธญ็่ๆๅๆไพไบไธ็งๅผบๅคง่่ชๅจ็ๆนๅผ๏ผๅฏไปฅๆพ่ๅ ้ๅฏนๅ็ปๆๅๆฐๆฎ็ๆฅ่ฏข๏ผๅฐคๅ
ถๆฏๅญๅจๅจ [ Variant ] ( /sql/sql-reference/data-types/variant ) ๆฐๆฎ็ฑปๅไธญ็ๆฐๆฎใๆญคๅ่ฝๅจๆไผๅๆฐๆฎ่ฎฟ้ฎ๏ผไป่ๅ ๅฟซๆฅ่ฏขๆง่ก้ๅบฆๅนถๅๅฐ่ตๆบๆถ่ ใ
1313
14- - ** ๅๅฐๅ
ๅญไฝฟ็จ** : Variant ๆฐๆฎ้ๅธธๅ
ๅซ่ฎธๅคๅ
้จๅญๆฎต๏ผ่ฏปๅๆๆ่ฟไบๅญๆฎตๅฏ่ฝไผๅฏผ่ดๅคง้ๅ
ๅญๆถ่ใ้่ฟ่ฝฌๆขไธบ่ฏปๅ Virtual Column๏ผๅฏไปฅๆพ่ๅๅฐๅ
ๅญไฝฟ็จ๏ผไป่้ไฝๆฝๅจ็ๅ
ๅญๆบขๅบ้ฃ้ฉใ
14+ ## ๆฆ่ฟฐ
15+
16+ ๅฝๅค็ ` VARIANT ` ๅไธญ็ๅตๅฅๆฐๆฎ็ปๆๆถ๏ผ่ฎฟ้ฎ็นๅฎๆฐๆฎ็นๅฏ่ฝไผๆไธบๆง่ฝ็ถ้ขใDatabend ็่ๆๅ้่ฟ่ชๅจ่ฏๅซๅไผๅๅตๅฅๅญๆฎตๆฅ่งฃๅณๆญค้ฎ้ขใ่ๆๅๅฏไปฅ็ดๆฅๆฃ็ดขๆฐๆฎ๏ผ็ฑปไผผไบ่ฎฟ้ฎๅธธ่งๅ๏ผ่ๆ ้้ๅค้ๅๆดไธชๅตๅฅ็ปๆใ
17+
18+ Databend ๅจๆฐๆฎๆๅๆ้ด่ชๅจๆฃๆต ` VARIANT ` ๅไธญ็ๅตๅฅๅญๆฎตใๅฆๆๆไธชๅญๆฎตๆปก่ถณไธๅฎ็ๅญๅจ้ๅผ๏ผๅฎๅฐๅจๅๅฐ็ฉๅไธบ่ๆๅ๏ผ็กฎไฟๆฐๆฎ้ๆถๅฏ็จไบไผๅๆฅ่ฏขใๆญค่ฟ็จๆฏๅฎๅ
จ่ชๅจ็๏ผๆ ้ๆๅจ้
็ฝฎๆๅนฒ้ขใ
1519
1620![ Alt text] ( /img/sql/virtual-column.png )
1721
18- ## ็ฎก็ Virtual Column
22+ ## ๆง่ฝไผๅฟ
23+
24+ * ** ๆพ่็ๆฅ่ฏขๅ ้๏ผ** ่ๆๅ้่ฟ็ดๆฅ่ฎฟ้ฎๅตๅฅๅญๆฎต๏ผๆพ่ๅๅฐไบๆฅ่ฏขๆง่กๆถ้ดใ่ฟๆถ้คไบไธบๆฏไธชๆฅ่ฏข้ๅๅคๆ JSON ็ปๆ็ๅผ้ใ
25+ * ** ้ไฝ่ตๆบๆถ่๏ผ** ้่ฟไป
็ฉๅๅฟ
่ฆ็ๅตๅฅๅญๆฎต๏ผ่ๆๅๆๅคง้ๅบฆๅฐๅๅฐไบๆฅ่ฏขๅค็ๆ้ด็ๅ
ๅญๆถ่ใ่ฟๆ้ซไบ่ตๆบๅฉ็จ็๏ผๅนถๆนๅไบๆดไฝ็ณป็ปๆง่ฝใ
26+ * ** ่ชๅจไผๅ๏ผ** Databend ่ชๅจ่ฏๅซๅญๆฎตๅนถๅฐๅ
ถ็ฉๅไธบ่ๆๅใ็ถๅ๏ผๆฅ่ฏขไผๅๅจไผ่ชๅจ้ๅๆฅ่ฏข๏ผไปฅไพฟๅจ่ฎฟ้ฎ ` VARIANT ` ๅไธญ็ๆฐๆฎๆถๅฉ็จ่ฟไบ่ๆๅใ
27+ * ** ้ๆๆไฝ๏ผ** ่ๆๅ็ๅๅปบๅ็ฎก็ๅฏน็จๆทๅฎๅ
จ้ๆใๆฅ่ฏขไผ่ชๅจไผๅ๏ผ่ๆ ้ๆดๆนๆฅ่ฏข่ฏญๆณๆๆฐๆฎๅ ่ฝฝ่ฟ็จใๆฅ่ฏขไผๅๅจ่ด่ดฃ้ๅๆฅ่ฏขไปฅๅฉ็จ่ๆๅใ
28+
29+ ## ๅทฅไฝๅ็
1930
20- Databend ๆไพไบๅ็งๅฝไปคๆฅ็ฎก็ Virtual Columnใๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ่ง [ VIRTUAL COLUMN] ( /sql/sql-reference/data-types/variant/ ) ใ
31+ 1 . ** ๆฐๆฎๆๅ๏ผ** ๆๅๅ
ๅซ ` VARIANT ` ๅ็ๆฐๆฎๆถ๏ผDatabend ไผๅๆ JSON ๆฐๆฎ็็ปๆใ
32+ 2 . ** ๅญๆฎตๅญๅจๆฃๆฅ๏ผ** Databend ๆฃๆฅๅตๅฅๅญๆฎตๆฏๅฆๆปก่ถณไธๅฎ็ๅญๅจ้ๅผใ
33+ 3 . ** ่ๆๅ็ฉๅ๏ผ** ๅฆๆๆปก่ถณๅญๆฎตๅญๅจ้ๅผ๏ผ็ณป็ปไผ่ชๅจๅจๅๅฐๅฐ่ฏฅๅญๆฎต็ฉๅไธบ่ๆๅใ
34+ 4 . ** ๆฅ่ฏขไผๅ๏ผ** ๅฝๆฅ่ฏข่ฎฟ้ฎ ` VARIANT ` ๅไธญ็ๅตๅฅๅญๆฎตๆถ๏ผๆฅ่ฏขไผๅๅจไผ่ชๅจ้ๅๆฅ่ฏข๏ผไปฅไฝฟ็จ็ธๅบ็่ๆๅๆฅๆดๅฟซๅฐๆฃ็ดขๆฐๆฎใ
35+
36+ ## ้่ฆๆณจๆไบ้กน
37+
38+ * ** ๅผ้๏ผ** ่ฝ็ถ่ๆๅ้ๅธธๅฏไปฅๆ้ซๆฅ่ฏขๆง่ฝ๏ผไฝๅฎไปฌ็กฎๅฎไผๅผๅ
ฅไธไบๅญๅจๅ็ปดๆคๅผ้ใDatabend ไผ่ชๅจๅนณ่กก่ๆๅ็ไผๅฟไธๆญคๅผ้๏ผไปฅ็กฎไฟๆไฝณๆง่ฝใ
39+ * ** ๅฎ้ชๆงๅ่ฝ๏ผ** ่ๆๅ็ฎๅๆฏไธ้กนๅฎ้ชๆงๅ่ฝใ้ป่ฎคๆ
ๅตไธๅคไบ็ฆ็จ็ถๆใ่ฆๅฏ็จ่ๆๅ๏ผๅฟ
้กปๅฐ ` enable_experimental_virtual_column ` ่ฎพ็ฝฎไธบ ` 1 ` ๏ผ
40+ * ** ่ชๅจๅทๆฐ๏ผ** ๆๅ
ฅๆฐๆฎๅ๏ผ่ๆๅๅฐ่ชๅจๅทๆฐใๅฆๆๆจไธๆณ่ชๅจ็ๆ่ๆๅๆฐๆฎ๏ผๅฏไปฅๅฐ ` enable_refresh_virtual_column_after_write ` ่ฎพ็ฝฎไธบ ` 0 ` ไปฅ็ฆ็จ่ๆๅ็็ๆใๅฏไปฅไฝฟ็จ refresh virtual column ๅฝไปคๅฎๆๅผๆญฅๅทๆฐใๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ่ง [ REFRESH VIRTUAL COLUMN] ( /sql/sql-commands/ddl/virtual-column/refresh-virtual-column ) ใ
41+ * ** ๆพ็คบ่ๆๅ๏ผ** ๆจๅฏไปฅ้่ฟ [ SHOW VIRTUAL COLUMNS] ( /sql/sql-commands/ddl/virtual-column/show-virtual-columns ) ๅฝไปคๆฅ็ๆๅ
ณ่ๆๅ็ไฟกๆฏ๏ผๅนถไธๅฏไปฅ้่ฟ [ FUSE_VIRTUAL_COLUMN] ( /sql/sql-functions/system-functions/fuse_virtual_column ) ็ณป็ปๅฝๆฐๆฅ็ๆๅ
ณ่ๆๅๅ
ๆฐๆฎ็ไฟกๆฏใ
2142
2243## ไฝฟ็จ็คบไพ
2344
24- ๆญค็คบไพๆผ็คบไบ Virtual Column ็ๅฎ้
ไฝฟ็จๅๅ
ถๅฏนๆฅ่ฏขๆง่ก็ๅฝฑๅ ๏ผ
45+ ๆญค็คบไพๆผ็คบไบ่ๆๅ็ๅฎ้
ไฝฟ็จๅๅ
ถๅฏนๆฅ่ฏขๆง่ก็ๅฝฑๅ ๏ผ
2546
2647``` sql
27- -- ๅๅปบไธไธชๅไธบ 'test' ็่กจ๏ผๅ
ถไธญๅ
ๅซ็ฑปๅไธบ Variant ็ๅ 'id' ๅ 'val'ใ
28- CREATE TABLE test (id int , val variant);
48+ SET enable_experimental_virtual_column= 1 ;
2949
30- -- ไธบ 'val' ๅไธญ็็นๅฎๅ
็ด ๅๅปบ Virtual Columnใ
31- CREATE VIRTUAL COLUMN (
32- val [' name' ], -- ๆๅ 'name' ๅญๆฎตใ
33- val [' tags' ] [0 ], -- ๆๅ 'tags' ๆฐ็ปไธญ็็ฌฌไธไธชๅ
็ด ใ
34- val [' pricings' ] [0 ] [' type' ] -- ๆๅ 'pricings' ๆฐ็ปไธญ็ฌฌไธไธช pricing ็ 'type' ๅญๆฎตใ
35- ) FOR test;
50+ -- Create a table named 'test' with columns 'id' and 'val' of type Variant.
51+ CREATE TABLE test (id int , val variant);
3652
37- -- ๅฐ็คบไพ่ฎฐๅฝไธ Variant ๆฐๆฎๆๅ
ฅๅฐ 'test' ่กจไธญใ
53+ -- Insert sample records into the 'test' table with Variant data.
3854INSERT INTO
3955 test
4056VALUES
@@ -65,10 +81,9 @@ INSERT INTO test SELECT * FROM test;
6581INSERT INTO test SELECT * FROM test;
6682INSERT INTO test SELECT * FROM test;
6783
68- -- ๅทๆฐ Virtual Column
69- REFRESH VIRTUAL COLUMN FOR test;
84+ -- Show the virtual columns
7085
71- -- ่งฃ้็จไบไป่กจไธญ้ๆฉ็นๅฎๅญๆฎต็ๆฅ่ฏขๆง่ก่ฎกๅใ
86+ -- Explain the query execution plan for selecting specific fields from the table.
7287EXPLAIN
7388SELECT
7489 val [' name' ],
7994
8095- [ EXPLAIN ]-- ---------------------------------
8196Exchange
82- โโโ output columns: [test .val [' name' ] (# 2 ), test.val['tags '][0] (#3 ), test.val['pricings '][0]['type'] (#4 )]
97+ โโโ output columns: [test .val [' name' ] (# 3 ), test.val['pricings '][0]['type'] (#5 ), test.val['tags '][0] (#8 )]
8398โโโ exchange type: Merge
8499โโโ TableScan
85- โโโ table: default .book_db .test
86- โโโ output columns: [val[' name' ] (# 2 ), val['tags '][0] (#3 ), val['pricings '][0]['type'] (#4 )]
100+ โโโ table: default .default .test
101+ โโโ output columns: [val[' name' ] (# 3 ), val['pricings '][0]['type'] (#5 ), val['tags '][0] (#8 )]
87102 โโโ read rows: 160
88- โโโ read size: 4 . 96 KiB
89- โโโ partitions total: 16
90- โโโ partitions scanned: 16
91- โโโ pruning stats: [segments: < range pruning: 6 to 6 > , blocks: < range pruning: 16 to 16 > ]
103+ โโโ read size: 1 . 69 KiB
104+ โโโ partitions total: 6
105+ โโโ partitions scanned: 6
106+ โโโ pruning stats: [segments: < range pruning: 6 to 6 > , blocks: < range pruning: 6 to 6 > ]
92107 โโโ push downs: [filters: [], limit : NONE]
93108 โโโ virtual columns: [val[' name' ], val[' pricings' ][0 ][' type' ], val[' tags' ][0 ]]
94109 โโโ estimated rows: 160 .00
95110
96- -- ่งฃ้็จไบไป
ไป่กจไธญ้ๆฉ 'name' ๅญๆฎต็ๆฅ่ฏขๆง่ก่ฎกๅใ
111+ -- Explain the query execution plan for selecting only the 'name' field from the table.
97112EXPLAIN
98113SELECT
99114 val [' name' ]
@@ -108,23 +123,28 @@ Exchange
108123 โโโ table: default .book_db .test
109124 โโโ output columns: [val[' name' ] (# 2)]
110125 โโโ read rows: 160
111- โโโ read size: 1 . 70 KiB
126+ โโโ read size: < 1 KiB
112127 โโโ partitions total: 16
113128 โโโ partitions scanned: 16
114129 โโโ pruning stats: [segments: < range pruning: 6 to 6 > , blocks: < range pruning: 16 to 16 > ]
115130 โโโ push downs: [filters: [], limit : NONE]
116131 โโโ virtual columns: [val[' name' ]]
117132 โโโ estimated rows: 160 .00
118133
119- -- ๆพ็คบ็ณป็ปไธญๅฎไน็ๆๆ Virtual Columnใ
120- SHOW VIRTUAL COLUMNS;
121-
122- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
123- โ database โ table โ virtual_columns โ
124- โโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
125- โ default โ test โ val[' name' ], val[' pricings' ][0 ][' type' ], val[' tags' ][0 ] โ
126- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
127-
128- -- ๅ ้คไธ 'test' ่กจๅ
ณ่็ Virtual Columnใ
129- DROP VIRTUAL COLUMN FOR test;
134+ -- Display all the auto generated virtual columns.
135+ SHOW VIRTUAL COLUMNS WHERE table= ' test' ;
136+
137+ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
138+ โ database โ table โ source_column โ virtual_column_id โ virtual_column_name โ virtual_column_type โ
139+ โ String โ String โ String โ UInt32 โ String โ String โ
140+ โโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค
141+ โ default โ test โ val โ 3000000000 โ [' id' ] โ UInt64 โ
142+ โ default โ test โ val โ 3000000001 โ [' name' ] โ String โ
143+ โ default โ test โ val โ 3000000002 โ [' pricings' ][0 ][' price' ] โ String โ
144+ โ default โ test โ val โ 3000000003 โ [' pricings' ][0 ][' type' ] โ String โ
145+ โ default โ test โ val โ 3000000004 โ [' pricings' ][1 ][' price' ] โ String โ
146+ โ default โ test โ val โ 3000000005 โ [' pricings' ][1 ][' type' ] โ String โ
147+ โ default โ test โ val โ 3000000006 โ [' tags' ][0 ] โ String โ
148+ โ default โ test โ val โ 3000000007 โ [' tags' ][1 ] โ String โ
149+ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
130150```
0 commit comments