- Snowflake教程
- Snowflake - 主页
- Snowflake - 简介
- Snowflake - 数据架构
- Snowflake - 功能架构
- Snowflake - 如何访问
- Snowflake - 版本
- Snowflake - 定价模型
- Snowflake - 对象
- Snowflake - 表和视图类型
- Snowflake - 登录
- Snowflake - 仓库
- Snowflake - 数据库
- Snowflake - 架构
- Snowflake - 表格和列
- Snowflake - 从文件加载数据
- Snowflake - 有用查询示例
- Snowflake - 监控使用情况和存储情况
- Snowflake - 缓存
- 将数据从 Snowflake 卸载到本地
- 外部数据加载(来自AWS S3)
- 外部数据卸载(到AWS S3)
- Snowflake资源
- Snowflake - 快速指南
- Snowflake - 有用的资源
- Snowflake - 讨论
Snowflake - 外部数据卸载
Snowflake 也支持客户端的云存储。这意味着客户可以从Snowflake中导出云中的数据。截至目前,Snowflake 支持 3 种云——AWS S3、Microsoft Azure 和 Google Cloud Platform Location。这些被称为外部阶段。然而,Snowflake 提供了Snowflake管理的阶段,这些阶段被称为内部阶段。
外部阶段是客户端位置,当用户使用本地系统目录时,将使用内部阶段。
要将数据卸载到外部云中,需要进行以下设置 -
Snowflake 中的现有数据库和架构,数据必须从其中卸载到 AWS S3。
设置指向 AWS S3 存储桶的外部阶段。
文件格式定义了加载到 AWS S3 中的文件的结构。
在本章中,我们将讨论如何设置这些要求并将数据从表卸载到 S3。
我们已经创建了一个名为 TEST_DB 的数据库、名为 TEST_SCHEMA_1 的架构和名为 TEST_TABLE 的表。如果这些不可用,请按照前面章节中的说明创建它们。
外部阶段可以通过 Snowflake 的用户界面以及使用 SQL 来设置。
使用用户界面
要创建外部舞台,请按照以下说明操作 -
登录Snowflake。单击顶部功能区中的数据库。在数据库视图中,单击数据库名称 TEST_DB。接下来,单击“阶段”选项卡,然后单击顶部的“创建”按钮,如以下屏幕截图所示 -
它将弹出“创建阶段”对话框,在列表中选择 amazon|s3,然后单击“下一步”,如下所示 -
它将进入下一个屏幕,用户应在其中输入以下详细信息 -
名称- 这是外部阶段的用户定义名称。相同的名称将用于将数据从阶段复制到表。
架构名称- 选择表所在的架构名称以加载数据。
URL - 提供来自 Amazon 的 S3 url。根据存储桶名称和键,它是唯一的。
AWS 密钥 ID - 请输入您的 AWS 密钥 ID。
AWS 密钥- 输入您的密钥以通过 AWS 进行连接。
加密主密钥- 提供加密密钥(如果有)。
提供详细信息后,单击“完成”按钮。以下屏幕截图描述了上述步骤 -
用户可以在视图面板中看到新创建的外部舞台。
使用SQL
使用 SQL 创建外部阶段非常容易。只需运行以下查询并提供所有详细信息(例如名称、AWS 密钥、密码、主密钥),它将创建阶段。
CREATE STAGE "TEST_DB"."TEST_SCHEMA_1".Ext_S3_stage URL = 's3://***/***** CREDENTIALS = (AWS_KEY_ID = '*********' AWS_SECRET_KEY = '********') ENCRYPTION = (MASTER_KEY = '******');
文件格式定义上传到 S3 的文件的结构。如果文件结构与表结构不匹配,则加载失败。
使用用户界面
要创建文件格式,请按照下面给出的说明进行操作。
登录 Snowflake 并单击顶部功能区中的数据库。在数据库视图中,单击数据库名称 TEST_DB。
接下来,单击“文件格式”选项卡,然后单击顶部的“创建”按钮。弹出“创建文件格式”对话框。输入以下详细信息 -
名称- 文件格式的名称。
模式名称- 创建文件格式只能在给定模式中使用。
格式类型- 文件格式的名称。
列分隔符- 如果 csv 文件被分隔,请提供文件分隔符。
行分隔符- 如何识别新行。
要跳过的标题行- 如果提供了标题,则为 1,否则为 0。
其他的事情可以保持原样。输入这些详细信息后单击“完成”按钮。
以下屏幕截图显示了上述详细信息 -
用户将能够在“视图”面板中看到创建的文件格式。
使用SQL
使用 SQL 创建文件格式非常容易。只需提供如下所示的所有必要详细信息来运行以下查询。
CREATE FILE FORMAT "TEST_DB"."TEST_SCHEMA_1".ext_csv TYPE = 'CSV' COMPRESSION = 'AUTO' FIELD_DELIMITER = ',' RECORD_DELIMITER = '\n' SKIP_HEADER = 0 FIELD_OPTIONALLY_ENCLOSED_BY = 'NONE' TRIM_SPACE = FALSE ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE ESCAPE = 'NONE' ESCAPE_UNENCLOSED_FIELD = '\134' DATE_FORMAT = 'AUTO' TIMESTAMP_FORMAT = 'AUTO' NULL_IF = ('\\N');
将数据卸载到 S3
在本章中,我们讨论了如何设置所有必需的参数(如阶段、文件格式、数据库)以将数据卸载到 S3。
现在,要卸载数据,请运行以下查询 -
句法
COPY INTO @<database_name>.<schema_name>.<external_stage_name> FROM (SELECT * FROM <table_name>) FILE_FORMAT=(FORMAT_NAME=<database_name>.<schema_name>.<file_format_name>);
例子
COPY INTO @test_db.test_schema_1.EXT_Stage FROM (SELECT * FROM TEST_TABLE) FILE_FORMAT=(FORMAT_NAME=test_db.test_schema_1.CSV);