跨云数据访问简介

借助跨云数据访问功能,您可以直接从 Google Cloud 查询存储在其他云服务商中的数据,而无需迁移文件或构建复杂的 ETL 流水线。查询可以通过公共互联网路由,也可以使用跨云互连进行专用网络传输。

Lakehouse 中的跨云数据访问通过 BigQuery、独立 Apache Spark 环境或 Managed Service for Apache Spark 统一分布式数据集中的分析和 AI 工作负载。

除了运行分析查询之外,您还可以构建基于分布式表(包括跨云来源)的对话式分析智能体,以便通过单次对话分析跨云数据。您还可以使用 Knowledge Catalog 跨远程平台进行数据分析和数据洞见。

何时使用跨云数据访问

以下是一些常见使用场景:

  • 就地查询多云表:直接在 Amazon Web Services (AWS) 和 Microsoft Azure 中的外部 Apache Iceberg 表上运行 BigQuery SQL 和 Managed Service for Apache Spark 分析,而无需迁移文件或维护 ETL 流水线。
  • 强制执行私有跨云网络隔离:通过跨云互连路由查询数据读取和后台元数据刷新,以帮助满足限制公共网络流量的安全和合规政策。
  • 降低周期性跨云数据传输费用:将可预测的专用互连出站流量费率与Google Cloud 中的自动本地块缓存相结合,以用于重复的 BI 信息中心和分析工作负载。
  • 统一跨云治理和 AI 智能体:将对话式分析智能体接地到分布式表中,并在多云环境中应用 Knowledge Catalog 发现、分析和沿袭功能。

架构

下图展示了 Lakehouse 跨云数据访问架构:

跨 Google Cloud、Amazon Web Services (AWS) 和 SaaS 合作伙伴的 Lakehouse 跨云数据访问架构。
Lakehouse 的架构将 Google Cloud AI 和分析引擎连接到外部云目录、对象存储区和 SaaS 合作伙伴。

上图展示了 Google Cloud 与外部云和 SaaS 环境之间的架构:

  • Google Cloud:提供 AI、治理、分析和跨云数据访问,可跨远程数据集进行访问:
    • AI 智能体和体验:在对话式分析和 Gemini Enterprise 中构建自主智能体,这些智能体可在 Knowledge Catalog 中搜索数据和语义,并通过分析和处理引擎执行查询。
    • Knowledge Catalog:通过同步 Lakehouse 中的元数据和沿袭,提供统一治理和数据沿袭,以及数据洞见、数据分析和数据产品。
    • 分析和处理引擎:运行 BigQuery SQL、BigQuery AI 和 Looker 工作负载,或通过 Lakehouse 解析元数据和读取表,使用 Managed Service for Apache Spark 和开放引擎(Apache Spark、Apache Flink 和 Trino)处理远程数据。
    • Lakehouse 跨云数据访问:就地查询远程数据,无需文件迁移或 ETL 流水线:
      • 元数据同步:使用 Lakehouse 运行时目录通过 Apache Iceberg REST 和 Delta Sharing 发现并同步表元数据,通过 OpenID Connect (OIDC) 或 Secret Manager 进行身份验证,并提供限定范围的临时凭证。
      • 跨云功能 (AWS):使用块级直读缓存(智能缓存 [本地缓存])在 Google Cloud 中缓存读取的数据块,并使用跨云网络传输通过专用跨云互连 (CCI)、合作伙伴互连或互联网(使用 TLS)路由流量。
  • 外部云和 SaaS 数据源:托管远程目录、SaaS Data Cloud 和对象存储区:
    • 外部云和 SaaS 目录:通过 Iceberg REST API 和 Delta Sharing(适用于 SAP BDC),同步云数据目录(AWS 上的 AWS Glue Data Catalog,以及 AWS 或 Google Cloud上的 Databricks Unity Catalog 和 Snowflake Horizon Catalog)和 SaaS 数据云(Salesforce Data Cloud、AWS 或Google Cloud上的 Workday Data Lake,以及 SAP Business Data Cloud [BDC])中的元数据。
    • 外部云对象存储 (AWS):在 Amazon S3 中存储 Apache Iceberg 表(Parquet 数据文件)和 Amazon S3 表,以便通过 CCI 或互联网(使用 TLS)直接读取块。

访问跨云数据的运作方式

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

  1. 元数据发现:Lakehouse 运行时目录会连接到远程 Apache Iceberg REST 目录端点(例如 Databricks Unity Catalog、AWS Glue Data Catalog 或 Snowflake Horizon Catalog),以发现表元数据,而无需复制文件。根据远程目录提供商的不同,Lakehouse 会通过 Secret Manager 或 OIDC 令牌联合(以 Google 作为身份提供商)进行身份验证。
  2. 安全传输:与公共互联网相比,选择通过专用互连(例如专用 CCI 或合作伙伴互连)路由流量可显著降低数据传输费用,并使延迟时间高度可预测。
  3. 优化执行:在联合目录或连接上启用跨云缓存后,Lakehouse 会在 Google Cloud 查询执行区域内本地缓存检索到的文件块。后续针对同一文件块的查询会直接从本地缓存中读取,而不是从远程云中重新提取文件,这有助于降低跨云出站流量费用并提高查询性能。

