11---
2- title : Fuse Engine
2+ title : Fuse Engine 表
33---
44
55import FunctionDescription from '@site/src /components/FunctionDescription';
66
77<FunctionDescription description =" Introduced or updated: v1.2.733 " />
88
9- Databend 采用 Fuse Engine 作为其默认引擎,提供了一个用户界面友好的数据管理系统,让人联想到 Git。用户可以轻松地查询任何给定时刻的数据,并毫不费力地将数据恢复到任何所需的点。
9+ ## 概述
10+
11+ Databend 使用 Fuse Engine 作为其默认存储引擎,提供类似于 Git 的数据管理系统,具有以下特点:
12+
13+ - ** 基于快照的架构** : 查询和恢复任何时间点的数据,具有数据变更历史以进行恢复
14+ - ** 高性能** : 针对分析工作负载进行了优化,具有自动索引和 Bloom 过滤器
15+ - ** 高效存储** : 使用 Parquet 格式,具有高压缩率,可实现最佳存储效率
16+ - ** 灵活配置** : 可自定义压缩、索引和存储选项
17+ - ** 数据维护** : 自动数据保留、快照管理和变更跟踪功能
18+
19+ ## 何时使用 Fuse Engine
20+
21+ 适用于:
22+ - ** 分析** : 具有列式存储的 OLAP 查询
23+ - ** 数仓** : 大量历史数据
24+ - ** 时间回溯** : 访问历史数据版本
25+ - ** 云存储** : 针对对象存储进行了优化
1026
1127## 语法
1228
@@ -18,28 +34,109 @@ CREATE TABLE <table_name> (
1834[< Options> ];
1935```
2036
21- 有关 ` CREATE TABLE ` 语法的更多详细信息,请参见 [ CREATE TABLE] ( ../../10-sql-commands/00-ddl/01-table/10-ddl-create-table.md ) 。
37+ 有关 ` CREATE TABLE ` 语法的更多详细信息,请参阅 [ CREATE TABLE] ( ../../10-sql-commands/00-ddl/01-table/10-ddl-create-table.md ) 。
38+
39+ ## 参数
40+
41+ 以下是创建 Fuse Engine 表的主要参数:
2242
23- | 参数 | 描述 |
24- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
25- | ` ENGINE ` | 如果未明确指定引擎,Databend 将自动默认使用 Fuse Engine 创建表,这等效于 ` ENGINE = FUSE ` 。 |
26- | ` CLUSTER BY ` | 指定由多个表达式组成的数据的排序方法。有关更多信息,请参见 [ Cluster Key] ( /guides/performance/cluster-key ) 。 |
27- | ` <Options> ` | Fuse Engine 提供了各种选项(不区分大小写),允许您自定义表的属性。有关详细信息,请参见 [ Fuse Engine Options] ( #fuse-engine-options ) 。<br />- 使用空格分隔多个选项。<br />- 使用 [ ALTER TABLE OPTION] ( ../../10-sql-commands/00-ddl/01-table/90-alter-table-option.md ) 修改表的选项。<br />- 使用 [ SHOW CREATE TABLE] ( ../../10-sql-commands/00-ddl/01-table/show-create-table.md ) 显示表的选项。 |
43+ #### ` ENGINE `
44+ - ** 描述:**
45+ 如果未显式指定引擎,Databend 将自动默认使用 Fuse Engine 创建表,这等效于 ` ENGINE = FUSE ` 。
46+
47+ ---
48+
49+ #### ` CLUSTER BY `
50+ - ** 描述:**
51+ 指定由多个表达式组成的数据的排序方法。 有关更多信息,请参见 [ Cluster Key] ( /guides/performance/cluster-key ) 。
52+
53+ ---
54+
55+ #### ` <Options> `
56+ - ** 描述:**
57+ Fuse Engine 提供了各种选项(不区分大小写),允许您自定义表的属性。
58+ - 有关详细信息,请参见 [ Fuse Engine 选项] ( #fuse-engine-options ) 。
59+ - 使用空格分隔多个选项。
60+ - 使用 [ ALTER TABLE OPTION] ( ../../10-sql-commands/00-ddl/01-table/90-alter-table-option.md ) 修改表的选项。
61+ - 使用 [ SHOW CREATE TABLE] ( ../../10-sql-commands/00-ddl/01-table/show-create-table.md ) 显示表的选项。
62+
63+ ---
64+
65+ ## Fuse Engine 选项
66+
67+ 以下是可用的 Fuse Engine 选项,按其用途分组:
68+
69+ ---
70+
71+ ### ` compression `
72+ - ** 语法:**
73+ ` compression = '<compression>' `
74+ - ** 描述:**
75+ 指定引擎的压缩方法。 压缩选项包括 lz4、zstd、snappy 或 none。 压缩方法在对象存储中默认为 zstd,在文件系统 (fs) 存储中默认为 lz4。
76+
77+ ---
2878
29- ## Fuse Engine Options
79+ ### ` snapshot_loc `
80+ - ** 语法:**
81+ ` snapshot_loc = '<snapshot_loc>' `
82+ - ** 描述:**
83+ 以字符串格式指定位置参数,允许轻松共享表而无需复制数据。
3084
31- 以下是可用的 Fuse Engine 选项:
85+ ---
86+
87+
88+ ### ` block_size_threshold `
89+ - ** 语法:**
90+ ` block_size_threshold = <n> `
91+ - ** 描述:**
92+ 指定最大块大小(以字节为单位)。 默认为 104,857,600 字节。
93+
94+ ---
95+
96+ ### ` block_per_segment `
97+ - ** 语法:**
98+ ` block_per_segment = <n> `
99+ - ** 描述:**
100+ 指定段中的最大块数。 默认为 1,000。
101+
102+ ---
103+
104+ ### ` row_per_block `
105+ - ** 语法:**
106+ ` row_per_block = <n> `
107+ - ** 描述:**
108+ 指定文件中的最大行数。 默认为 1,000,000。
109+
110+ ---
111+
112+ ### ` bloom_index_columns `
113+ - ** 语法:**
114+ ` bloom_index_columns = '<column> [, <column> ...]' `
115+ - ** 描述:**
116+ 指定要用于 Bloom 索引的列。 这些列的数据类型可以是 Map、Number、String、Date 或 Timestamp。 如果未指定特定列,则默认情况下会在所有支持的列上创建 Bloom 索引。 ` bloom_index_columns='' ` 禁用 Bloom 索引。
117+
118+ ---
119+
120+ ### ` change_tracking `
121+ - ** 语法:**
122+ ` change_tracking = True / False `
123+ - ** 描述:**
124+ 在 Fuse Engine 中将此选项设置为 ` True ` 允许跟踪表的更改。 为表创建 Stream 会自动将 ` change_tracking ` 设置为 ` True ` ,并向表中引入额外的隐藏列作为更改跟踪元数据。 有关更多信息,请参见 [ How Stream Works] ( /guides/load-data/continuous-data-pipelines/stream#how-stream-works ) 。
125+
126+ ---
127+
128+ ### ` data_retention_period_in_hours `
129+ - ** 语法:**
130+ ` data_retention_period_in_hours = <n> `
131+ - ** 描述:**
132+ 指定保留表数据的小时数。 最小值为 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 小时)。
133+
134+ ---
32135
136+ ### ` data_retention_num_snapshots_to_keep `
137+ - ** 语法:**
138+ ` data_retention_num_snapshots_to_keep = <n> `
139+ - ** 描述:**
140+ 指定要为表保留的快照数。 此选项与 ` enable_auto_vacuum ` 设置结合使用,以提供对每个表的快照保留策略的精细控制。 设置后,在 vacuum 操作后,只会保留指定数量的最新快照。
33141
34- | 选项 | 语法 | 描述 |
35- | ------------------------------ | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
36- | bloom_index_columns | ` bloom_index_columns = '<column> [, <column> ...]' ` | 指定用于 Bloom 索引的列。这些列的数据类型可以是 Map、Number、String、Date 或 Timestamp。如果未指定特定列,则默认在所有支持的列上创建 Bloom 索引。` bloom_index_columns='' ` 禁用 Bloom 索引。 |
37- | compression | ` compression = '<compression>' ` | 指定引擎的压缩方法。压缩选项包括 lz4、zstd、snappy 或 none。默认情况下,对象存储中的压缩方法为 zstd,文件系统 (fs) 存储中的压缩方法为 lz4。 |
38- | storage_format | ` storage_format = '<storage_format>' ` | 指定数据的存储方式。默认情况下,storage_format 设置为 ** Parquet** ,它提供高压缩率,非常适合云原生对象存储。此外,还支持实验性的 ** Native** 格式,优化了文件系统等存储设备的内存复制开销。 |
39- | snapshot_loc | ` snapshot_loc = '<snapshot_loc>' ` | 以字符串格式指定位置参数,允许轻松共享表,而无需复制数据。 |
40- | block_size_threshold | ` block_size_threshold = <n> ` | 指定最大块大小(以字节为单位)。默认为 104,857,600 字节。 |
41- | block_per_segment | ` block_per_segment = <n> ` | 指定一个段中的最大块数。默认为 1,000。 |
42- | row_per_block | ` row_per_block = <n> ` | 指定文件中的最大行数。默认为 1,000,000。 |
43- | change_tracking | ` change_tracking = True / False ` | 在 Fuse 引擎中将此选项设置为 ` True ` 允许跟踪表的更改。<br />为表创建流将自动将 ` change_tracking ` 设置为 ` True ` ,并向表中引入额外的隐藏列作为更改跟踪元数据。有关更多信息,请参见 [ 流的工作原理] ( /guides/load-data/continuous-data-pipelines/stream#how-stream-works ) 。 |
44- | data_retention_period_in_hours | ` data_retention_period_in_hours = <n> ` | 指定保留表数据的小时数。最小值为 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 小时)。 |
45- | data_retention_num_snapshots_to_keep | ` data_retention_num_snapshots_to_keep = <n> ` | 指定要为表保留的快照数。此选项与 ` enable_auto_vacuum ` 设置结合使用,以提供对每个表的快照保留策略的精细控制。设置后,在 vacuum 操作后,只会保留指定数量的最新快照。 |
142+ ---
0 commit comments