Skip to content

Commit a1aa9f4

Browse files
🌐 Add LLM Translations (#874)
* 💬Generate LLM translations * docs: 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 5ccfdd2 commit a1aa9f4

File tree

7 files changed

+393
-382
lines changed

7 files changed

+393
-382
lines changed

docs/cn/guides/40-load-data/04-transform/05-data-load-transform.md

Lines changed: 36 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
2-
title: 在加载时转换数据
2+
title: 加载时数据转换
33
---
44

5-
Databend 提供了一个强大的功能,允许在使用 [COPY INTO](/sql/sql-commands/dml/dml-copy-into-table) 命令加载过程中进行数据转换,语法如下
5+
Databend 提供了一项强大的功能,允许在加载过程中使用 [COPY INTO](/sql/sql-commands/dml/dml-copy-into-table) 命令进行数据转换,其语法如下
66

77
```sql
88
COPY INTO [<database_name>.]<table_name> [ ( <col_name> [ , <col_name> ... ] ) ]
@@ -12,42 +12,38 @@ COPY INTO [<database_name>.]<table_name> [ ( <col_name> [ , <col_name> ... ] ) ]
1212
[ PATTERN = '<regex_pattern>' ]
1313
[ FILE_FORMAT = (
1414
FORMAT_NAME = '<your-custom-format>'
15-
| TYPE = { CSV | TSV | NDJSON | PARQUET | XML } [ formatTypeOptions ]
15+
| TYPE = { CSV | TSV | NDJSON | PARQUET | ORC } [ formatTypeOptions ]
1616
) ]
1717
[ copyOptions ]
1818
```
1919

20-
- _COPY INTO 也支持其他语法选项。更多详情,请查看 [COPY INTO](/sql/sql-commands/dml/dml-copy-into-table)_
20+
- _COPY INTO 还支持其他语法选项。更多详情,请参阅 [COPY INTO](/sql/sql-commands/dml/dml-copy-into-table)_
2121

22-
这个功能简化了您的 ETL 流程,通过集成基本转换,消除了临时表的需要。通过在加载过程中转换数据,您可以有效地简化您的 ETL 流程。以下是使用此功能增强数据加载的实用方法
22+
此功能通过集成基本转换简化了 ETL 流程,无需临时表。通过在加载时转换数据,您可以有效地优化 ETL 过程。以下是使用此功能增强数据加载的几种实用方法
2323

24-
- **加载数据列的子集**:允许您从数据集中选择性地导入特定列,专注于与您的分析或应用程序相关的数据。
25-
26-
- **在加载时重新排序列**:使您能够在加载数据时更改列的顺序,确保所需的列排列,以更好地组织数据或符合特定要求。
27-
28-
- **在加载时转换数据类型**:提供在数据加载过程中转换某些列的数据类型的能力,允许您确保与所需数据格式或分析技术的一致性和兼容性。
29-
30-
- **在加载时执行算术运算**:允许您在数据加载时对特定列执行数学计算和操作,便于进行高级数据转换或生成新的派生数据。
31-
32-
- **将数据加载到包含额外列的表中**:使您能够将数据加载到已包含额外列的表中,适应现有结构,同时高效地映射和插入数据到相应的列中。
24+
- **加载数据集的子集列**:允许您有选择地从数据集中导入特定列,专注于与您的分析或应用相关的数据。
25+
- **加载时重新排序列**:使您能够在加载数据时更改列的顺序,确保所需列的排列,以便更好地组织数据或满足特定要求。
26+
- **加载时转换数据类型**:提供在数据加载过程中转换某些列数据类型的能力,允许您确保与所需数据格式或分析技术的兼容性和一致性。
27+
- **加载时执行算术运算**:允许您在数据加载时对特定列执行数学计算和操作,促进高级数据转换或生成新的派生数据。
28+
- **加载数据到具有额外列的表**:使您能够将数据加载到已包含额外列的表中,同时有效地映射和插入数据到相应的列,以适应现有结构。
3329

3430
## 教程
3531

36-
本节提供了几个简短的教程,提供了在加载数据时如何进行转换的实用指导。每个教程将通过两种方式引导您完成数据加载过程:直接从远程文件加载和从暂存文件加载。请注意,这些教程彼此独立,您不需要按顺序完成它们。根据您的需要随意跟随
32+
本节提供了几个简短的教程,为如何在加载数据时进行数据转换提供实用指导。每个教程都将引导您通过两种方式进行数据加载:直接从远程文件加载和从已暂存的文件加载。请注意,这些教程相互独立,您无需按顺序完成它们。根据您的需求自由跟随
3733

3834
### 开始之前
3935

40-
在开始之前,您需要创建一个 Stage 并生成一个示例文件;这里有一个 Parquet 文件作为示例
36+
在开始之前,您需要创建一个阶段并生成一个示例文件;这里以 Parquet 文件为例
4137

4238
```sql
4339
CREATE STAGE my_parquet_stage;
4440
COPY INTO @my_parquet_stage
4541
FROM (
46-
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id, -- 生成一个顺序 id
47-
'Name_' || CAST(number AS VARCHAR) AS name, -- 为每行生成一个唯一名称
48-
20 + MOD(number, 23) AS age, -- 生成 20 到 42 之间的年龄
42+
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id, -- 生成顺序 id
43+
'Name_' || CAST(number AS VARCHAR) AS name, -- 为每行生成唯一名称
44+
20 + MOD(number, 23) AS age, -- 生成年龄,范围在 20 到 42 之间
4945
DATE_ADD('day', MOD(number, 60), '2022-01-01') AS onboarded -- 从 2022-01-01 开始生成入职日期
50-
FROM numbers(10) -- 生成 10
46+
FROM numbers(10) -- 生成 10 行数据
5147
)
5248
FILE_FORMAT = (TYPE = PARQUET);
5349
```
@@ -79,9 +75,9 @@ SELECT * FROM @my_parquet_stage;
7975

8076
### 教程 1 - 加载数据列的子集
8177

82-
在本教程中,您将创建一个比示例文件中列数少的表,然后用从示例文件中提取的相应数据填充它
78+
在本教程中,您将创建一个列数少于示例文件的表,然后从示例文件中提取相应数据填充该表
8379

84-
1. 创建一个没有 'age' 列的表。
80+
1. 创建一个不包含 'age' 列的表。
8581

8682
```sql
8783
CREATE TABLE employees_no_age (
@@ -91,7 +87,7 @@ CREATE TABLE employees_no_age (
9187
);
9288
```
9389

94-
2. 从暂存的示例文件中加载数据,除了 'age' 列。
90+
2. 从暂存的示例文件中加载数据,排除 'age' 列。
9591

9692
```sql
9793
-- 从暂存文件加载
@@ -112,9 +108,7 @@ PATTERN = '.*parquet';
112108
SELECT * FROM employees_no_age;
113109
```
114110

115-
```
116111
结果:
117-
```
118112

119113
```
120114
┌──────────────────────────────────────────────────────────┐
@@ -135,9 +129,9 @@ SELECT * FROM employees_no_age;
135129

136130
### 教程 2 - 加载时重新排序列
137131

138-
在本教程中,您将创建一个表,该表具有与样本文件相同的列,但顺序不同,然后用从样本文件中提取的相应数据填充它
132+
在本教程中,您将创建一个与示例文件具有相同列但顺序不同的表,然后从示例文件中提取相应数据填充该表
139133

140-
1. 创建一个表,其中 'name' 和 'age' 列的顺序互换
134+
1. 创建一个 'name' 和 'age' 列交换位置的表
141135

142136
```sql
143137
CREATE TABLE employees_new_order (
@@ -148,10 +142,10 @@ CREATE TABLE employees_new_order (
148142
);
149143
```
150144

151-
2. 从 Stage 样本文件中加载数据到新顺序中
145+
2. 从暂存的示例文件中按新顺序加载数据
152146

153147
```sql
154-
-- Load from staged file
148+
-- 从暂存文件加载
155149
COPY INTO employees_new_order
156150
FROM (
157151
SELECT
@@ -192,9 +186,9 @@ SELECT * FROM employees_new_order;
192186

193187
### 教程 3 - 加载时转换数据类型
194188

195-
在本教程中,您将创建一个表,该表具有与样本文件相同的列,除了一个将具有不同的数据类型,然后用从样本文件中提取并转换的数据填充它
189+
在本教程中,您将创建一个与示例文件具有相同列的表,但其中一列将具有不同的数据类型,然后从示例文件中提取并转换数据填充该表
196190

197-
1. 创建一个表,其中 'onboarded' 列的类型为 Date。
191+
1. 创建一个 'onboarded' 列类型为 Date 的表
198192

199193
```sql
200194
CREATE TABLE employees_date (
@@ -205,10 +199,10 @@ CREATE TABLE employees_date (
205199
);
206200
```
207201

208-
2. 从 Stage 样本文件中加载数据,并将 'onboarded' 列转换为 Date 类型。
202+
2. 从暂存的示例文件中加载数据,并将 'onboarded' 列转换为 Date 类型。
209203

210204
```sql
211-
-- Load from staged file
205+
-- 从暂存文件加载
212206
COPY INTO employees_date
213207
FROM (
214208
SELECT
@@ -228,7 +222,7 @@ PATTERN = '.*parquet';
228222
SELECT * FROM employees_date;
229223
```
230224

231-
结果:
225+
结果
232226

233227
```
234228
┌───────────────────────────────────────────────────────────────────────┐
@@ -250,9 +244,9 @@ SELECT * FROM employees_date;
250244

251245
### 教程 4 - 在加载过程中执行算术运算
252246

253-
在本教程中,您将创建一个与样本文件具有相同列的表。然后,您将从样本文件中提取和转换数据,对提取的数据执行算术运算,并用结果填充表格
247+
在本教程中,您将创建一个与示例文件具有相同列的表。然后,您将从示例文件中提取并转换数据,对提取的数据执行算术运算,并将结果填充到表中
254248

255-
1. 创建一个包含与样本文件完全相同的列的表
249+
1. 创建一个与示例文件具有完全相同列的表
256250

257251
```sql
258252
CREATE TABLE employees_new_age (
@@ -263,7 +257,7 @@ CREATE TABLE employees_new_age (
263257
);
264258
```
265259

266-
2. 从暂存的样本文件中加载数据,并在插入目标表之前对 'age' 列的值执行算术运算以增加其值
260+
2. 从暂存的示例文件加载数据,并在将'age'列的值插入目标表之前,对其执行算术运算(加 1)
267261

268262
```sql
269263
-- 从暂存文件加载
@@ -286,7 +280,7 @@ PATTERN = '.*parquet';
286280
SELECT * FROM employees_new_age
287281
```
288282

289-
结果:
283+
结果
290284

291285
```
292286
┌────────────────────────────────────────────────────────────────────────────┐
@@ -306,11 +300,11 @@ SELECT * FROM employees_new_age
306300
└────────────────────────────────────────────────────────────────────────────┘
307301
```
308302

309-
### 教程 5 - 加载到包含额外列的表中
303+
### 教程 5 - 加载到具有额外列的表中
310304

311-
在本教程中,您将创建一个与样本文件相比包含额外列的新表。然后,您将从样本文件中提取数据,并最终将转换后的数据填充到新表中
305+
在本教程中,您将创建一个包含比示例文件更多列的新表。然后,您将从示例文件中提取数据,并将转换后的数据填充到新表中
312306

313-
1. 创建一个包含比样本文件更多列的表
307+
1. 创建一个包含比示例文件更多列的表
314308

315309
```sql
316310
CREATE TABLE employees_plus (
@@ -322,7 +316,7 @@ CREATE TABLE employees_plus (
322316
);
323317
```
324318

325-
2. 从暂存的样本文件中加载数据
319+
2. 从暂存的示例文件加载数据
326320

327321
```sql
328322
-- 从暂存文件加载

docs/cn/guides/40-load-data/index.md

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,96 @@
11
---
2-
title: 将数据加载到 Databend 中
2+
title: 将数据加载到Databend
33
---
44

55
import DetailsWrap from '@site/src/components/DetailsWrap';
66

7-
Databend 的强大 ETL 能力允许从各种来源和格式高效加载数据。
8-
本指南提供了如何将数据导入 Databend 的详细说明。
7+
Databend 强大的 ETL 功能支持从多种来源和格式高效加载数据。本指南详细介绍了如何将数据导入 Databend。
98

10-
## 数据导入和导出
9+
## 数据导入与导出
1110

1211
<DetailsWrap>
1312

1413
<details>
15-
<summary> Parquet 文件 </summary>
14+
<summary> Parquet </summary>
1615

1716
- [如何将 Parquet 文件加载到表中](./03-load-semistructured/00-load-parquet.md)
18-
- [如何将表导出到 Parquet 文件](../50-unload-data/00-unload-parquet.md)
19-
- [如何直接在 Parquet 文件上查询](./04-transform/00-querying-parquet.md)
17+
- [如何将表导出为 Parquet 文件](../50-unload-data/00-unload-parquet.md)
18+
- [如何直接在 Parquet 文件上进行查询](./04-transform/00-querying-parquet.md)
2019

2120
</details>
2221

2322
<details>
24-
<summary> CSV 文件 </summary>
23+
<summary> CSV </summary>
2524

2625
- [如何将 CSV 文件加载到表中](./03-load-semistructured/01-load-csv.md)
27-
- [如何将表导出到 CSV 文件](../50-unload-data/01-unload-csv.md)
28-
- [如何直接在 CSV 文件上查询](./04-transform/01-querying-csv.md)
26+
- [如何将表导出为 CSV 文件](../50-unload-data/01-unload-csv.md)
27+
- [如何直接在 CSV 文件上进行查询](./04-transform/01-querying-csv.md)
2928

3029
</details>
3130

3231
<details>
33-
<summary> TSV 文件 </summary>
32+
<summary> TSV </summary>
3433

3534
- [如何将 TSV 文件加载到表中](./03-load-semistructured/02-load-tsv.md)
36-
- [如何将表导出到 TSV 文件](../50-unload-data/02-unload-tsv.md)
37-
- [如何直接在 TSV 文件上查询](./04-transform/02-querying-tsv.md)
35+
- [如何将表导出为 TSV 文件](../50-unload-data/02-unload-tsv.md)
36+
- [如何直接在 TSV 文件上进行查询](./04-transform/02-querying-tsv.md)
3837

3938
</details>
4039

4140
<details>
42-
<summary> NDJSON 文件 </summary>
41+
<summary> NDJSON </summary>
4342

4443
- [如何将 NDJSON 文件加载到表中](./03-load-semistructured/03-load-ndjson.md)
45-
- [如何将表导出到 NDJSON 文件](../50-unload-data/03-unload-ndjson.md)
46-
- [如何直接在 NDJSON 文件上查询](./04-transform/03-querying-ndjson.md)
44+
- [如何将表导出为 NDJSON 文件](../50-unload-data/03-unload-ndjson.md)
45+
- [如何直接在 NDJSON 文件上进行查询](./04-transform/03-querying-ndjson.md)
4746

4847
</details>
4948

5049
<details>
51-
<summary> HTTP(S)、S3 和更多 </summary>
50+
<summary> ORC </summary>
5251

53-
- [了解 Stage](./00-stage/index.md)
54-
- [从 Stage 加载](./01-load/00-stage.md)
55-
- [从桶加载](./01-load/01-s3.md)
56-
- [从本地文件加载](./01-load/02-local.md)
57-
- [从远程文件加载](./01-load/03-http.md)
52+
- [如何将 ORC 文件加载到表中](./03-load-semistructured/04-load-orc.md)
53+
- [如何直接在 ORC 文件上进行查询](./04-transform/03-querying-orc.md)
5854

5955
</details>
56+
57+
<details>
58+
<summary> HTTP(S), S3, 及其他 </summary>
59+
60+
- [理解 Stages](./00-stage/index.md)
61+
- [从 Stage 加载数据](./01-load/00-stage.md)
62+
- [从 Bucket 加载数据](./01-load/01-s3.md)
63+
- [从本地文件加载数据](./01-load/02-local.md)
64+
- [从远程文件加载数据](./01-load/03-http.md)
65+
66+
</details>
67+
6068
</DetailsWrap>
6169

6270
## 从其他数据库加载数据
6371

6472
<DetailsWrap>
73+
6574
<details>
66-
<summary> 将 MySQL 数据导入到 Databend </summary>
75+
<summary> MySQL数据到Databend </summary>
6776

68-
- [如何将完整的 MySQL 表加载到 Databend](./02-load-db/datax.md)
69-
- [如何将 MySQL 的完整和增量更改同步到 Databend](./02-load-db/debezium.md)
77+
- [如何将 MySQL 表全量加载到 Databend](./02-load-db/datax.md)
78+
- [如何同步 MySQL 的全量和增量变更到 Databend](./02-load-db/debezium.md)
7079

7180
</details>
7281

7382
<details>
74-
<summary> 将 PostgreSQL 数据导入到 Databend </summary>
83+
<summary> PostgreSQL数据到Databend </summary>
7584

76-
- [如何将 PostgreSQL 的完整和增量更改同步到 Databend](./02-load-db/flink-cdc.md)
85+
- [如何同步 PostgreSQL 的全量和增量变更到 Databend](./02-load-db/flink-cdc.md)
7786

7887
</details>
7988

8089
<details>
81-
<summary> 将 Oracle 数据导入到 Databend </summary>
90+
<summary> Oracle数据到Databend </summary>
8291

83-
- [如何将 Oracle 的完整和增量更改同步到 Databend](./02-load-db/flink-cdc.md)
92+
- [如何同步 Oracle 的全量和增量变更到 Databend](./02-load-db/flink-cdc.md)
8493

8594
</details>
8695

87-
</DetailsWrap>
96+
</DetailsWrap>

0 commit comments

Comments
 (0)