Skip to content

Commit 3abf8b5

Browse files
github-actions[bot]Chasen-Zhang
authored andcommitted
💬Generate LLM translations
1 parent 8f2bf37 commit 3abf8b5

File tree

2 files changed

+75
-48
lines changed

2 files changed

+75
-48
lines changed

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

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ title: 查询与转换
33
slug: querying-stage
44
---
55

6-
Databend 通过其 ELT(提取、加载、转换)模型引入了数据处理的创新方法。该模型的一个重要方面是查询暂存文件中的数据
6+
Databend 通过其 ELT(提取、加载、转换)模型引入了数据处理的创新方法。该模型的一个重要方面是查询阶段文件中的数据
77

8-
您可以使用 `SELECT` 语句查询暂存文件中的数据。此功能适用于以下类型的暂存
8+
您可以使用 `SELECT` 语句查询阶段文件中的数据。此功能适用于以下类型的阶段
99

10-
- 用户暂存、内部暂存或外部暂存
10+
- 用户阶段、内部阶段或外部阶段
1111
- 在您的对象存储中创建的存储桶或容器,例如 Amazon S3、Google Cloud Storage 和 Microsoft Azure。
1212
- 可通过 HTTPS 访问的远程服务器。
1313

14-
此功能在加载数据之前或之后检查或查看暂存文件内容时特别有用
14+
此功能在加载数据之前或之后检查或查看阶段文件内容时特别有用
1515

1616
## 语法和参数
1717

