创建 S3 暂存区¶
外部(即 S3)暂存区指定数据文件的存储位置,以便可以将文件中的数据加载到表中。
可以直接从指定 S3 桶中的文件加载数据,无论是否带有文件夹路径(或 S3 术语中的前缀)。如果路径以 /
结尾,则加载相应 S3 文件夹中的所有对象。
备注
在 上一步 中,如果您按照说明配置具有访问外部 S3 桶所需的策略和权限的 AWS IAM 角色,则您已经创建了 S3 暂存区。您可以跳过此步骤并继续 从 S3 暂存区复制数据。
本主题内容:
外部暂存区¶
除了直接从 S3 桶中的文件加载之外,Snowflake 还支持创建命名的外部暂存区,其中封装了暂存文件所需的所有信息,包括:
暂存文件的 S3 桶。
桶的命名存储集成对象或 S3 凭据(如果受保护)。
加密密钥(如果桶中的文件已加密)。
命名的外部暂存区是可选的,但当您计划定期从同一位置加载数据时,建议 使用。
创建外部暂存区¶
您可以使用 SQL 或 Web 界面创建命名的外部暂存区。
使用 SQL 创建外部暂存区¶
使用 CREATE STAGE 命令通过 SQL 创建外部暂存区。
以下示例使用 SQL 创建名为 my_s3_stage
的外部暂存区,该暂存区引用名为 mybucket
的私密/受保护的 S3 桶以及名为 encrypted_files/
的文件夹路径。CREATE 语句包括 选项 1:配置 Snowflake 存储集成以访问 Amazon S3 中创建的 s3_int
存储集成,用于访问 S3 桶。该暂存区引用名为 my_csv_format
的命名文件格式对象,该对象描述了存储在桶路径中的文件中的数据:
CREATE STAGE my_s3_stage STORAGE_INTEGRATION = s3_int URL = 's3://mybucket/encrypted_files/' FILE_FORMAT = my_csv_format;
备注
通过为暂存区指定命名的文件格式对象(或单个文件格式选项),以后就不必在用于从暂存区加载数据的 COPY 命令中指定相同的文件格式选项。
使用 Snowsight 创建外部暂存区¶
要使用 Snowsight 创建指定外部暂存区,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Create » Stage » External Stage。
选择文件所在的外部暂存区之一:Amazon S3、Microsoft Azure 或 Google Cloud Platform。
在 Create Stage 对话框中,输入 Stage Name。
选择要在其中创建暂存区的数据库和架构。
输入外部云存储位置的 URL。
如果外部存储不是公开的,请启用 Authentication 并输入详细信息。有关更多信息,请参阅 CREATE STAGE。
(可选)取消选择 Directory table。目录表允许您在暂存区中查看文件,但需要仓库,因此会产生费用。您可以选择暂时取消选择此选项,稍后再启用目录表。
如果启用 Directory table,则可以选择 Enable auto-refresh,并选择事件通知或通知集成,以便在添加或删除文件时自动刷新目录表。要了解更多信息,请参阅 自动目录表元数据刷新。
如果文件已加密,请启用 Encryption 并输入详细信息。
(可选)展开 SQL Preview 以查看生成的 SQL 语句。若要为暂存区指定其他选项,例如 AUTO_REFRESH,可在工作表中打开此 SQL 预览。
选择 Create。
使用 Classic Console 创建外部暂存区¶
选择 Databases » <db_name> » Stages。
下一步: 从 S3 暂存区复制数据