@@ -6,21 +6,25 @@ sidebar_label: Snowflake → Databend
66
77> ** 功能** : 全量加载
88
9- 在本教程中,我们将引导你完成从 Snowflake 以 Parquet 格式导出数据到 Amazon S3 存储桶,然后将其加载到 Databend Cloud 的过程。
9+ 本教程将指导您完成从 Snowflake 迁移数据到 Databend 的过程。迁移过程包括将数据从 Snowflake 导出到 Amazon S3 存储桶,然后将其加载到 Databend 中。该过程分为三个主要步骤:
10+
11+ ![ alt text] ( @site/static/img/load/snowflake-databend.png )
12+
13+ 在本教程中,我们将指导您完成将数据从 Snowflake 以 Parquet 格式导出到 Amazon S3 存储桶,然后将其加载到 Databend Cloud 的过程。
1014
1115## 开始之前
1216
13- 在开始之前,请确保你已具备以下先决条件 :
17+ 在开始之前,请确保您已具备以下先决条件 :
1418
15- - ** Amazon S3 存储桶** : 一个 S3 存储桶,用于存储导出的数据 ,以及上传文件所需的权限。[ 了解如何创建 S3 存储桶] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html ) 。在本教程中,我们使用 ` s3://databend-doc/snowflake/ ` 作为暂存导出数据的位置。
16- - ** AWS 凭证** : 具有访问 S3 存储桶足够权限的 AWS Access Key ID 和 Secret Access Key。[ 管理你的 AWS 凭证] ( https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys ) 。
17- - ** 管理 IAM 角色和策略的权限** : 确保你具有创建和管理 IAM 角色和策略的必要权限,这些权限是配置 Snowflake 和 Amazon S3 之间访问所必需的。[ 了解有关 IAM 角色和策略的信息 ] ( https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html ) 。
19+ - ** Amazon S3 存储桶** : 一个用于存储导出数据的 S3 存储桶,以及上传文件所需的权限。[ 了解如何创建 S3 存储桶] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html ) 。在本教程中,我们使用 ` s3://databend-doc/snowflake/ ` 作为暂存导出数据的位置。
20+ - ** AWS 凭证** : 具有访问 S3 存储桶足够权限的 AWS Access Key ID 和 Secret Access Key。[ 管理您的 AWS 凭证] ( https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys ) 。
21+ - ** 管理 IAM 角色和策略的权限** : 确保您具有创建和管理 IAM 角色和策略的必要权限,这是配置 Snowflake 和 Amazon S3 之间访问所必需的。[ 了解 IAM 角色和策略 ] ( https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html ) 。
1822
19- ## 步骤 1: 配置 Snowflake Storage Integration 以访问 Amazon S3
23+ ## 步骤 1: 为 Amazon S3 配置 Snowflake Storage Integration
2024
21- 在此步骤中,我们将配置 Snowflake 以使用 IAM 角色访问 Amazon S3。首先,我们将创建一个 IAM 角色,然后使用该角色建立 Snowflake Storage Integration, 以实现安全的数据访问。
25+ 在此步骤中,我们将配置 Snowflake 使用 IAM 角色访问 Amazon S3。首先,我们将创建一个 IAM 角色,然后使用该角色建立 Snowflake Storage Integration 以实现安全的数据访问。
2226
23- 1 . 登录到 AWS 管理控制台,然后在 ** IAM** > ** Policies** 上创建一个策略,其中包含以下 JSON 代码 :
27+ 1 . 登录 AWS 管理控制台,然后在 ** IAM** > ** Policies** 中使用以下 JSON 代码创建策略 :
2428
2529``` json
2630{
@@ -56,20 +60,21 @@ sidebar_label: Snowflake → Databend
5660}
5761```
5862
59- 此策略适用于名为 ` databend-doc ` 的 S3 存储桶,特别是该存储桶中的 ` snowflake ` 文件夹。
63+ 此策略适用于名为 ` databend-doc ` 的 S3 存储桶,特别是该存储桶内的 ` snowflake ` 文件夹。
6064
61- - ` s3:PutObject ` 、 ` s3:GetObject ` 、 ` s3:GetObjectVersion ` 、 ` s3:DeleteObject ` 、 ` s3:DeleteObjectVersion ` : 允许对 snowflake 文件夹中的对象执行操作( 例如,` s3://databend-doc/snowflake/ ` )。你可以在此文件夹中上传 、读取和删除对象。
62- - ` s3:ListBucket ` 、 ` s3:GetBucketLocation ` : 允许列出 ` databend-doc ` 存储桶的内容并检索其位置。` Condition ` 元素确保列表仅限于 ` snowflake ` 文件夹中的对象 。
65+ - ` s3:PutObject ` , ` s3:GetObject ` , ` s3:GetObjectVersion ` , ` s3:DeleteObject ` , ` s3:DeleteObjectVersion ` : 允许对 snowflake 文件夹内的对象进行操作 ( 例如,` s3://databend-doc/snowflake/ ` )。您可以在此文件夹中上传 、读取和删除对象。
66+ - ` s3:ListBucket ` , ` s3:GetBucketLocation ` : 允许列出 ` databend-doc ` 存储桶的内容并检索其位置。` Condition ` 元素确保列表操作仅限于 ` snowflake ` 文件夹内的对象 。
6367
64- 2 . 在 ** IAM** > ** Roles** 上创建一个名为 ` databend-doc-role ` 的角色,并附加我们创建的策略 。
68+ 2 . 在 ** IAM** > ** Roles** 中创建名为 ` databend-doc-role ` 的角色并附加我们创建的策略 。
6569 - 在创建角色的第一步中,为 ** Trusted entity type** 选择 ** AWS account** ,为 ** An AWS account** 选择 ** This account (xxxxx)** 。
6670
6771 ![ alt text] ( ../../../../static/img/documents/tutorials/trusted-entity.png )
6872
69- - 创建角色后,复制角色 ARN 并将其保存在安全的位置 ,例如 ` arn:aws:iam::123456789012:role/databend-doc-role ` 。
70- - 稍后 ,在获得 Snowflake 帐户的 IAM 用户 ARN 后,我们将更新角色的 ** Trust Relationships ** 。
73+ - 角色创建后,复制并将角色 ARN 保存在安全位置 ,例如 ` arn:aws:iam::123456789012:role/databend-doc-role ` 。
74+ - 我们稍后将更新角色的 ** Trust Relationships ** ,在获得 Snowflake 账户的 IAM 用户 ARN 之后 。
7175
72- 3 . 在 Snowflake 中打开一个 SQL 工作表,并使用角色 ARN 创建一个名为 ` my_s3_integration ` 的存储集成。
76+
77+ 3 . 在 Snowflake 中打开 SQL 工作区,使用角色 ARN 创建名为 ` my_s3_integration ` 的 storage integration。
7378
7479``` sql
7580CREATE OR REPLACE STORAGE INTEGRATION my_s3_integration
@@ -80,13 +85,13 @@ CREATE OR REPLACE STORAGE INTEGRATION my_s3_integration
8085 ENABLED = TRUE;
8186```
8287
83- 4 . 显示存储集成详细信息,并在结果中获取 ` STORAGE_AWS_IAM_USER_ARN ` 属性的值,例如 ` arn:aws:iam::123456789012:user/example ` 。我们将在下一步中使用此值来更新角色 ` databend-doc-role ` 的 ** Trust Relationships** 。
88+ 4 . 显示 storage integration 详细信息并获取结果中 ` STORAGE_AWS_IAM_USER_ARN ` 属性的值,例如 ` arn:aws:iam::123456789012:user/example ` 。我们将在下一步中使用此值来更新角色 ` databend-doc-role ` 的 ** Trust Relationships** 。
8489
8590``` sql
8691DESCRIBE INTEGRATION my_s3_integration;
8792```
8893
89- 5 . 返回到 AWS 管理控制台,打开角色 ` databend-doc-role ` ,然后导航到 ** Trust relationships** > ** Edit trust policy** 。将以下代码复制到编辑器中:
94+ 5 . 返回 AWS 管理控制台,打开角色 ` databend-doc-role ` ,导航到 ** Trust relationships** > ** Edit trust policy** 。将以下代码复制到编辑器中:
9095
9196``` json
9297{
@@ -103,11 +108,12 @@ DESCRIBE INTEGRATION my_s3_integration;
103108}
104109```
105110
106- ARN `arn:aws:iam::123456789012:user/example` 是我们在上一步中获得的 Snowflake 帐户的 IAM 用户 ARN。
111+ ARN `arn:aws:iam::123456789012:user/example` 是我们在上一步中获得的 Snowflake 账户的 IAM 用户 ARN。
112+
107113
108- ## 步骤 2:准备数据并将其导出到 Amazon S3
114+ ## 步骤 2: 准备并导出数据到 Amazon S3
109115
110- 1 . 在 Snowflake 中使用 Snowflake 存储集成 ` my_s3_integration ` 创建一个外部 Stage :
116+ 1 . 在 Snowflake 中使用 Snowflake storage integration ` my_s3_integration ` 创建外部 stage :
111117
112118``` sql
113119CREATE OR REPLACE STAGE my_external_stage
@@ -116,7 +122,7 @@ CREATE OR REPLACE STAGE my_external_stage
116122 FILE_FORMAT = (TYPE = ' PARQUET' );
117123```
118124
119- ` URL = 's3://databend-doc/snowflake/' ` 指定 S3 存储桶和将要暂存数据的文件夹 。路径 ` s3://databend-doc/snowflake/ ` 对应于 S3 存储桶 ` databend-doc ` 和该存储桶中的文件夹 ` snowflake ` 。
125+ ` URL = 's3://databend-doc/snowflake/' ` 指定了数据将要暂存的 S3 存储桶和文件夹 。路径 ` s3://databend-doc/snowflake/ ` 对应 S3 存储桶 ` databend-doc ` 以及该存储桶内的 ` snowflake ` 文件夹 。
120126
1211272 . 准备一些要导出的数据。
122128
@@ -144,7 +150,7 @@ COPY INTO @my_external_stage/my_table_data_
144150 FILE_FORMAT = (TYPE = ' PARQUET' ) HEADER= true;
145151```
146152
147- 如果现在打开存储桶 ` databend-doc ` ,你应该会在 ` snowflake ` 文件夹中看到一个 Parquet 文件:
153+ 如果您现在打开存储桶 ` databend-doc ` ,应该会在 ` snowflake ` 文件夹中看到一个 Parquet 文件:
148154
149155![ alt text] ( ../../../../static/img/documents/tutorials/bucket-folder.png )
150156
@@ -163,7 +169,7 @@ CREATE TABLE my_target_table (
163169);
164170```
165171
166- 2 . 使用 [ COPY INTO] ( /sql/sql-commands/dml/dml-copy-into-table ) 加载存储桶中导出的数据 :
172+ 2 . 使用 [ COPY INTO] ( /sql/sql-commands/dml/dml-copy-into-table ) 加载存储桶中的导出数据 :
167173
168174``` sql
169175COPY INTO my_target_table
0 commit comments