@@ -22,12 +22,13 @@ FROM {@<stage_name>[/<path>] [<table_alias>] | '<uri>' [<table_alias>]}
2222
[<connection_parameters>],
2323
[ PATTERN => '<regex_pattern>'],
2424
[ FILE_FORMAT => 'CSV | TSV | NDJSON | PARQUET | ORC | <custom_format_name>'],
25-
[ FILES => ( '<file_name>' [ , '<file_name>' ... ])]
25+
[ FILES => ( '<file_name>' [ , '<file_name>' ... ])],
26+
[ CASE_SENSITIVE => true | false ]
2627
)]
2728
```
2829

2930
:::note
30-
当暂存路径包含空格或括号等特殊字符时,您可以将整个路径用单引号括起来,如下面的 SQL 语句所示:
31+
当阶段路径包含空格或括号等特殊字符时,您可以将整个路径用单引号括起来,如下面的 SQL 语句所示:
3132

3233
```sql
3334
SELECT * FROM 's3://mybucket/dataset(databend)/' ...
@@ -47,13 +48,13 @@ CREATE FILE FORMAT my_custom_csv TYPE=CSV FIELD_DELIMITER='\t';
4748
SELECT $1 FROM @my_stage/file (FILE_FORMAT=>'my_custom_csv');
4849
```
4950

50-
请注意,当您需要从暂存文件查询或执行 COPY INTO 操作时,必须在创建暂存时明确指定文件格式。否则,将应用默认格式 Parquet。请参见以下示例:
51+
请注意,当您需要从阶段文件查询或执行 COPY INTO 操作时,必须在创建阶段时明确指定文件格式。否则,将应用默认格式 Parquet。请参见以下示例:
5152

5253
```sql
5354
CREATE STAGE my_stage FILE_FORMAT = (TYPE = CSV);
5455
```
5556

56-
在您以不同于指定暂存格式的格式暂存文件的情况下,您可以在 SELECT 或 COPY INTO 语句中明确指定文件格式。以下是示例:
57+
在您以不同于指定阶段格式的格式阶段文件的情况下,您可以在 SELECT 或 COPY INTO 语句中明确指定文件格式。以下是示例:
5758

5859
```sql
5960
SELECT $1 FROM @my_stage (FILE_FORMAT=>'NDJSON');
@@ -67,26 +68,49 @@ PATTERN 选项允许您指定一个基于 [PCRE2](https://www.pcre.org/current/d
6768

6869
### FILES
6970

70-
FILES 选项则允许您明确指定一个或多个用逗号分隔的文件名。此选项允许您直接过滤并查询文件夹中特定文件的数据。例如,如果您想从 Parquet 文件 "books-2023.parquet"、"books-2022.parquet" 和 "books-2021.parquet" 中查询数据,您可以在 FILES 选项中提供这些文件名。
71+
FILES 选项允许您明确指定一个或多个用逗号分隔的文件名。此选项允许您直接过滤和查询文件夹中特定文件的数据。例如,如果您想从 Parquet 文件 "books-2023.parquet"、"books-2022.parquet" 和 "books-2021.parquet" 中查询数据,您可以在 FILES 选项中提供这些文件名。
72+
73+
### CASE_SENSITIVE
74+
75+
CASE_SENSITIVE 参数确定查询的 Parquet 文件中的列名是否区分大小写:
76+
77+
- `CASE_SENSITIVE => false`(默认):列名不区分大小写,即 `b``B` 被视为相同。
78+
- `CASE_SENSITIVE => true`:列名区分大小写,即只有完全匹配(包括大小写)才有效。例如,如果文件中的列名为 `B`,则查询 `B` 将成功,但如果列名为 `b`,则查询将失败。
79+
80+
例如,如果您在 Parquet 文件中有一个名为 `MinTemp` 的列,当 `CASE_SENSITIVE` 设置为 `false` 时,您可以使用以下任一语句查询它:
81+
82+
```sql
83+
SELECT MinTemp FROM '@mystage/weather.parquet'(CASE_SENSITIVE=>false);
84+
85+
SELECT MINTEMP FROM '@mystage/weather.parquet'(CASE_SENSITIVE=>false);
86+
87+
SELECT mintemp FROM '@mystage/weather.parquet'(CASE_SENSITIVE=>false);
88+
```
89+
90+
`CASE_SENSITIVE` 设置为 `true` 时,您必须使用文件中显示的完全列名:
91+
92+
```sql
93+
SELECT `MinTemp` FROM '@mystage/weather.parquet'(CASE_SENSITIVE=>true);
94+
```
7195

7296
### table_alias
7397

74-
在 SELECT 语句中处理暂存文件时,如果没有可用的表名,您可以为文件分配一个别名。这允许您将文件视为一个表,其字段作为表中的列。这在 SELECT 语句中处理多个表或选择特定列时非常有用。以下是一个示例:
98+
在 SELECT 语句中处理阶段文件时,如果没有可用的表名,您可以为文件分配一个别名。这允许您将文件视为表,其字段作为表中的列。这在 SELECT 语句中处理多个表或选择特定列时非常有用。以下是一个示例:
7599

76100
```sql
77-
-- 别名 't1' 代表暂存文件,而 't2' 是一个常规表
101+
-- 别名 't1' 表示阶段文件,而 't2' 是一个常规表
78102
SELECT t1.$1, t2.$2 FROM @my_stage t1, t2;
79103
```
80104

81105
### $col_position
82106

83-
在从暂存文件选择时,您可以使用列位置,这些位置从 1 开始。目前,使用列位置从暂存文件进行 SELECT 操作的功能仅限于 Parquet、NDJSON、CSV 和 TSV 格式。
107+
在从阶段文件选择时,您可以使用列位置,这些位置从 1 开始。目前,使用列位置从阶段文件进行 SELECT 操作的功能仅限于 Parquet、NDJSON、CSV 和 TSV 格式。
84108

85109
```sql
86110
SELECT $2 FROM @my_stage (FILES=>('sample.csv')) ORDER BY $1;
87111
```
88112

89-
需要注意的是,在使用 NDJSON 时,只允许 $1,代表整行并具有 Variant 数据类型。要选择特定字段,请使用 `$1:<field_name>`
113+
需要注意的是,在处理 NDJSON 时,仅允许 $1,表示整行并具有 Variant 数据类型。要选择特定字段,请使用 `$1:<field_name>`
90114

91115
```sql
92116
-- 使用列位置选择整行:
@@ -96,7 +120,7 @@ SELECT $1 FROM @my_stage (FILE_FORMAT=>'NDJSON')
96120
SELECT $1:a FROM @my_stage (FILE_FORMAT=>'NDJSON')
97121
```
98122

99-
在使用 COPY INTO 从暂存文件复制数据时,Databend 会将 NDJSON 文件顶层的字段名称与目标表中的列名称匹配,而不是依赖列位置。在下面的示例中,表 _my_table_ 应具有与 NDJSON 文件顶层字段名称相同的列定义
123+
在使用 COPY INTO 从阶段文件复制数据时,Databend NDJSON 文件顶层的字段名与目标表中的列名匹配,而不是依赖列位置。在下面的示例中,表 _my_table_ 应具有与 NDJSON 文件顶层字段名相同的列定义
100124

101125
```sql
102126
COPY INTO my_table FROM (SELECT $1 SELECT @my_stage t) FILE_FORMAT = (type = NDJSON)
@@ -112,33 +136,33 @@ COPY INTO my_table FROM (SELECT $1 SELECT @my_stage t) FILE_FORMAT = (type = NDJ
112136

113137
## 限制
114138

115-
在查询暂存文件时,以下限制适用于特定格式的约束:
139+
在查询阶段文件时,以下限制适用于特定格式的约束:
116140

117141
- 使用符号 \* 选择所有字段仅支持 Parquet 文件。
118142
- 在从 CSV 或 TSV 文件选择时,所有字段都被解析为字符串,并且 SELECT 语句仅允许使用列位置。此外,文件中的字段数量有限制,不得超过 max.N+1000。例如,如果语句是 `SELECT $1, $2 FROM @my_stage (FILES=>('sample.csv'))`,则 sample.csv 文件最多可以有 1,002 个字段。
119143

120144
## 教程
121145

122-
### 教程 1:从暂存查询数据
146+
### 教程 1:从阶段查询数据
123147

124148
import Tabs from '@theme/Tabs';
125149
import TabItem from '@theme/TabItem';
126150

127151
此示例展示了如何查询存储在不同位置的 Parquet 文件中的数据。点击下面的标签查看详细信息。
128152

129153
<Tabs groupId="query2stage">
130-
<TabItem value="Stages" label="暂存">
154+
<TabItem value="Stages" label="阶段">
131155

132-
假设您有一个名为 [books.parquet](https://datafuse-1253727613.cos.ap-hongkong.myqcloud.com/data/books.parquet) 的示例文件,并且您已将其上传到用户暂存、名为 _my_internal_stage_ 的内部暂存和名为 _my_external_stage_ 的外部暂存。要上传文件到暂存,请使用 [PRESIGN](/sql/sql-commands/ddl/stage/presign) 方法。
156+
假设您有一个名为 [books.parquet](https://datafuse-1253727613.cos.ap-hongkong.myqcloud.com/data/books.parquet) 的示例文件,并且您已将其上传到用户阶段、名为 _my_internal_stage_ 的内部阶段和名为 _my_external_stage_ 的外部阶段。要上传文件到阶段,请使用 [PRESIGN](/sql/sql-commands/ddl/stage/presign) 方法。
133157

134158
```sql
135-
-- 查询用户暂存中的文件
159+
-- 查询用户阶段中的文件
136160
SELECT * FROM @~/books.parquet;
137161

138-
-- 查询内部暂存中的文件
162+
-- 查询内部阶段中的文件
139163
SELECT * FROM @my_internal_stage/books.parquet;
140164

141-
-- 查询外部暂存中的文件
165+
-- 查询外部阶段中的文件
142166
SELECT * FROM @my_external_stage/books.parquet;
143167
```
144168

0 commit comments

Comments
 (0)