跨云数据访问简介

借助跨云数据访问功能,您可以直接从 Google Cloud 查询存储在其他云提供商中的数据,而无需迁移文件或使用跨云互连构建复杂的 ETL 流水线。

作为无边界 Lakehouse 的一部分,此功能可让您使用 BigQuery、独立的 Apache Spark 环境或 Managed Service for Apache Spark 对分布式数据集执行统一分析并应用 AI。

除了分析查询之外,您还可以将联合数据用于 AI 驱动的洞见和治理:

  • 对话式分析: 构建基于确切数据源(包括跨云表)的专用代理,以便通过一次对话跨云分析数据。
  • Knowledge Catalog:使用 Knowledge Catalog 功能,通过联合数据源进行数据分析和获取数据洞见。

使用场景

Lakehouse 支持多种关键用例,可用于访问多个云服务提供商的数据:

  • 减少数据迁移可让您直接查询存储在其他云环境中的数据,从而简化数据访问和处理。
  • 借助统一分析,您可以对所有数据执行高级分析,无论数据位于何处,都能获得一致的功能和硬件优化。
  • 借助无边界 AI 和 ML,您可以将 AI 模型、自主代理和机器学习直接应用于远程数据,而无需迁移这些数据。

访问跨云数据的工作原理

数据湖仓使用以下流程查询远程数据:

  1. 元数据发现: Google CloudLakehouse 连接到远程 Apache Iceberg REST 目录,例如 Databricks Unity 或 AWS Glue。湖仓会发现数据,而无需复制任何文件。根据远程目录提供商的不同,Lakehouse 通过 Secret Manager 或 OpenID Connect 令牌联合身份验证(以 Google 作为身份提供商 [OIDC 令牌联合身份验证])安全地进行身份验证。
  2. 安全传输:选择通过专用互连(例如专用 CCI 或合作伙伴互连)路由流量可显著降低数据传输费用(与公共互联网相比),并使延迟高度可预测。
  3. 优化执行:当查询从远程云读取数据时,Lakehouse 会在 Google Cloud 的专用存储空间中临时缓存这些数据段。后续查询使用本地缓存,从而避免了大部分跨云出站流量费用。

支持的目录

Lakehouse 支持查询来自以下远程目录提供方的数据:

核心概念

本部分介绍了使用跨云数据访问功能所需的主要组件。

元数据层

元数据层连接到远程 Apache Iceberg REST 目录端点,以根据刷新间隔同步 Iceberg 资源(命名空间、表)元数据。Lakehouse 通过存储在 Secret Manager 或 OIDC 令牌联合中的 OAuth 凭据安全地进行身份验证。

传输层

传输层允许 BigQuery 和开源引擎使用元数据层中的同步元数据查询数据。对于某些类型的远程目录,Lakehouse 支持通过公共互联网或专用私有互连查询数据。

选择符合您的架构和安全要求的传输方法:

客户自有 (CCI)

您可以配置 BigQuery,以通过专用 Cross-Cloud Interconnect 使用专用 Cross-Cloud Interconnect合作伙伴 Cross-Cloud Interconnect 查询存储在 Amazon Web Services (AWS) Amazon S3 存储桶中的数据。

使用专用互联具有以下优势:

  • 增强安全性:数据通过 Google Cloud 和 AWS 之间的专用网络连接传输,避免使用公共互联网。
  • 降低费用:与互联网出站流量相比,从 AWS 传输的出站流量费用可能更低,尤其是在与专用互连容量结合使用时。
  • 性能稳定:与公共互联网相比,网络延迟时间和带宽更可预测。

架构概览

如需启用私密查询,您需要通过专用互联配置从 BigQuery 到 AWS Amazon S3 存储桶的路径。 Google Cloud虚拟私有云 (VPC) 中的一个关键组件是内部负载平衡器 (ILB)。ILB 会将来自 BigQuery 的请求分配到 AWS VPC 内 Amazon S3 的专用端点,这些端点是使用 AWS PrivateLink 预配的。

使用具有多个弹性网络接口 (ENI) 的 ILB 作为后端对于负载均衡、可伸缩性和高可用性至关重要。无论您使用的是专用 CCI 还是合作伙伴互连,此要求都适用。

私密查询工作流遵循以下流程:

  1. BigQuery 使用通过 Service Directory 服务配置的连接。
  2. Service Directory 将服务名称解析为 Google Cloud ILB 的内部 IP 地址。
  3. ILB 接收来自 BigQuery 的请求,并将其分发到配置的后端。
  4. ILB 后端是混合连接网络端点组 (NEG),每个 NEG 都指向 AWS VPC 中 ENI 的专用 IP 地址。
  5. 流量从 ILB 流经 NEG,通过专用互联,到达 AWS ENI。
  6. AWS ENI 是 Amazon S3 VPC 接口端点 (AWS PrivateLink) 的一部分,可提供对 Amazon S3 服务的私密访问。

