1- ``` md
21---
32title : Fuse Engine 表
43---
@@ -20,6 +19,7 @@ Databend 使用 Fuse Engine 作为其默认存储引擎,提供类似于 Git
2019## 何时使用 Fuse Engine
2120
2221适用于:
22+
2323- ** 分析** :具有列式存储的 OLAP 查询
2424- ** 数仓** :大量历史数据
2525- ** 时间回溯** :访问历史数据版本
@@ -42,18 +42,21 @@ CREATE TABLE <table_name> (
4242以下是创建 Fuse Engine 表的主要参数:
4343
4444#### ` ENGINE `
45+
4546- ** 描述:**
4647 如果未显式指定引擎,Databend 将自动默认使用 Fuse Engine 创建表,这等效于 ` ENGINE = FUSE ` 。
4748
4849---
4950
5051#### ` CLUSTER BY `
52+
5153- ** 描述:**
52- 指定由多个表达式组成的数据的排序方法。 有关更多信息,请参见 [ Cluster Key] ( /guides/performance/cluster-key ) 。
54+ 指定由多个表达式组成的数据的排序方法。有关更多信息,请参见 [ Cluster Key] ( /guides/performance/cluster-key ) 。
5355
5456---
5557
5658#### ` <Options> `
59+
5760- ** 描述:**
5861 Fuse Engine 提供了各种选项(不区分大小写),允许您自定义表的属性。
5962 - 有关详细信息,请参见 [ Fuse Engine Options] ( #fuse-engine-options ) 。
@@ -70,93 +73,102 @@ CREATE TABLE <table_name> (
7073---
7174
7275### ` compression `
76+
7377- ** 语法:**
7478 ` compression = '<compression>' `
7579- ** 描述:**
76- 指定引擎的压缩方法。 压缩选项包括 lz4、zstd、snappy 或 none。 压缩方法在对象存储中默认为 zstd,在文件系统 (fs) 存储中默认为 lz4。
80+ 指定引擎的压缩方法。压缩选项包括 lz4、zstd、snappy 或 none。压缩方法在对象存储中默认为 zstd,在文件系统 (fs) 存储中默认为 lz4。
7781
7882---
7983
8084### ` snapshot_loc `
85+
8186- ** 语法:**
8287 ` snapshot_loc = '<snapshot_loc>' `
8388- ** 描述:**
8489 以字符串格式指定位置参数,允许轻松共享表而无需复制数据。
8590
8691---
8792
88-
8993### ` block_size_threshold `
94+
9095- ** 语法:**
9196 ` block_size_threshold = <n> `
9297- ** 描述:**
93- 指定最大块大小(以字节为单位)。 默认为 104,857,600 字节。
98+ 指定最大块大小(以字节为单位)。默认为 104,857,600 字节。
9499
95100---
96101
97102### ` block_per_segment `
103+
98104- ** 语法:**
99105 ` block_per_segment = <n> `
100106- ** 描述:**
101- 指定一个段中的最大块数。 默认为 1,000。
107+ 指定一个段中的最大块数。默认为 1,000。
102108
103109---
104110
105111### ` row_per_block `
112+
106113- ** 语法:**
107114 ` row_per_block = <n> `
108115- ** 描述:**
109- 指定文件中的最大行数。 默认为 1,000,000。
116+ 指定文件中的最大行数。默认为 1,000,000。
110117
111118---
112119
113120### ` bloom_index_columns `
121+
114122- ** 语法:**
115123 ` bloom_index_columns = '<column> [, <column> ...]' `
116124- ** 描述:**
117- 指定要用于 Bloom Index 的列。 这些列的数据类型可以是 Map、Number、String、Date 或 Timestamp。 如果未指定任何特定列,则默认情况下会在所有受支持的列上创建 Bloom Index。 ` bloom_index_columns='' ` 禁用 Bloom Index。
125+ 指定要用于 Bloom Index 的列。这些列的数据类型可以是 Map、Number、String、Date 或 Timestamp。如果未指定任何特定列,则默认情况下会在所有受支持的列上创建 Bloom Index。 ` bloom_index_columns='' ` 禁用 Bloom Index。
118126
119127---
120128
121129### ` change_tracking `
130+
122131- ** 语法:**
123132 ` change_tracking = True / False `
124133- ** 描述:**
125- 在 Fuse Engine 中将此选项设置为 ` True ` 允许跟踪表的更改。 为表创建 Stream 会自动将 ` change_tracking ` 设置为 ` True ` ,并将其他隐藏列引入到表中作为更改跟踪元数据。 有关更多信息,请参见 [ How Stream Works] ( /guides/load-data/continuous-data-pipelines/stream#how-stream-works ) 。
134+ 在 Fuse Engine 中将此选项设置为 ` True ` 允许跟踪表的更改。为表创建 Stream 会自动将 ` change_tracking ` 设置为 ` True ` ,并将其他隐藏列引入到表中作为更改跟踪元数据。有关更多信息,请参见 [ How Stream Works] ( /guides/load-data/continuous-data-pipelines/stream#how-stream-works ) 。
126135
127136---
128137
129138### ` data_retention_period_in_hours `
139+
130140- ** 语法:**
131141 ` data_retention_period_in_hours = <n> `
132142- ** 描述:**
133- 指定保留表数据的小时数。 最小值为 1 小时。 最大值由 [ databend-query.toml] ( https://github.com/databendlabs/databend/blob/main/scripts/distribution/configs/databend-query.toml ) 配置文件中的 ` data_retention_time_in_days_max ` 设置定义,如果未指定,则默认为 2,160 小时(90 天 x 24 小时)。
143+ 指定保留表数据的小时数。最小值为 1 小时。最大值由 [ databend-query.toml] ( https://github.com/databendlabs/databend/blob/main/scripts/distribution/configs/databend-query.toml ) 配置文件中的 ` data_retention_time_in_days_max ` 设置定义,如果未指定,则默认为 2,160 小时(90 天 x 24 小时)。
134144
135145---
136146
137147### ` enable_auto_vacuum `
148+
138149- ** 语法:**
139150 ` enable_auto_vacuum = 0 / 1 `
140151- ** 描述:**
141- 控制表是否在 mutations 期间自动触发 vacuum 操作。 这可以全局设置为所有表的设置,也可以在表级别进行配置。 表级别选项的优先级高于同名的会话/全局设置。 启用后(设置为 1),在 INSERT 或 ALTER TABLE 等 mutations 之后将自动触发 vacuum 操作,根据配置的保留策略清理表数据。
152+ 控制表是否在 mutations 期间自动触发 vacuum 操作。这可以全局设置为所有表的设置,也可以在表级别进行配置。表级别选项的优先级高于同名的会话/全局设置。启用后(设置为 1),在 INSERT 或 ALTER TABLE 等 mutations 之后将自动触发 vacuum 操作,根据配置的保留策略清理表数据。
142153
143154 ** 示例:**
155+
144156 ``` sql
145157 -- 全局设置 enable_auto_vacuum,适用于所有会话中的所有表
146158 SET GLOBAL enable_auto_vacuum = 1 ;
147-
159+
148160 -- 创建一个禁用自动 vacuum 的表(覆盖全局设置)
149161 CREATE OR REPLACE TABLE t1 (id INT ) ENABLE_AUTO_VACUUM = 0 ;
150162 INSERT INTO t1 VALUES (1 ); -- 即使有全局设置也不会触发 vacuum
151-
163+
152164 -- 创建另一个继承全局设置的表
153165 CREATE OR REPLACE TABLE t2 (id INT );
154166 INSERT INTO t2 VALUES (1 ); -- 由于全局设置,将触发 vacuum
155-
167+
156168 -- 为现有表启用自动 vacuum
157169 ALTER TABLE t1 SET OPTIONS(ENABLE_AUTO_VACUUM = 1 );
158170 INSERT INTO t1 VALUES (2 ); -- 现在将触发 vacuum
159-
171+
160172 -- 表选项优先于全局设置
161173 SET GLOBAL enable_auto_vacuum = 0 ; -- 全局关闭
162174 -- t1 仍然会 vacuum,因为表设置覆盖了全局设置
@@ -167,39 +179,40 @@ CREATE TABLE <table_name> (
167179---
168180
169181### ` data_retention_num_snapshots_to_keep `
182+
170183- ** 语法:**
171184 ` data_retention_num_snapshots_to_keep = <n> `
172185- ** 描述:**
173- 指定在 vacuum 操作期间要保留的快照数。 这可以全局设置为所有表的设置,也可以在表级别进行配置。 表级别选项的优先级高于同名的会话/全局设置。 设置后,在 vacuum 操作后只会保留指定数量的最新快照。 覆盖 ` data_retention_time_in_days ` 设置。 如果设置为 0,则将忽略此设置。 此选项与 ` enable_auto_vacuum ` 设置结合使用,以提供对快照保留策略的精细控制。
174-
186+ 指定在 vacuum 操作期间要保留的快照数。这可以全局设置为所有表的设置,也可以在表级别进行配置。表级别选项的优先级高于同名的会话/全局设置。设置后,在 vacuum 操作后只会保留指定数量的最新快照。覆盖 ` data_retention_time_in_days ` 设置。如果设置为 0,则将忽略此设置。此选项与 ` enable_auto_vacuum ` 设置结合使用,以提供对快照保留策略的精细控制。
187+
175188 ** 示例:**
189+
176190 ``` sql
177191 -- 将全局保留设置为所有会话中所有表的 10 个快照
178192 SET GLOBAL data_retention_num_snapshots_to_keep = 10 ;
179-
193+
180194 -- 创建一个具有自定义快照保留的表(覆盖全局设置)
181- CREATE OR REPLACE TABLE t1 (id INT )
195+ CREATE OR REPLACE TABLE t1 (id INT )
182196 enable_auto_vacuum = 1
183197 data_retention_num_snapshots_to_keep = 5 ;
184-
198+
185199 -- 创建另一个继承全局设置的表
186200 CREATE OR REPLACE TABLE t2 (id INT ) enable_auto_vacuum = 1 ;
187-
201+
188202 -- 当触发 vacuum 时:
189203 -- t1 将保留 5 个快照(表设置)
190204 -- t2 将保留 10 个快照(全局设置)
191-
205+
192206 -- 更改全局设置
193207 SET GLOBAL data_retention_num_snapshots_to_keep = 20 ;
194-
208+
195209 -- 表选项仍然优先:
196210 -- t1 仍然只会保留 5 个快照
197211 -- t2 现在将保留 20 个快照
198-
212+
199213 -- 修改现有表的快照保留
200214 ALTER TABLE t1 SET OPTIONS(data_retention_num_snapshots_to_keep = 3 );
201215 -- 现在,当触发 vacuum 时,t1 将保留 3 个快照
202216 ```
203217
204218---
205- ```
0 commit comments