AlloyDB 对 BigQuery 中实时数据的访问权限概览

如需在不构建复杂流水线的情况下,同时运行分析数据和运营数据的实时查询,您可以在 AlloyDB for PostgreSQL 中使用湖仓一体联邦。借助 bigquery_fdw 扩展程序,AlloyDB 会将您的查询路由到 BigQuery,以通过 BigLake 外部表访问实时数据和 Apache Iceberg 等开放格式,从而无需进行复杂的 ETL(提取、转换、加载)迁移。

湖仓一体联邦的优势

数据湖仓联邦方法具有以下优势:

  • 零 ETL:直接查询分析数据,无需构建或维护复杂的流水线。
  • 熟悉的语法:使用标准 PostgreSQL 语法查询 BigQuery 数据。
  • 实时数据分析:在运营表旁边访问最新数据。
  • 分流计算:通过下推优化,使用 BigQuery 分布式引擎执行繁重的工作。
  • 授权访问:为确保只有经过授权的服务账号才能查询外部数据,请使用 Identity and Access Management (IAM) 进行集中式访问权限控制。

使用场景

湖仓一体联邦支持以下业务和技术用例:

  • 混合事务处理和分析处理 (HTAP) 工作负载:您可以同时查询 AlloyDB 中的实时运营数据以及 BigQuery 或 Cloud Storage 中的历史数据或分析数据,而不会影响事务处理性能。
  • 无需使用脆弱的流水线即可获得实时数据分析:您可以避免传统 ETL 流程的延迟和故障模式。即时访问最新的分析数据,根据最新信息做出业务决策。
  • 针对智能体工作流程的数据具体化:您可以将外部分析数据具体化到 AlloyDB 中,以使用 AlloyDB 列式引擎和 AlloyDB AI 功能。这可在您的联邦数据上实现高性能向量搜索、机器学习嵌入和高级 AI 驱动的智能体工作流。

架构和数据传输

下图显示了使用数据湖仓联邦时的数据流和组件交互:

图表:展示了 Lakehouse 联邦的架构,描绘了 AlloyDB 和 BigQuery 之间通过下推优化实现的数据流。
图 1. 湖仓一体联邦的架构和数据流

下面介绍了 AlloyDB 中湖仓一体联邦的数据流过程:

  1. 提交查询:您向 AlloyDB 实例提交标准 PostgreSQL 查询。
  2. 查询规划和优化:AlloyDB 查询规划器使用 BigQuery 外部数据封装容器 (FDW) 识别映射到外部 BigQuery 数据集的表。
  3. 下推优化:AlloyDB 通过将特定过滤条件和聚合直接下推到 BigQuery 来优化查询。这样可确保网络仅传输相关的过滤后行或预汇总摘要。
  4. 执行和检索:BigQuery 执行查询的相应部分,直接扫描 BigQuery 内置存储空间或读取存储在 Cloud Storage 中的 Apache Iceberg 表,并将结果数据集流式传输回 AlloyDB。
  5. 最终处理和响应:AlloyDB 将外部数据与任何本地运营表相结合,完成任何剩余的查询处理,并将最终结果返回给您的应用。

联合查询的数据类型注意事项

当您使用数据湖联邦从 AlloyDB 查询外部 BigQuery 表时,AlloyDB 查询规划器会将 BigQuery 数据类型解读为相应的 PostgreSQL 数据类型。了解这些映射对于编写正确的查询以及 bigquery_fdw 扩展程序使用的外部表定义至关重要。

如果 BigQuery 数据类型没有直接映射或需要特殊处理,您可能需要在查询中使用显式 CAST 函数,或者在 BigQuery 中创建一个视图,以使用兼容的类型呈现数据。

如需查看支持的数据类型及其对应的 PostgreSQL 类型,请参阅数据类型映射

安全性和访问权限控制

通过 IAM 管理从 AlloyDB 对 BigQuery 数据的访问权限。您必须向 AlloyDB 集群服务账号授予特定的 IAM 角色,以定义可以查询哪些数据集和表。这有助于确保联合查询在不影响安全性的前提下,遵循组织集中式数据治理政策。如需了解详情,请参阅必需的角色

下推式

您可以使用过滤和汇总下推技术,通过在数据被 AlloyDB 移动或处理之前在 BigQuery 中过滤或汇总数据,来加快查询速度并降低费用。这种方法可最大限度地减少网络流量和内存使用量,让您能够快速高效地分析海量数据集,而不会超出资源限制。

过滤下推

过滤条件推送(也称为谓词下推)是一种优化技术,通过将查询过滤条件(使用 WHERE 子句)从 AlloyDB 下推到 BigQuery,尽可能将数据过滤移到存储层附近。

借助过滤下推,您可以使用带有 WHERE 子句的 SQL 查询来访问远程表中的部分数据。此数据也可以在本地表中具体化,或作为本地分区附加到 PostgreSQL 表中。

支持的过滤下推操作包括:

  • 标准比较运算符:=<><=>=<>
  • 逻辑运算符:ANDORNOT
  • 模式匹配:LIKENOT LIKE
  • null 检查: