Skip to content

Commit 8fe780e

Browse files
🌐 Translate 01-ddl-create-stage.md to Simplified-Chinese
1 parent 309ae8f commit 8fe780e

File tree

1 file changed

+83
-115
lines changed

1 file changed

+83
-115
lines changed

docs/cn/sql-reference/10-sql-commands/00-ddl/03-stage/01-ddl-create-stage.md

Lines changed: 83 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
66

77
<FunctionDescription description="Introduced or updated: v1.2.339"/>
88

9-
创建内部或外部暂存区(Stage
9+
创建内部或外部 Stage。
1010

1111
## 语法
1212

1313
```sql
14-
-- 内部暂存区
14+
-- 内部 Stage
1515
CREATE [ OR REPLACE ] STAGE [ IF NOT EXISTS ] <internal_stage_name>
1616
[ FILE_FORMAT = (
1717
FORMAT_NAME = '<your-custom-format>'
@@ -20,7 +20,7 @@ CREATE [ OR REPLACE ] STAGE [ IF NOT EXISTS ] <internal_stage_name>
2020
[ COPY_OPTIONS = ( copyOptions ) ]
2121
[ COMMENT = '<string_literal>' ]
2222

23-
-- 外部暂存区
23+
-- 外部 Stage
2424
CREATE STAGE [ IF NOT EXISTS ] <external_stage_name>
2525
externalStageParams
2626
[ FILE_FORMAT = (
@@ -33,84 +33,29 @@ CREATE STAGE [ IF NOT EXISTS ] <external_stage_name>
3333

3434
### externalStageParams
3535

36-
import Tabs from '@theme/Tabs';
37-
import TabItem from '@theme/TabItem';
38-
39-
<Tabs groupId="externalstageparams">
40-
41-
<TabItem value="Amazon S3-compatible Storage" label="兼容 Amazon S3 的存储服务">
42-
43-
```sql
44-
externalStageParams ::=
45-
's3://<bucket>[<path/>]'
46-
CONNECTION = (
47-
<connection_parameters>
48-
)
49-
```
50-
51-
有关访问兼容 Amazon S3 的存储服务时可用的连接参数,请参阅[连接参数](/00-sql-reference/51-connect-parameters.md)
52-
53-
:::note
54-
要在 Amazon S3 上创建外部暂存区(External Stage),您还可以使用 IAM 用户帐户,这使您能够为暂存区定义细粒度的访问控制,包括指定对特定 S3 存储桶的读或写等操作。请参阅[示例 3:使用 AWS IAM 用户创建外部暂存区](#example-3-create-external-stage-with-aws-iam-user)
36+
:::tip
37+
对于外部 Stage,建议使用 `CONNECTION` 参数引用预先配置的连接对象,而非内联凭据,以获得更高的安全性与可维护性。
5538
:::
56-
</TabItem>
57-
58-
<TabItem value="Azure Blob Storage" label="Azure Blob Storage">
5939

6040
```sql
6141
externalStageParams ::=
62-
'azblob://<container>[<path/>]'
63-
CONNECTION = (
64-
<connection_parameters>
65-
)
66-
```
67-
68-
有关访问 Azure Blob Storage 时可用的连接参数,请参阅[连接参数](/00-sql-reference/51-connect-parameters.md)
69-
</TabItem>
70-
71-
<TabItem value="Google Cloud Storage" label="Google Cloud Storage">
72-
73-
```sql
74-
externalLocation ::=
75-
'gcs://<bucket>[<path>]'
42+
'<protocol>://<location>'
7643
CONNECTION = (
7744
<connection_parameters>
7845
)
79-
```
80-
81-
有关访问 Google Cloud Storage 时可用的连接参数,请参阅[连接参数](/00-sql-reference/51-connect-parameters.md)
82-
</TabItem>
83-
84-
<TabItem value="Alibaba Cloud OSS" label="阿里云 OSS">
85-
86-
```sql
87-
externalLocation ::=
88-
'oss://<bucket>[<path>]'
46+
|
8947
CONNECTION = (
90-
<connection_parameters>
91-
)
48+
CONNECTION_NAME = '<your-connection-name>'
49+
);
9250
```
9351

94-
有关访问阿里云 OSS 时可用的连接参数,请参阅[连接参数](/00-sql-reference/51-connect-parameters.md)
95-
</TabItem>
52+
不同存储服务可用的连接参数,请参见 [Connection Parameters](/00-sql-reference/51-connect-parameters.md)
9653

97-
<TabItem value="Tencent Cloud Object Storage" label="腾讯云对象存储">
98-
99-
```sql
100-
externalLocation ::=
101-
'cos://<bucket>[<path>]'
102-
CONNECTION = (
103-
<connection_parameters>
104-
)
105-
```
106-
107-
有关访问腾讯云对象存储时可用的连接参数,请参阅[连接参数](/00-sql-reference/51-connect-parameters.md)
108-
</TabItem>
109-
</Tabs>
54+
关于 `CONNECTION_NAME` 的更多信息,请参见 [CREATE CONNECTION](../13-connection/create-connection.md)
11055

11156
### FILE_FORMAT
11257

113-
详细信息请参阅[输入和输出文件格式](../../../00-sql-reference/50-file-format-options.md)
58+
详情请参见 [Input & Output File Formats](../../../00-sql-reference/50-file-format-options.md)
11459

11560
### copyOptions
11661

@@ -122,23 +67,23 @@ copyOptions ::=
12267

12368
| 参数 | 描述 | 是否必须 |
12469
|:---|:---|:---|
125-
| `SIZE_LIMIT = <num>` | 指定给定 COPY 语句要加载数据的最大行数(> 0)。默认为 `0` | 可选 |
126-
| `PURGE = <bool>` | 如果文件成功加载到表中,命令将清除暂存区中的文件。默认为 `false` | 可选 |
70+
| `SIZE_LIMIT = <num>` | 大于 0 的数字,指定单个 COPY 语句最多加载的数据行数。默认为 `0` | 可选 |
71+
| `PURGE = <bool>` | 设为 true 表示文件成功加载到表后,命令会清理 Stage 中的文件。默认为 `false` | 可选 |
12772

12873

12974
## 访问控制要求
13075

13176
| 权限 | 对象类型 | 描述 |
13277
|:---|:---|:---|
133-
| SUPER | 全局, | 操作暂存区(列出、创建、删除暂存区)、目录或共享。 |
78+
| SUPER | 全局| 操作 Stage(列出、创建、删除 Stage)、目录或共享。 |
13479

135-
要创建暂存区(Stage),执行操作的用户或 [current_role](/guides/security/access-control/roles) 必须具有 SUPER [权限(Privilege)](/guides/security/access-control/privileges)
80+
创建 Stage 时,执行操作的用户或其 [current_role](/guides/security/access-control/roles) 必须拥有 SUPER [privilege](/guides/security/access-control/privileges)
13681

13782
## 示例
13883

139-
### 示例 1:创建内部暂存区
84+
### 示例 1:创建内部 Stage
14085

141-
此示例创建一个名为 *my_internal_stage* 的内部暂存区
86+
以下示例创建名为 *my_internal_stage* 的内部 Stage
14287

14388
```sql
14489
CREATE STAGE my_internal_stage;
@@ -151,12 +96,21 @@ my_internal_stage|Internal |StageParams { storage: Fs(StorageFsConfig { root: "
15196

15297
```
15398

154-
### 示例 2:使用 AWS 访问密钥创建外部暂存区
99+
### 示例 2:使用 Connection 创建外部 Stage
155100

156-
此示例在 Amazon S3 上创建一个名为 *my_s3_stage* 的外部暂存区
101+
以下示例使用 Connection 在 Amazon S3 上创建名为 *my_s3_stage* 的外部 Stage
157102

158103
```sql
159-
CREATE STAGE my_s3_stage URL='s3://load/files/' CONNECTION = (ACCESS_KEY_ID = '<your-access-key-id>' SECRET_ACCESS_KEY = '<your-secret-access-key>');
104+
-- 先创建 Connection
105+
CREATE CONNECTION my_s3_connection
106+
STORAGE_TYPE = 's3'
107+
ACCESS_KEY_ID = '<your-access-key-id>'
108+
SECRET_ACCESS_KEY = '<your-secret-access-key>';
109+
110+
-- 使用 Connection 创建 Stage
111+
CREATE STAGE my_s3_stage
112+
URL='s3://load/files/'
113+
CONNECTION = (CONNECTION_NAME = 'my_s3_connection');
160114

161115
DESC STAGE my_s3_stage;
162116
+-------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------+---------+
@@ -166,18 +120,18 @@ DESC STAGE my_s3_stage;
166120
+-------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------+---------+
167121
```
168122

169-
### 示例 3:使用 AWS IAM 用户创建外部暂存区
123+
### 示例 3:使用 AWS IAM 用户创建外部 Stage
170124

171-
此示例使用 AWS Identity and Access Management (IAM) 用户在 Amazon S3 上创建一个名为 *iam_external_stage* 的外部暂存区
125+
以下示例使用 AWS Identity and Access Management (IAM) 用户在 Amazon S3 上创建名为 *iam_external_stage* 的外部 Stage
172126

173-
#### 第 1 步:为 S3 存储桶创建访问策略
127+
#### 步骤 1:为 S3 存储桶创建访问策略
174128

175-
以下步骤为 Amazon S3 上的存储桶(Bucket) *databend-toronto* 创建一个名为 *databend-access* 的访问策略:
129+
以下步骤为 Amazon S3 上的存储桶 *databend-toronto* 创建名为 *databend-access* 的访问策略:
176130

177-
1. 登录 AWS 管理控制台,然后选择 **Services** > **Security, Identity, & Compliance** > **IAM**
178-
2. 在左侧导航窗格中选择 **Account settings**然后转到右侧页面的 **Security Token Service (STS)** 部分。确保您帐户所属的 AWS 区域的状态为 **Active**
179-
3. 在左侧导航窗格中选择 **Policies**然后在右侧页面上选择 **Create policy**
180-
4. 单击 **JSON** 选项卡,将以下代码复制并粘贴到编辑器中,然后将策略另存为 *databend_access*
131+
1. 登录 AWS 管理控制台,选择 **服务** > **安全性、身份与合规性** > **IAM**
132+
2. 在左侧导航栏选择 **账户设置**在右侧页面进入 **安全令牌服务 (STS)** 区域,确保所属 AWS 区域状态为 **活动**
133+
3. 在左侧导航栏选择 **策略**在右侧页面点击 **创建策略**
134+
4. 点击 **JSON** 选项卡,将以下代码复制粘贴到编辑器,并将策略保存为 *databend_access*
181135

182136
```json
183137
{
@@ -203,57 +157,71 @@ DESC STAGE my_s3_stage;
203157
}
204158
```
205159

206-
#### 第 2 步:创建 IAM 用户
160+
#### 步骤 2:创建 IAM 用户
207161

208-
以下步骤创建一个名为 *databend* 的 IAM 用户,并将访问策略 *databend-access* 附加到该用户
162+
以下步骤创建名为 *databend* 的 IAM 用户,并将访问策略 *databend-access* 附加到该用户
209163

210-
1. 在左侧导航窗格中选择 **Users**然后在右侧页面上选择 **Add users**
164+
1. 在左侧导航栏选择 **用户**在右侧页面点击 **添加用户**
211165
2. 配置用户:
212-
- 将用户名设置为 *databend*
213-
- 为用户设置权限时,单击 **Attach policies directly**然后搜索并选择访问策略 *databend-access*
214-
3. 创建用户后,单击用户名打开详细信息页面,然后选择 **Security credentials** 选项卡。
215-
4.**Access keys** 部分,单击 **Create access key**
216-
5. 为用例选择 **Third-party service**并勾选下方的复选框以确认创建访问密钥
217-
6. 复制生成的访问密钥和私有访问密钥并将其保存到安全的地方
166+
- 用户名设为 *databend*
167+
- 设置权限时,点击 **直接附加策略**搜索并选择访问策略 *databend-access*
168+
3. 用户创建完成后,点击用户名进入详情页,选择 **安全凭证** 选项卡。
169+
4.**访问密钥** 区域,点击 **创建访问密钥**
170+
5. 用例选择 **第三方服务**勾选下方复选框确认创建访问密钥
171+
6. 复制并妥善保存生成的访问密钥和秘密访问密钥
218172

219-
#### 第 3 步:创建外部暂存区
173+
#### 步骤 3:创建外部 Stage
220174

221-
使用为 IAM 用户 *databend* 生成的访问密钥和私有访问密钥来创建外部暂存区
175+
使用 IAM 角色创建安全性更高的外部 Stage
222176

223177
```sql
224-
CREATE STAGE iam_external_stage url = 's3://databend-toronto' CONNECTION =(ACCESS_KEY_ID='<your-access-key-id>' SECRET_ACCESS_KEY='<your-secret-access-key>');
178+
-- 先使用 IAM 角色创建 Connection
179+
CREATE CONNECTION iam_s3_connection
180+
STORAGE_TYPE = 's3'
181+
ROLE_ARN = 'arn:aws:iam::123456789012:role/databend-access'
182+
EXTERNAL_ID = 'my-external-id-123';
183+
184+
-- 使用 Connection 创建 Stage
185+
CREATE STAGE iam_external_stage
186+
URL = 's3://databend-toronto'
187+
CONNECTION = (CONNECTION_NAME = 'iam_s3_connection');
225188
```
226189

227-
### 示例 4:在 Cloudflare R2 上创建外部暂存区
190+
### 示例 4:在 Cloudflare R2 上创建外部 Stage
228191

229-
[Cloudflare R2](https://www.cloudflare.com/en-ca/products/r2/) 是 Cloudflare 推出的一款对象存储服务,与亚马逊的 AWS S3 服务完全兼容。本示例在 Cloudflare R2 上创建一个名为 *r2_stage* 的外部暂存区
192+
[Cloudflare R2](https://www.cloudflare.com/zh-cn/products/r2/) 是 Cloudflare 推出的对象存储服务,与 Amazon AWS S3 完全兼容。以下示例在 Cloudflare R2 上创建名为 *r2_stage* 的外部 Stage
230193

231-
#### 第 1 步:创建存储桶
194+
#### 步骤 1:创建存储桶
232195

233-
以下步骤在 Cloudflare R2 上创建一个名为 *databend* 的存储桶
196+
以下步骤在 Cloudflare R2 上创建名为 *databend* 的存储桶
234197

235-
1. 登录 Cloudflare 仪表盘,在左侧导航窗格中选择 **R2**
236-
2. 单击 **Create bucket** 创建一个存储桶,并将存储桶名称设置为 *databend*成功创建存储桶后,您可以在查看存储桶详细信息页面时,在存储桶名称正下方找到存储桶端点
198+
1. 登录 Cloudflare 控制台,在左侧导航栏选择 **R2**
199+
2. 点击 **创建存储桶**,设置存储桶名称为 *databend*创建成功后,在存储桶详情页即可在存储桶名称下方看到存储桶端点
237200

238-
#### 第 2 步:创建 R2 API 令牌
201+
#### 步骤 2:创建 R2 API 令牌
239202

240-
以下步骤创建一个包含访问密钥 ID 和私有访问密钥的 R2 API 令牌
203+
以下步骤创建包含 Access Key ID 和 Secret Access Key 的 R2 API 令牌
241204

242-
1.**R2** > **Overview** 页面上单击 **Manage R2 API Tokens**
243-
2. 单击 **Create API token** 创建一个 API 令牌
244-
3. 配置 API 令牌时,选择必要的权限并根据需要设置 **TTL**
245-
4. 单击 **Create API Token** 以获取访问密钥 ID 和私有访问密钥。复制并将其保存到安全的地方
205+
1.**R2** > **概述** 页面点击 **管理 R2 API 令牌**
206+
2. 点击 **创建 API 令牌**
207+
3. 配置令牌时选择所需权限,并按需设置 **TTL**
208+
4. 点击 **创建 API 令牌** 获取 Access Key ID 和 Secret Access Key,复制并妥善保存
246209

247-
#### 第 3 步:创建外部暂存区
210+
#### 步骤 3:创建外部 Stage
248211

249-
使用创建的访问密钥 ID 和私有访问密钥创建一个名为 *r2_stage* 的外部暂存区
212+
使用已生成的 Access Key ID 和 Secret Access Key 创建名为 *r2_stage* 的外部 Stage
250213

251214
```sql
215+
-- 先创建 Connection
216+
CREATE CONNECTION r2_connection
217+
STORAGE_TYPE = 's3'
218+
REGION = 'auto'
219+
ENDPOINT_URL = '<your-bucket-endpoint>'
220+
ACCESS_KEY_ID = '<your-access-key-id>'
221+
SECRET_ACCESS_KEY = '<your-secret-access-key>';
222+
223+
-- 使用 Connection 创建 Stage
252224
CREATE STAGE r2_stage
253225
URL='s3://databend/'
254-
CONNECTION = (
255-
REGION = 'auto'
256-
ENDPOINT_URL = '<your-bucket-endpoint>'
257-
ACCESS_KEY_ID = '<your-access-key-id>'
258-
SECRET_ACCESS_KEY = '<your-secret-access-key>');
226+
CONNECTION = (CONNECTION_NAME = 'r2_connection');
259227
```

0 commit comments

Comments
 (0)