Skip to content

Commit 08e4772

Browse files
[DRAFT] AI Translate 81-how-databend-works to Simplified-Chinese (4/6) (#2398)
* 🌐 Translate 01-how-databend-fuse-engine-works.md to Simplified-Chinese Translated using anthropic/claude-sonnet-4 Directory: `docs/en/guides/81-how-databend-works` ### 📊 Translation Statistics - Session ID: 5534c7 - File 2/6 (33.3%) - Total Time: 3m 38s - Input Tokens: 10,129 - Output Tokens: 8,572 - API Calls: 4 - Start Time: 2025-06-06 14:35:53 - End Time: 2025-06-06 14:39:32 ### 📄 Translated Files | **Source** | **Output** | **Language** | | :--- | :--- | :--- | | `docs/en/guides/81-how-databend-works/_category_.json` | `docs/en/guides/81-how-databend-works/_category_.json` | Simplified-Chinese | | `docs/en/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md` | `docs/en/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md` | Simplified-Chinese | * 🌐 Translate 04-how-databend-share-data-works.md to Simplified-Chinese Translated using anthropic/claude-sonnet-4 Directory: `docs/en/guides/81-how-databend-works` ### 📊 Translation Statistics - Session ID: 5534c7 - File 3/6 (50.0%) - Total Time: 6m 26s - Input Tokens: 15,962 - Output Tokens: 14,191 - API Calls: 6 - Start Time: 2025-06-06 14:35:53 - End Time: 2025-06-06 14:42:19 ### 📄 Translated Files | **Source** | **Output** | **Language** | | :--- | :--- | :--- | | `docs/en/guides/81-how-databend-works/_category_.json` | `docs/en/guides/81-how-databend-works/_category_.json` | Simplified-Chinese | | `docs/en/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md` | `docs/en/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md` | Simplified-Chinese | | `docs/en/guides/81-how-databend-works/04-how-databend-share-data-works.md` | `docs/en/guides/81-how-databend-works/04-how-databend-share-data-works.md` | Simplified-Chinese | * 🌐 Translate index.md to Simplified-Chinese Translated using anthropic/claude-sonnet-4 Directory: `docs/en/guides/81-how-databend-works` ### 📊 Translation Statistics - Session ID: 5534c7 - File 4/6 (66.7%) - Total Time: 7m 6s - Input Tokens: 17,446 - Output Tokens: 15,136 - API Calls: 8 - Start Time: 2025-06-06 14:35:53 - End Time: 2025-06-06 14:43:00 ### 📄 Translated Files | **Source** | **Output** | **Language** | | :--- | :--- | :--- | | `docs/en/guides/81-how-databend-works/_category_.json` | `docs/en/guides/81-how-databend-works/_category_.json` | Simplified-Chinese | | `docs/en/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md` | `docs/en/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md` | Simplified-Chinese | | `docs/en/guides/81-how-databend-works/04-how-databend-share-data-works.md` | `docs/en/guides/81-how-databend-works/04-how-databend-share-data-works.md` | Simplified-Chinese | | `docs/en/guides/81-how-databend-works/index.md` | `docs/en/guides/81-how-databend-works/index.md` | Simplified-Chinese | --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent b85ee5e commit 08e4772

File tree

3 files changed

+217
-83
lines changed

3 files changed

+217
-83
lines changed

docs/cn/guides/81-how-databend-works/01-how-databend-fuse-engine-works.md

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -4,221 +4,221 @@ title: Fuse 引擎工作原理
44

55
## Fuse 引擎
66

7-
Fuse 引擎是 Databend 的核心存储引擎,经过优化,可高效管理**PB 级**数据在**云对象存储**上的存储。默认情况下,在 Databend 中创建的表会自动使用此引擎 (`ENGINE=FUSE`)。受 Git 启发,其基于快照的设计实现了强大的数据版本控制 (例如时间回溯),并通过高级剪枝和索引提供了**高查询性能**
7+
Fuse 引擎是 Databend 的核心存储引擎,专为在**云对象存储**上高效管理 **PB 级**数据而优化。默认情况下,在 Databend 中创建的表会自动使用此引擎`ENGINE=FUSE`。受 Git 启发,其基于快照的设计支持强大的数据版本控制功能(如时间回溯(Time Travel)),并通过先进的剪枝和索引技术提供**高查询性能**
88

9-
本文档解释了其核心概念和工作原理
9+
本文档阐述其核心概念与工作原理
1010

1111
## 核心概念
1212

13-
Fuse 引擎使用三种核心结构来组织数据,类似于 Git:
13+
Fuse 引擎使用三个核心结构组织数据,设计灵感源自 Git:
1414

15-
* **快照 (类似于 Git 提交):** 定义了表在某个时间点的状态的不可变引用,通过指向特定的 Segment 来实现。支持时间回溯。
16-
* **Segment (类似于 Git 树):** Block 的集合,包含用于快速数据跳过 (剪枝) 的汇总统计信息。可以在不同快照之间共享
17-
* **Block (类似于 Git Blob):** 不可变的数据文件 (Parquet 格式),包含实际的行和详细的列级统计信息,用于细粒度剪枝。
15+
* **快照(Snapshot,类似 Git 提交):** 不可变引用,通过指向特定段(Segment)定义表在时间点的状态,支持时间回溯(Time Travel)
16+
* **段(Segment,类似 Git 树):** 块(Block的集合,包含用于快速数据跳过(剪枝)的汇总统计信息,可在快照间共享
17+
* **块(Block,类似 Git 对象):** 不可变数据文件(Parquet 格式),存储实际行数据及详细的列级统计信息,用于细粒度剪枝。
1818

1919
```
20-
Table HEAD
20+
表头(Table HEAD
2121
2222
2323
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
24-
│ SEGMENT A │◄────│ SNAPSHOT 2 │────►│ SEGMENT B
25-
│ │ │ Previous: │ │ │
26-
└───────┬───────┘ │ SNAPSHOT 1 │ └───────┬───────┘
24+
段(SEGMENT A│◄────│ 快照 2 │────►│ 段(SEGMENT B
25+
│ │ │ 前一个: │ │ │
26+
└───────┬───────┘ │ 快照 1 │ └───────┬───────┘
2727
│ └───────────────┘ │
2828
│ │ │
2929
│ ▼ │
3030
│ ┌───────────────┐ │
31-
│ │ SNAPSHOT 1 │ │
31+
│ │ 快照 1 │ │
3232
│ │ │ │
3333
│ └───────────────┘ │
3434
│ │
3535
▼ ▼
3636
┌───────────────┐ ┌───────────────┐
37-
BLOCK 1 │ │ BLOCK 2
37+
1 │ │ 块 2
3838
│ (cloud.txt) │ │(warehouse.txt)│
3939
└───────────────┘ └───────────────┘
4040
```
4141

4242
## 写入工作原理
4343

44-
当您向表中添加数据时,Fuse 引擎会创建一系列对象。让我们逐步了解这个过程
44+
向表添加数据时,Fuse 引擎会构建对象链。过程如下
4545

46-
### 步骤 1: 创建表
46+
### 步骤 1创建表
4747

4848
```sql
4949
CREATE TABLE git(file VARCHAR, content VARCHAR);
5050
```
5151

52-
此时,表已存在但未包含任何数据
52+
此时表无数据
5353

5454
```
55-
(Empty table with no data)
55+
(空表,无数据)
5656
```
5757

58-
### 2: 插入第一批数据
58+
### 步骤 2:插入第一条数据
5959

6060
```sql
6161
INSERT INTO git VALUES('cloud.txt', '2022/05/06, Databend, Cloud');
6262
```
6363

64-
第一次插入后,Fuse 引擎会创建初始快照、Segment 和 Block
64+
首次插入后,Fuse 引擎创建初始快照、段和块
6565

6666
```
67-
Table HEAD
67+
表头(Table HEAD
6868
6969
7070
┌───────────────┐
71-
SNAPSHOT 1
71+
快照 1
7272
│ │
7373
└───────┬───────┘
7474
7575
7676
┌───────────────┐
77-
SEGMENT A
77+
段 A
7878
│ │
7979
└───────┬───────┘
8080
8181
8282
┌───────────────┐
83-
BLOCK 1
83+
块 1
8484
│ (cloud.txt) │
8585
└───────────────┘
8686
```
8787

88-
### 步骤 3: 插入更多数据
88+
### 步骤 3插入更多数据
8989

9090
```sql
9191
INSERT INTO git VALUES('warehouse.txt', '2022/05/07, Databend, Warehouse');
9292
```
9393

94-
当我们插入更多数据时,Fuse 引擎会创建一个新的快照,该快照引用原始 Segment 和新的 Segment
94+
插入新数据时,Fuse 引擎创建引用原始段和新段的新快照
9595

9696
```
97-
Table HEAD
97+
表头(Table HEAD
9898
9999
100100
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
101-
SEGMENT A │◄────│ SNAPSHOT 2 │────►│ SEGMENT B
102-
│ │ │ Previous: │ │ │
103-
└───────┬───────┘ │ SNAPSHOT 1 │ └───────┬───────┘
101+
A │◄────│ 快照 2 │────►│ 段 B
102+
│ │ │ 前一个: │ │ │
103+
└───────┬───────┘ │ 快照 1 │ └───────┬───────┘
104104
│ └───────────────┘ │
105105
│ │ │
106106
│ ▼ │
107107
│ ┌───────────────┐ │
108-
│ │ SNAPSHOT 1 │ │
108+
│ │ 快照 1 │ │
109109
│ │ │ │
110110
│ └───────────────┘ │
111111
│ │
112112
▼ ▼
113113
┌───────────────┐ ┌───────────────┐
114-
BLOCK 1 │ │ BLOCK 2
114+
1 │ │ 块 2
115115
│ (cloud.txt) │ │(warehouse.txt)│
116116
└───────────────┘ └───────────────┘
117117
```
118118

119119
## 读取工作原理
120120

121-
当您查询数据时,Fuse 引擎会使用智能剪枝来高效查找数据
121+
查询数据时,Fuse 引擎通过智能剪枝高效定位目标数据
122122

123123
```
124-
Query: SELECT * FROM git WHERE file = 'cloud.txt';
124+
查询(Query):SELECT * FROM git WHERE file = 'cloud.txt';
125125
126-
Table HEAD
126+
表头(Table HEAD
127127
128128
129129
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
130-
SEGMENT A │◄────│ SNAPSHOT 2 │────►│ SEGMENT B
131-
CHECK │ │ │ │ CHECK
130+
A │◄────│ 快照 2 │────►│ 段 B
131+
检查 │ │ │ │ 检查
132132
└───────┬───────┘ └───────────────┘ └───────────────┘
133133
│ ✗
134-
(Skip - doesn't contain
135-
│ 'cloud.txt')
134+
(跳过 - 不包含
135+
│ 'cloud.txt'
136136
137137
┌───────────────┐
138-
BLOCK 1
139-
CHECK
138+
块 1
139+
检查
140140
└───────┬───────┘
141141
142-
│ ✓ (Contains 'cloud.txt')
142+
│ ✓ (包含 'cloud.txt'
143143
144-
Read this block
144+
读取此块
145145
```
146146

147147
### 智能剪枝过程
148148

149149
```
150150
┌─────────────────────────────────────────┐
151-
│ Query: WHERE file = 'cloud.txt'
151+
查询(Query):WHERE file = 'cloud.txt' │
152152
└─────────────────┬───────────────────────┘
153153
154154
155155
┌─────────────────────────────────────────┐
156-
Check SEGMENT A
157-
Min file value: 'cloud.txt' │
158-
Max file value: 'cloud.txt' │
156+
检查段 A
157+
最小文件值:'cloud.txt'
158+
最大文件值:'cloud.txt'
159159
│ │
160-
Result: ✓ Might contain 'cloud.txt' │
160+
结果:✓ 可能包含 'cloud.txt'
161161
└─────────────────┬───────────────────────┘
162162
163163
164164
┌─────────────────────────────────────────┐
165-
Check SEGMENT B
166-
Min file value: 'warehouse.txt' │
167-
Max file value: 'warehouse.txt' │
165+
检查段 B
166+
最小文件值:'warehouse.txt'
167+
最大文件值:'warehouse.txt'
168168
│ │
169-
Result: ✗ Cannot contain 'cloud.txt' │
169+
结果:✗ 不可能包含 'cloud.txt'
170170
└─────────────────┬───────────────────────┘
171171
172172
173173
┌─────────────────────────────────────────┐
174-
Check BLOCK 1 in SEGMENT A
175-
Min file value: 'cloud.txt' │
176-
Max file value: 'cloud.txt' │
174+
检查段 A 中的块 1
175+
最小文件值:'cloud.txt'
176+
最大文件值:'cloud.txt'
177177
│ │
178-
Result: ✓ Contains 'cloud.txt' │
178+
结果:✓ 包含 'cloud.txt'
179179
└─────────────────┬───────────────────────┘
180180
181181
182182
┌─────────────────────────────────────────┐
183-
Read only BLOCK 1
183+
仅读取块 1
184184
└─────────────────────────────────────────┘
185185
```
186186

187-
## 基于快照的特性
187+
## 基于快照的功能
188188

189-
Fuse 引擎的快照架构支持强大的数据管理功能
189+
Fuse 引擎的快照架构支持以下高级数据管理能力
190190

191-
### 时间回溯
191+
### 时间回溯(Time Travel)
192192

193-
查询任意时间点的数据。支持数据分支、标记和治理,并提供完整的审计跟踪和错误恢复功能
193+
查询任意历史时间点的数据状态,支持数据分支、标记和治理,并提供完整审计跟踪与错误恢复
194194

195-
### 零拷贝 Schema 演进
195+
### 零拷贝模式演进
196196

197-
**无需重写任何底层数据文件**即可修改表的结构 (添加列、删除列、重命名、更改类型)
197+
**无需重写底层数据文件**即可修改表结构(添加列、删除列、重命名、更改类型
198198

199-
- 更改是仅涉及元数据的操作,记录在新的快照中
200-
- 这是即时操作,无需停机,并避免了耗时的数据迁移任务。旧数据仍可使用其原始 Schema 进行访问
199+
- 变更仅为元数据操作,记录于新快照中
200+
- 操作瞬时完成,无需停机,避免高成本数据迁移,旧数据仍可通过原始模式访问
201201

202-
## 用于查询加速的高级索引 (Fuse Engine)
202+
## 查询加速的高级索引(Fuse 引擎)
203203

204-
除了使用统计信息进行基本的块/段剪枝之外,Fuse Engine 还提供专门的二级索引,以进一步加速特定的查询模式
204+
除基于统计信息的块/段剪枝外,Fuse 引擎提供专用二级索引以加速特定查询模式
205205

206-
| 索引类型 | 简要描述 | 加速查询,例如... | 查询代码片段示例 |
207-
| :------------------- | :-------------------------------------------- | :---------------------------------------- | :------------------------------ |
208-
| **聚合索引** | 预计算指定组的聚合结果 | 更快的 `COUNT``SUM``AVG`... + `GROUP BY` | `SELECT COUNT(*)... GROUP BY city` |
209-
| **全文索引** | 用于文本中快速关键字搜索的倒排索引 | 使用 `MATCH` 进行文本搜索 (例如,日志) | `WHERE MATCH(log_entry, 'error')` |
210-
| **JSON 索引** | 索引 JSON 文档中的特定路径/键 | 根据特定 JSON 路径/值进行过滤 | `WHERE event_data:user.id = 123` |
211-
| **布隆过滤器索引** | 概率检查,用于快速跳过不匹配的块 | 快速点查找 (`=`) 和 `IN` 列表过滤 | `WHERE user_id = 'xyz'` |
206+
| 索引类型 | 简要描述 | 加速查询类型 | 示例查询片段 |
207+
| :------------------ | :-------------------------------------------------------- | :-------------------------------------------------- | :-------------------------------------- |
208+
| **聚合索引(Aggregate Index)** | 为指定分组预计算聚合结果 | 加速 `COUNT``SUM``AVG`... + `GROUP BY` | `SELECT COUNT(*)... GROUP BY city` |
209+
| **全文索引(Full-Text Index)** | 支持文本内关键词快速检索的倒排索引 | 使用 `MATCH` 的文本搜索(如日志分析) | `WHERE MATCH(log_entry, 'error')` |
210+
| **JSON 索引(JSON Index)** | 索引 JSON 文档内特定路径/键 | 针对 JSON 路径/值的过滤 | `WHERE event_data:user.id = 123` |
211+
| **布隆过滤器索引(Bloom Filter Index)** | 通过概率检查快速跳过不匹配块 | 点查找(`=`)及 `IN` 列表过滤 | `WHERE user_id = 'xyz'` |
212212

213-
## 对比:Databend Fuse Engine 与 Apache Iceberg
213+
## 对比:Databend Fuse 引擎 vs. Apache Iceberg
214214

215-
_**注意:** 此比较专门关注 **表格式特性**。作为 Databend 的原生表格式,Fuse 不断发展,旨在提高 **可用性和性能**所示特性为当前特性;预计会有变化_
215+
_**注意:** 本对比聚焦**表格式功能**。作为 Databend 原生表格式,Fuse 持续演进以提升**可用性与性能**功能基于当前版本,未来可能变更_
216216

217-
| 特性 | Apache Iceberg | Databend Fuse Engine |
218-
| :------------------- | :--------------------------------- | :----------------------------------- |
219-
| **元数据结构** | 清单列表 -> 清单文件 -> 数据文件 | **快照** -> 段 -> 块 |
220-
| **统计信息级别** | 文件级 (+分区) | **多级** (快照、段、块) → 更精细的剪枝 |
221-
| **剪枝能力** | 良好 (文件/分区统计信息) | **优秀** (多级统计信息 + 二级索引) |
222-
| **Schema 演进** | 支持 (元数据更改) | **零拷贝** (仅元数据,即时) |
223-
| **数据聚类** | 排序 (写入时) | **自动** 优化 (后台) |
224-
| **流式支持** | 基本流式摄取 | **高级增量** (插入/更新跟踪) |
217+
| 功能 | Apache Iceberg | Databend Fuse 引擎 |
218+
| :---------------------- | :--------------------------------- | :----------------------------------- |
219+
| **元数据结构** | 清单列表 -> 清单文件 -> 数据文件 | **快照(Snapshot)** -> 段(Segment)-> 块(Block) |
220+
| **统计级别** | 文件级(+分区(Partition)) | **多级**快照、段、块)→ 更精细剪枝 |
221+
| **剪枝能力** | 良好文件/分区统计) | **优秀**(多级统计 + 二级索引 |
222+
| **模式演进** | 支持元数据更改 | **零拷贝**仅元数据,瞬时) |
223+
| **数据聚簇** | 排序写入时 | **自动**优化(后台) |
224+
| **流式支持** | 基本流式摄取 | **高级增量**插入/更新跟踪 |

0 commit comments

Comments
 (0)