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

如需在不构建复杂流水线的情况下,同时运行分析数据和运营数据的实时查询,您可以在 AlloyDB for PostgreSQL 中使用湖仓一体联邦。AlloyDB 由 bigquery_fdw 扩展提供支持,会将您的查询路由到 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 类型列表,请参阅 数据类型映射

安全性和访问权限控制

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

下推式广告素材

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

过滤条件推送

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

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

过滤条件推送支持的操作包括:

  • 标准比较运算符:=<><=>=<>
  • 逻辑运算符:ANDORNOT
  • 模式匹配:LIKENOT LIKE
  • null 检查:IS NULLIS NOT NULL
  • 列表内评估:INNOT IN

聚合下推

聚合下推是一种高级数据库优化,它尽可能在存储层附近执行计算(例如 SUMCOUNTAVGGROUP BY)。 此下推式广告素材直接在 BigQuery 中评估汇总函数,这可以显著减少返回给 AlloyDB 的行数。

聚合下推支持的操作包括:

  • SUM
  • COUNT
  • AVG
  • MIN
  • MAX

BigQuery 费用和结算

BigQuery 外部数据封装容器取决于以下因素:

  • BigQuery 计算价格
  • BigQuery Storage API 价格

如需了解相关信息,请参阅 BigQuery 价格

限制

  • AlloyDB 和 BigQuery 可能使用不同的排序规则,这可能会导致两个系统之间的数据排序不同。对于在 BigQuery 上远程执行的任何查询部分,排序规则遵循 BigQuery 的设置。
  • 从 BigQuery 返回大量数据的查询在 下推后不会进行 优化。

后续步骤