借助跨云数据访问功能,您可以直接从 Google Cloud 查询存储在其他 云服务提供商中的数据,而无需使用跨云互连迁移文件 或构建复杂的 ETL 流水线。
作为 无边界 Lakehouse 的一部分,此功能可让您使用 BigQuery、独立 Apache Spark 环境或 Managed Service for Apache Spark 对分布式数据集执行 统一分析并应用 AI。
除了分析查询之外,您还可以将联合数据用于 AI 驱动的分析洞见和治理:
- 对话分析: 根据您的确切数据源(包括 跨云表)构建专用代理,以便通过一次 对话分析跨云数据。
- Knowledge Catalog: 使用 Knowledge Catalog 功能通过 联合数据源进行数据分析和洞见分析。
使用场景
Lakehouse 支持多个关键使用场景,以便跨多个云提供商访问数据:
- 减少数据移动 :您可以直接查询存储在其他云环境中的数据,从而简化数据访问和处理。
- 统一分析 :无论数据位于何处,您都可以使用一致的功能和硬件优化对所有数据执行高级分析。
- 无边界 AI 和机器学习 :您可以将 AI 模型、自主代理和机器学习直接应用于远程数据,而无需迁移数据。
跨云数据访问的工作原理
Lakehouse 使用以下流程查询远程数据:
- 元数据发现: Google Cloud的 Lakehouse 连接到远程 Apache Iceberg REST 目录,例如 Databricks Unity 或 AWS Glue。Lakehouse 会发现数据,而不会复制任何文件。根据远程目录提供商的不同,Lakehouse 会通过 Secret Manager 或 OpenID Connect 令牌联合(以 Google 作为身份提供商)安全地进行身份验证(OIDC 令牌联合)。
- 安全传输 :与公共互联网相比,选择通过专用互连(例如专用 CCI 或合作伙伴互连)路由流量可显著降低数据传输费用,并使延迟时间具有高度可预测性。
- 优化执行:当查询从远程云读取数据时, Lakehouse 会在 Google Cloud 专用存储空间中暂时将这些数据段缓存在本地 。后续查询会使用本地缓存,从而避免产生大部分跨云出站流量费用。
支持的目录
Lakehouse 支持查询来自以下远程目录提供商的数据:
- Databricks Unity Catalog:在 Amazon Web Services (AWS) 和 Google Cloud上受支持。
- AWS Glue :在 Amazon Web Services (AWS) 上受支持。
- Snowflake Horizon Catalog:在 Amazon Web Services (AWS) 和 Google Cloud上受支持。
- SAP Business Data Cloud (BDC) :使用 SAP BDC 连接器受支持。
核心概念
本部分介绍了使用跨云数据访问功能所必需的关键组件。
元数据层
元数据层连接到远程 Apache Iceberg REST 目录端点,以根据刷新间隔同步 Iceberg 资源(命名空间、表)元数据。Lakehouse 使用存储在 Secret Manager 中的 OAuth 凭据或 OIDC 令牌联合安全地进行身份验证。
传输层
借助传输层,BigQuery 和开源引擎可以使用元数据层中的同步元数据查询数据。 对于某些类型的远程目录,Lakehouse 支持通过公共互联网或专用互连查询数据。
选择符合您的架构和安全要求的传输方法:
客户拥有的 (CCI)
您可以将 BigQuery 配置为使用 专用 Cross-Cloud Interconnect 或 合作伙伴 Cross-Cloud Interconnect 通过专用 跨云互连查询存储在 Amazon Web Services (AWS) Amazon S3 存储分区中的数据。
使用专用互连具有以下优势:
- 增强的安全性:数据通过 和 AWS 之间的 Google Cloud 专用网络连接传输,避免使用公共 互联网。
- 降低费用 :与互联网出站流量相比,AWS 的出站流量费用可能会更低,尤其是在与专用互连容量相结合时。
- 一致的性能 :与公共互联网相比,网络延迟时间和带宽更可预测。
架构概览
如需启用专用查询,您可以通过专用互连配置从 BigQuery 到 AWS Amazon S3 存储桶的路径。虚拟私有云 (VPC) 中的一个关键组件是 Google Cloud 内部负载平衡器 (ILB)。ILB 将来自 BigQuery 的请求分发到 AWS VPC 中 Amazon S3 的专用端点,这些端点使用 AWS PrivateLink 进行预配。
使用以多个弹性网络接口 (ENI) 作为后端的 ILB 对于负载均衡、可伸缩性和高可用性至关重要。无论您使用专用 CCI 还是合作伙伴互连,都是如此。
专用查询工作流遵循以下流程:
- BigQuery 使用配置了 Service Directory 服务的连接。
- Service Directory 将服务名称解析为 the Google Cloud ILB 的内部 IP 地址。
- ILB 接收来自 BigQuery 的请求,并将其分发到配置的后端。
- ILB 后端是混合连接网络端点组 (NEG),每个 NEG 都指向 AWS VPC 中 ENI 的专用 IP 地址。
- 流量从 ILB 流经 NEG,跨专用互连流向 AWS ENI。
- AWS ENI 是 Amazon S3 VPC 接口端点 (AWS PrivateLink) 的一部分,可提供对 Amazon S3 服务的专用访问权限。
公共互联网(无 CCI)
如果您未配置专用互连,则对远程目录的查询默认通过公共互联网传输。
通过公共互联网查询数据时,请考虑以下影响:
- 标准加密 :数据访问请求和数据传输在公共互联网上使用标准 TLS 协议进行传输加密。
- 出站流量费用 :数据传输会产生远程云提供商(例如 AWS)的标准互联网出站流量费用,这些费用通常高于专用互连出站流量费率。
- 可变延迟时间 :网络性能、带宽和延迟时间取决于公共互联网路由和拥塞情况,与专用互连相比,查询执行时间的可预测性较低。
- 设置简单:无需在 Google Cloud 或 远程云提供商中添加任何网络基础架构、 VPC 对等互连或 Service Directory 配置。
架构概览
通过公共互联网查询数据时,Lakehouse 会直接 连接到远程目录和对象存储端点,而无需 专用 Google Cloud 或远程云网络基础架构。
公共互联网查询工作流遵循以下流程:
- BigQuery 针对 Lakehouse 目录中定义的联合表启动查询。
- Lakehouse 使用存储在 Secret Manager 中的凭据或 OIDC 令牌联合安全地对远程 Apache Iceberg 目录进行身份验证。
- Lakehouse 通过公共互联网检索表元数据和清单文件,以识别相关的底层数据文件(例如,在 AWS Amazon S3 中)。
- 底层对象的数据访问权限请求通过公共互联网使用标准 TLS 加密直接从 Google Cloud 发送。
- 远程存储服务使用 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):托管对象存储的云提供商(例如AWS或AZURE)。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 会自动为访问受限表的查询停用缓存。查询仍会成功执行,但不会缓存数据块,也不会从与缓存相关的出站流量节省中受益。