从 Microsoft Azure 批量加载

如果您已经拥有 Microsoft Azure 账户并使用 Azure Blob 存储容器来存储和管理数据文件,则可以利用现有容器和文件夹路径,批量加载到 Snowflake 中。

这组主题介绍了如何使用 COPY 命令将数据从 Azure 容器加载到表中。

Snowflake 目前仅支持从 Blob 存储中加载。Snowflake 支持以下类型的存储账户:

  • Blob 存储

  • Data Lake Storage Gen2

  • 常规用途 v1

  • General-purpose v2

Snowflake 支持 Data Lake Storage Gen1。

备注

支持从块、追加和页面 Blob 加载。卸载的文件被创建为块 Blob。有关这些 Blob 类型的信息,请参阅 Azure 关于 Blob 类型的文档 (https://docs.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs)。

如果在 Data Lake Storage Gen2 上启用了分层命名空间,则 Snowflake 不支持使用 COPY 命令清除文件。分层命名空间将数据组织成目录和子目录。Azure 只允许删除空目录,这意味着无法通过 COPY 命令使用 PURGE 选项递归删除目录。

如下图所示,从 Azure 容器加载数据分两步执行:

第 1 步:

Snowflake 假定数据文件已暂存在 Azure 容器中。如果尚未暂存,请使用 Microsoft 提供的上传接口/实用程序来暂存文件。

第 2 步:

使用 COPY INTO <table> 命令将暂存文件的内容加载到 Snowflake 数据库表中。您可以直接从桶中加载,但 Snowflake 建议创建一个引用该桶的外部暂存区,然后使用外部暂存区。

无论您使用哪种方法,如果您手动或在脚本中执行命令,此步骤都需要运行一个当前虚拟仓库的会话。仓库提供计算资源,以执行将行实际插入到表中的操作。

数据加载概述

小技巧

这组主题中的说明假设您已阅读 准备加载数据,并已按需创建命名的文件格式。

在开始之前,您可能还需要阅读 数据加载注意事项 获取最佳实践、提示和其他指导。

后续主题:

语言: 中文