为 Snowflake 转移配置专用连接

本指南介绍了如何配置专用连接,以创建从 Snowflake 到 BigQuery 的专用数据转移。借助专用数据转移,您可以在专用网络中将数据从一个来源转移到另一个来源,并降低通过公共互联网转移数据时的安全风险。

以下部分介绍了在创建 Snowflake 转移之前配置专用 连接所需的步骤。

专用转移支持托管在 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud上的 Snowflake 实例。

创建一个专用链接,将您的 Snowflake 账号连接到您的云提供商。如需了解详情,请选择以下选项之一:

AWS

配置 AWS PrivateLink ,将您的 Snowflake 账号连接到您的 AWS 账号。您的 AWS 账号必须包含 Amazon S3 临时存储桶 ,Snowflake 转移需要此存储桶。

Azure

配置 Azure Private Link,将 您的 Azure 虚拟网络 (VNet) 连接到 Azure 中的 Snowflake VNet。您的 Azure 账号必须包含 Snowflake 转移所需的 Blob 临时存储桶

Google Cloud

配置 Google Cloud Private Service Connect,将您的 虚拟私有云 (VPC) 网络 子网 连接到托管在 Google Cloud上的 Snowflake 账号。您 Google Cloud 必须拥有 Snowflake 转移所需的 Cloud Storage 临时存储桶。

设置跨云互连或高可用性 VPN

从 AWS 或 Azure 设置跨云互连或高可用性 VPN。对于 Google Cloud托管的 Snowflake 账号,此步骤不是必需的。

AWS

借助高可用性 VPN,您可以通过加密的 VPN 隧道转移数据。如需将高可用性 VPN 用于专用 Snowflake 转移,请参阅创建高可用性 VPN 连接(在 Google Cloud 和 AWS 之间)

Cross-Cloud Interconnect 连接会在云提供商之间创建专用链接,适用于具有低延迟要求的大型数据转移。如需将 跨云互连用于专用 Snowflake 转移,请参阅连接到 AWS

Azure

借助高可用性 VPN,您可以通过加密的 VPN 隧道转移数据。如需将高可用性 VPN 用于专用 Snowflake 转移,请参阅在和 Azure 之间创建高可用性 VPN 连接。 Google Cloud

Cross-Cloud Interconnect 连接会在云提供商之间创建专用链接,适用于具有低延迟要求的大型数据转移。如需将 跨云互连用于专用 Snowflake 转移,请参阅 连接到 Azure

创建代理虚拟机

如需完成专用连接,需要使用代理虚拟机来完成数据源之间的连接,而无需让数据到达公共互联网。对于托管在 AWS、Azure 或 Google Cloud上的 Snowflake 实例,此步骤是必需的。

如需为 Snowflake 专用转移创建和配置代理虚拟机,请执行以下操作:

  1. 在使用方 VPC 网络中创建一个或多个 Compute Engine 虚拟机实例
  2. 下载 TCP 代理软件(例如 HAProxy 或 Nginx),并配置以下内容:
    1. 指定端口。例如,443
    2. 将所有传入的 TCP 流量转发到 Snowflake 实例上的专用主机名和端口。
  3. 配置虚拟机,以通过在使用方 VPC 网络中配置的 DNS 解析 Snowflake 专用主机名。
  4. 通过执行以下操作设置内部直通式负载均衡器:
    1. 将代理虚拟机分组到托管式实例组 (MIG) 中
    2. 设置具有虚拟机实例组后端的内部直通式网络负载平衡器

创建服务连接

使用 Private Service Connect 创建网络连接并发布服务。 对于托管在 AWS、Azure 或 Google Cloud上的 Snowflake 实例,此步骤是必需的。

您的服务连接必须与 BigQuery 数据集位于同一区域。

如果您的服务使用显式批准(connection-preference 设置为 ACCEPT_MANUAL),则在 Snowflake 专用数据传输中使用的服务帐号必须具有以下 IAM 权限:

  • compute.serviceAttachments.get
  • compute.serviceAttachments.update
  • compute.regionOperations.get

创建服务连接后,请记下服务连接 URI。创建 Snowflake 转移配置时,您需要使用此 URI。

创建端点

在您的 AWS 或 Azure 账号中创建一个端点。 对于 Google Cloud托管的 Snowflake 账号,此步骤不是必需的。

AWS

在 AWS 中,创建一个连接到 Amazon S3 的 VPC 端点。 如需了解详情,请参阅使用接口 VPC 端点访问 AWS 服务。

Azure

在 Azure 的存储账号上配置专用端点。如需了解详情,请参阅使用 Azure 存储的专用端点。

Storage Transfer Service 需要 *.blob.core.microsoft.net 端点。不支持 *.dfs.core.microsoft.net 端点。

创建后,记下端点的 IP 地址。在下一部分中创建负载均衡器时,您需要指定 IP 地址。

创建网络负载均衡器

设置具有混合连接的区域内部代理网络负载均衡器 (NLB)。您可以创建负载均衡器,以将流量路由到您在上一步中创建的 Amazon S3 VPC 端点或 Azure 存储专用端点。如需了解详情,请参阅 设置具有混合连接的区域内部代理网络负载平衡器

注册 NLB

创建网络 NLB 后,请在 Storage Transfer Service 的 Service Directory 中注册该 NLB。如需了解详情,请参阅向 Service Directory 注册 NLB

记下指向 Service Directory 的链接。创建 Snowflake 转移配置时,您需要使用该服务的自链接。

创建专用 Snowflake 转移配置

创建 Snowflake 转移。设置转移配置时,请执行以下操作:

控制台

  • 对于使用专用网络,选择True
  • 对于 PSC 服务连接,输入服务连接 URI。如需了解如何查找服务连接 URI,请参阅查看已发布服务的详细信息。服务连接 URI 的格式为 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT
  • 对于专用网络服务,输入NLB 服务的自链接。 它使用格式 projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME

bq

  • 对于 use_private_network 参数,请设置为 TRUE
  • 对于 service_attachment 参数,请指定服务连接 URI。如需了解如何查找服务连接 URI,请参阅查看已发布服务的详细信息。服务连接 URI 的格式为 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT
  • 对于 private_network_service 参数,请提供 NLB 服务的自链接。 它使用格式 projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME