本页介绍了 AlloyDB for PostgreSQL 中的 Lakehouse Federation,这是一种统一的数据管理解决方案,可扩展 AlloyDB 的查询功能。借助此集成,您可以无缝查询各种 BigQuery 资源,包括:
- 原生表和物化视图。
- BigQuery 视图(逻辑视图)。
- BigLake 外部表,包括适用于 Apache Iceberg 受管理表的外部表。
- 标准外部表。
借助 Lakehouse Federation,您可以使用 AlloyDB 的查询引擎,通过同一界面为应用的事务型和分析型工作负载提供支持。您还可以在 AlloyDB 上实现或导入这些数据,以便在应用中更快地访问这些数据,从而使用 AlloyDB AI 和列式引擎。
借助 AlloyDB 的 Lakehouse Federation,您可以将 BigQuery 或 Iceberg 中的数据加载并转换到 AlloyDB 中,以支持您的运营应用,或将历史数据与实时事务数据联接起来。此使用情形支持统一分析,并可在应用情境中全面了解您的业务。
您可以将 AlloyDB 用作事务型数据库,也可以在 BigQuery 或 BigLake 中存储大量数据。您的应用通常会与这两个系统分别独立集成,以访问这些不同 Google Cloud服务中的数据。借助 Lakehouse Federation,您可以使用 AlloyDB 的联合查询支持(以外部数据封装容器的形式实现),通过 AlloyDB 中的 SQL 接口访问 BigQuery 和 AlloyDB 数据。
下推式
您可以使用过滤和汇总下推技术,通过在 BigQuery 中过滤或汇总数据,然后再将数据移动到 AlloyDB 或由 AlloyDB 处理,从而加快查询速度并降低费用。此方法可最大限度减少网络流量和内存用量,让您能够快速高效地分析海量数据集,而不会超出资源限制。
过滤下推
过滤条件推送(也称为谓词推送)是一种优化技术,可将数据过滤尽可能靠近存储层。数据库不会将大型表读入内存,然后舍弃不需要的行,而是将过滤条件(使用 WHERE 子句)“下推”到初始数据扫描中。
借助过滤下推,您可以使用带有 WHERE 子句的 SQL 查询来访问远程表中的部分数据。此数据也可以在本地表中具体化,或作为本地分区附加到 PostgreSQL 表中。
支持的过滤条件
如果以下比较和算术运算出现在 PostgreSQL 查询的过滤 (WHERE) 子句中的表达式中,则会使用 BigQuery API 将它们下推到 BigQuery:
比较运算符
=、>、<、>=、<=、<>、~~、!~~
算术运算符
+、-、*、/
汇总下推
聚合下推是一种高级数据库优化技术,可尽可能在存储层附近执行计算(例如 SUM、COUNT、AVG 或 GROUP BY)。过滤下推会移除不需要的行,而聚合下推会在数据库引擎进一步处理所需的行之前对其进行汇总。
支持的聚合
如果聚合函数适用于支持的数据类型,则会使用 BigQuery API 将其下推到 BigQuery:
- SUM
- AVG
- MIN
- MAX
- COUNT
BigQuery 费用和结算
BigQuery 外部数据封装器依赖于以下各项:
- BigQuery 计算价格
- BigQuery Storage API 价格
如需了解详情,请参阅 BigQuery 价格。
限制
- AlloyDB 和 BigQuery 可能使用不同的排序规则,这可能会导致两个系统之间的数据排序不同。对于在 BigQuery 上远程执行的查询的任何部分,排序规则都遵循 BigQuery 的设置。
- 从 BigQuery 返回大量数据的查询在下推后未得到优化。