公共互联网(无 CCI)

如果您未配置专用互连,则对远程目录的查询默认会通过公共互联网传输。

通过公共互联网查询数据时,请考虑以下影响:

  • 标准加密:数据访问请求和数据传输在通过公共互联网传输时,会使用标准 TLS 协议进行加密。
  • 出站流量费用:数据传输会产生远程云提供商(例如 AWS)的标准互联网出站流量费用,该费用通常高于专用互连出站流量费率。
  • 可变延迟时间:网络性能、带宽和延迟时间取决于公共互联网路由和拥塞情况,与专用私有互联相比,查询执行时间的可预测性较低。
  • 简化设置:无需在 Google Cloud 或远程云提供商中进行额外的网络基础架构、VPC 对等互连或 Service Directory 配置。

架构概览

通过公共互联网查询数据时,Lakehouse 会直接连接到您的远程目录和对象存储端点,而无需专用 Google Cloud 或远程云网络基础设施。

公共互联网查询工作流遵循以下流程:

  1. BigQuery 会针对 Lakehouse 目录中定义的联合表发起查询。
  2. Lakehouse 使用存储在 Secret Manager 中的凭据或 OIDC 令牌联合安全地对远程 Apache Iceberg 目录进行身份验证。
  3. Lakehouse 会通过公共互联网检索表元数据和清单文件,以识别相关的底层数据文件(例如,在 AWS Amazon S3 中)。
  4. 对底层对象的数据访问权限请求直接通过公共互联网从Google Cloud 发送,并使用标准 TLS 加密。
  5. 远程存储服务使用 Lakehouse 提供的临时、限定范围的凭据验证请求,并通过公共互联网将请求的数据块返回给 Google Cloud。

智能缓存

当您查询远程云数据时,Lakehouse 会自动将检索到的数据块缓存在本地 Google Cloud中。系统会自动为所有跨云查询启用缓存,以帮助最大限度地减少远程云提供商的出口费用。后续针对缓存数据的查询直接从本地 Google Cloud 存储空间读取数据,而不是跨云重新提取数据。

出站流量费用节省

在首次执行查询时,Lakehouse 会从远程云提供商处提取所需的数据块,并填充本地缓存。后续针对相同数据块的查询会直接从本地Google Cloud 缓存读取数据,而无需跨云重新提取数据。

对于在同一数据集上具有重复查询模式的工作负载,缓存可通过从本地存储空间提供数据请求来减少跨云出站流量费用。实际的出站流量费用节省取决于查询访问模式、数据修改率和目标 Google Cloud区域中的缓存保留时间等因素。

在作业统计信息中验证缓存使用情况和出站流量费用节省情况

如需验证查询的缓存命中率和出站流量费用节省情况,请检查 BigQuery 控制台或 API (JobStatistics2) 中的查询统计信息。由于一个查询可以引用多个提供方的数据,因此作业统计信息会提供一个重复的 object_storage_stats (objectStorageStats) 字段,其中包含执行期间访问的每个云提供方的条目。

每个 object_storage_stats 条目都会报告以下指标:

  • cloud_provider (cloudProvider):托管对象存储空间的云提供商(例如 AWSAZURE)。
  • cache_bytes_read (cacheBytesRead):从本地 Google Cloud 缓存读取的总字节数,避免了远程对象存储读取。
  • object_storage_bytes_read (objectStorageBytesRead):直接从远程云提供商的对象存储中读取的总字节数。

数据驻留和管辖区注意事项

在 Google Cloud 区域中创建联合目录或连接时,系统会将缓存的静态数据存储在相应目标区域的本地。

如果您的远程云数据位于不同的地理区域或管辖区(例如,欧盟境内的 AWS Amazon S3 与 us-east4 中的 BigQuery 计算配对),跨云查询会将静态数据缓存的远程数据副本存储在目标Google Cloud 区域中。创建连接或目录的用户或管理员必须确保跨管辖区缓存符合其组织的数据驻留、主权和合规性要求。

加密和 CMEK 支持

Lakehouse 缓存不支持客户管理的加密密钥 (CMEK)。所有缓存的数据块在静态时均使用默认的Google-owned and Google-managed encryption keys进行加密。

如果您的组织强制执行限制非 CMEK 服务组织政策限制条件 (constraints/gcp.restrictNonCmekServices),则 Lakehouse 会自动针对访问受限表的查询停用缓存。查询仍可成功执行,但不会缓存数据块,也无法享受与缓存相关的出站流量节省。

后续步骤