支持的目录

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

核心概念

跨云数据访问将后台元数据刷新与查询数据传输分开,因此您可以根据安全和费用要求,通过私密方式路由其中一个或两个流量层。

元数据层

Lakehouse 运行时目录中的元数据层会连接到远程 Apache Iceberg REST 目录端点,以根据刷新间隔同步 Apache Iceberg 命名空间和表元数据。Lakehouse 使用存储在 Secret Manager 中的凭据或 OIDC 令牌联合进行身份验证。

默认情况下,后台元数据刷新和身份验证请求通过 TLS 在公共互联网上传输。如果您的远程目录限制公共网络访问,或者您的安全政策要求使用专用控制平面流量,您可以为 AWS Glue Data Catalog(在 AWS 上)、Databricks Unity Catalog(在 AWS 和 Azure 上)以及 Snowflake Horizon Catalog(在 AWS 和 Azure 上)配置元数据 Service Directory 服务 (--metadata-service-directory-name)。此配置通过专用跨云互连或合作伙伴跨云互连(适用于 AWS)以私密方式路由元数据和身份验证流量,可独立于私密查询传输 (--service-directory-name) 或与其一起进行。

传输层

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

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

客户自有 (CCI)

您可以配置 BigQuery,使其通过专用 Cross-Cloud Interconnect 或合作伙伴 Cross-Cloud Interconnect,使用专用跨云互连查询存储在 Amazon S3 存储桶或 Azure Data Lake Storage Gen2 (ADLS Gen2) 容器中的数据。

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

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

架构概览

如需启用私密查询,您需要通过专用互连配置从 BigQuery 到 Amazon S3 存储桶或 ADLS Gen2 容器的路径。Google Cloud 虚拟私有云 (VPC) 中的一个关键组件是内部负载均衡器 (ILB)。ILB 会将来自 BigQuery 的请求分发到 AWS VPC 中 Amazon S3 的专用端点(使用 AWS PrivateLink 预配)或 Azure 虚拟网络 (VNet) 中 ADLS Gen2 的专用端点(使用 Azure Private Link 预配)。

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

不公开查询工作流遵循以下流程:

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

公共互联网(无 CCI)

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

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

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

架构概览

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

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

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

智能缓存

为了帮助降低跨云出站流量费用并加快读取相同文件块的查询,您可以对 Lakehouse 联合目录和 BigQuery 跨云连接启用跨云缓存,而无需支付额外费用。

启用跨云缓存后,Lakehouse 会将从 Amazon S3 或 Azure Blob Storage 检索到的文件块缓存在 Google Cloud 查询执行区域本地。后续查询(包括针对相同文件块的不同查询)会直接从本地缓存中读取,而不会从远程云端重新提取文件。

Google 会自动管理缓存容量、保留和逐出。实际节省的出站流量费用取决于您的查询句式、源文件的更改频率以及目标 Google Cloud区域中的缓存保留。在提供缓存数据之前,每个查询都会通过远程存储来源验证元数据和访问权限,这样您就不会读取过时的数据或绕过已撤消的权限。

跨云缓存默认处于停用状态。您可以在创建或更新 Lakehouse 联合目录或 BigQuery 跨云连接时启用或停用缓存。如需查看配置说明,请参阅受支持的目录提供方的设置指南或创建跨云连接。

验证缓存使用情况和节省的出站流量费用

如需验证缓存命中率并衡量出站流量费用节省情况,请在 BigQuery 控制台中检查作业详细信息,或查看 BigQuery JobStatistics2 查询作业统计信息中的 objectStorageStats (object_storage_stats) 字段:

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

如需了解如何使用 bq 命令行工具检索这些指标,请参阅监控缓存用量和出站流量费用节省情况。

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

启用跨云缓存后,Lakehouse 会将远程文件的缓存副本临时存储在运行查询的 Google Cloud 区域中。在为位于其他地理区域或管辖区(例如,从 us-east4 查询的欧盟境内的 Amazon S3 或 Azure Blob Storage)的文件启用缓存之前,请验证在目标Google Cloud 区域中存储临时缓存副本是否符合贵组织的数据驻留和合规性要求。

加密和 CMEK 支持

缓存的数据使用默认Google-owned and Google-managed encryption keys进行静态加密。跨云缓存不支持客户管理的加密密钥 (CMEK)。

如果您的组织强制执行限制非 CMEK 服务组织政策限制条件 (constraints/gcp.restrictNonCmekServices),Lakehouse 会自动为访问受限表的查询停用缓存。您的查询仍会运行,但它们会直接从远程存储空间读取,而不会缓存文件块。

身份模式

Lakehouse 支持两种跨云数据访问身份模式:

  • 服务身份(默认):后台元数据刷新和查询均使用目录的服务账号执行,该服务账号可以使用 OIDC(推荐)或基于 Secret 的身份验证进行配置。
  • 用户身份联合:后台元数据刷新使用目录的服务账号执行,但查询使用最终用户的身份执行,并传播到远程目录。这样,远程目录就可以将来自 Google Cloud 的查询归因于最终用户,从而强制执行权限并生成审核日志。必须在远程目录中配置身份联合。

后续步骤