从 Microsoft Azure 批量加载

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

备注

为加强安全态势,您可以将批量负载配置为使用专用连接,而不是公共互联网。有关更多信息,请参阅 Private connectivity to external stages and Snowpipe automation for Microsoft Azure

这组主题介绍了如何使用 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 建议创建一个引用该桶的外部暂存区,然后使用外部暂存区。

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

数据加载概述

备注

只要您的 Snowflake 账户托管在 Azure 上,您的网络流量就不会穿过公共互联网。

小技巧

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

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

后续主题:

语言: 中文