数据湖仓正在从“存放数据的地方”变成“执行动作的系统”。AI Agent 不再只是定期生成报表,而是持续监控供应链、识别异常、解释业务指标,并在满足条件时触发后续流程。要让这种系统稳定运行,Agent 必须访问分散在 AWS、Databricks、Snowflake、企业本地系统和 SaaS 应用中的数据,同时还要理解字段含义、数据血缘和访问边界。
Google Cloud 提出的 borderless Lakehouse,核心思路是基于开放的 Apache Iceberg 和 Iceberg REST Catalog,联邦接入不同云和不同数据平台,在尽量不搬迁原始数据的前提下完成查询、治理和 AI 推理。
从“复制数据”转向“联邦访问”
传统跨云数据架构通常需要建设一组 ETL 或 ELT 管道:从源平台抽取数据,跨云传输,再写入统一仓库。这个方案容易遇到三个问题:
- 数据复制带来存储、传输和同步成本。
- 管道延迟让 Agent 使用到过期数据。
- 每个平台都有自己的目录、权限和治理模型,跨系统排查问题成本很高。
无边界 Lakehouse 通过 Catalog Federation 接入 AWS Glue、Databricks Unity Catalog 和 Snowflake Horizon。BigQuery、Managed Service for Apache Spark 以及其他兼容 Iceberg 的引擎,可以发现并查询远程表。这里的关键变化不是“把所有文件集中起来”,而是让计算引擎能够通过统一的目录协议找到数据,并依据源平台的访问控制读取数据。
这种模式带来三种直接收益:
- 零拷贝跨云分析:多个团队可以分析同一份 Apache Iceberg 数据,减少重复文件和同步任务。
- 双向互操作:不仅可以从 BigQuery 或 Spark 读取外部表,也可以把经过 AI 丰富的数据集写回合作系统,供后续业务流程使用。
- 统一访问治理:通过表级权限、credential vending 等能力,让发起查询的平台和数据所在的平台都参与授权判断。
需要注意的是,“零拷贝”不等于“零网络成本”。跨云访问仍然需要考虑链路费用、延迟、带宽和缓存策略。摘要中提到的跨云互联可以采用私有专用链路,并以固定月费方式提供更可预测的网络成本;连接服务本身仍可能按小时收费。
让 Agent 获得可解释的业务上下文
仅把表名、列名和类型交给 LLM,通常不足以支撑可靠的自然语言分析。一个名为 amount 的字段可能表示含税金额、订单金额,也可能表示本地货币金额。如果 Agent 不知道口径,就算生成的 SQL 能够执行,结果也可能无法用于决策。
Knowledge Catalog 在这里承担统一上下文层的角色。它从 AWS Glue、Databricks Unity Catalog 和 Snowflake Horizon 同步元数据,进一步聚合和索引:
- 业务术语与字段语义
- 列级血缘
- Schema 变化
- 数据质量与可信度信息
- 安全策略和访问边界
这样,Agent 可以在生成 SQL 或调用工具前先回答几个关键问题:这张表是否可用于当前问题?字段的业务定义是什么?数据来自哪里?当前用户是否有权访问?
这也是降低幻觉的重要路径。可信上下文并不意味着 Agent 永远不会犯错,但它可以减少把相似字段混淆、跨越权限边界查询数据,以及因为缺少业务口径而反复推理的情况。
跨云直接运行 AI 和分析
过去,在 AWS 或 Azure 数据上运行高级分析,常常需要把数据复制到训练或分析环境。这会叠加出口费用、网络延迟和管道维护成本。无边界 Lakehouse 的目标是让 BigQuery AI、向量化处理、Spark Lightning Engine 等能力直接作用于远程数据。
其中,跨云缓存适合处理重复访问的场景:远端数据片段可以临时缓存到 Google Cloud,后续 BI 查询或临时分析不必重复拉取相同内容。缓存并不能替代权限设计,也不适合默认缓存所有敏感数据;团队仍需要明确缓存生命周期、数据脱敏和删除策略。
数据库和应用层也被纳入这一模型。例如,Spanner Omni 可以在 Google Cloud 之外的环境运行,AlloyDB 的 Lakehouse Federation 可以让事务系统直接查询仓库数据。SAP、Salesforce 和 Workday 等 SaaS 数据也可以通过零拷贝集成参与分析,减少财务、HR、客户数据之间的手工拼接。
一个可改造的联邦查询配置示例
下面是一个实践示意,用于表达多 Catalog 接入时应明确的配置边界。具体字段和命令会随 Google Cloud 产品版本、区域以及预览功能的接口变化,落地时需要替换为官方 CLI 或 Terraform provider 支持的字段。
# lakehouse-federation.example.yaml
# 这是架构配置示意,不是某个产品版本的完整部署清单。
project: analytics-prod
region: asia-northeast1
catalogs:
- name: aws-orders
type: aws-glue
endpoint: https://glue.ap-northeast-1.amazonaws.com
warehouse: s3://company-orders/iceberg/
auth:
mode: credential-vending
role: arn:aws:iam::123456789012:role/BigQueryIcebergReader
policy:
allowed_tables:
- sales.orders
- sales.order_events
- name: databricks-finance
type: unity-catalog
endpoint: https://dbc.example.cloud.databricks.com
catalog: finance
auth:
mode: oauth-or-service-principal
policy:
allowed_tables:
- accounting.invoice
- name: snowflake-customer
type: snowflake-horizon
account: example-org-example-account
database: CUSTOMER
schema: PUBLIC
auth:
mode: external-identity
policy:
allowed_tables:
- CUSTOMER_PROFILE
agent_context:
catalog: knowledge-catalog
require_lineage: true
require_business_definition: true
deny_if_user_lacks_table_access: true
max_context_columns: 40
network:
cross_cloud_interconnect: true
cache_remote_fragments: true
cache_ttl_minutes: 30
在真正部署前,可以先用一个低风险数据域验证流程:
set -euo pipefail
export PROJECT_ID="analytics-prod"
export REGION="asia-northeast1"
export FEDERATION_CONFIG="lakehouse-federation.example.yaml"
# 1. 检查当前身份和目标项目
gcloud auth list
gcloud config set project "$PROJECT_ID"
# 2. 检查配置文件,实际命令请替换为当前预览版本提供的校验命令
python - <<'PY'
import pathlib
import yaml
path = pathlib.Path("lakehouse-federation.example.yaml")
config = yaml.safe_load(path.read_text())
assert config["project"]
assert config["catalogs"]
assert all(item.get("name") and item.get("type") for item in config["catalogs"])
print(f"validated {len(config['catalogs'])} federated catalogs")
PY
# 3. 创建或更新联邦目录,命令名和参数需按实际产品版本调整
# bq mk --connection --location="$REGION" --project_id="$PROJECT_ID" \
# --connection_type=ICEBERG_REST --properties="@$FEDERATION_CONFIG" \
# lakehouse_federation
这个示例的重点不是复制配置字段,而是把四个问题显式化:数据目录在哪里、如何获取临时凭证、Agent 能访问哪些表、哪些业务上下文必须存在。对于生产环境,还应补充审计日志、密钥轮换、行列级脱敏、跨云链路监控和缓存清理验证。
用 Data Agent Kit 连接 Gemini Enterprise
Google Cloud Data Agent Kit 与 Conversational Analytics API 可以组合成面向业务用户的数据 Agent,再发布到 Gemini Enterprise。Data Agent Kit 提供可复用的分析技能和 MCP 工具,使 Agent 能够直接连接 BigQuery、Managed Spark 和 Cloud Storage,而不必把巨大的表结构手工塞进 Prompt。
一个可采用的 Agent 工作流如下:
用户问题
-> 识别业务意图和数据域
-> 从 Knowledge Catalog 获取术语、血缘和权限上下文
-> 选择 BigQuery、Spark 或远程 Iceberg 表
-> 生成并校验 SQL
-> 执行查询并返回证据、口径和结果
-> 在满足审批条件时调用下游 MCP 工具
Agent 的权限应该继承数据平台的授权结果,而不是只依赖 Prompt 中的文字约束。涉及付款、供应商变更或客户通知等动作时,建议增加人工审批、幂等键和可回滚操作,避免把“能查询”直接等同于“能执行”。
经济性:节省的不只是存储费用
无边界 Lakehouse 试图同时优化三类成本:
- 数据传输成本:通过零拷贝访问和跨云专用互联,减少重复出口和管道传输。
- 计算成本:根据查询位置和访问频率选择 BigQuery、Spark 或源平台计算,结合缓存减少重复读取。
- Token 成本:Knowledge Catalog 只向 Agent 提供相关业务上下文,BigQuery AI 的 token 控制和优化模式则可以限制查询消耗。
摘要提到,部分客户使用 BigQuery 内置 AI 函数后实现了最高 230 倍的 Token 消耗降低。这个数字不应直接当作所有工作负载的预期结果。实际收益取决于 Prompt 长度、模型选择、查询频率、上下文过滤和结果规模,生产环境需要用真实请求建立成本基线。
落地检查清单
适合采用这类架构的团队,可以按以下顺序推进:
- 选一个跨云、只读、低敏感的数据域做试点。
- 统一 Iceberg 表的命名、分区和 Schema 演进规则。
- 先打通 Catalog Federation,再接入业务语义和血缘。
- 为每个 Agent 定义允许访问的数据域、工具和最大 Token 预算。
- 使用私有链路、缓存 TTL 和出口成本监控验证真实经济性。
- 对写回和业务动作增加审批、审计、幂等和回滚机制。
- 用准确率、延迟、查询失败率、越权拦截率和单次请求成本衡量效果。
无边界 Lakehouse 的价值不在于把所有系统强行变成同一个平台,而在于让数据保持原位,同时让目录、权限、上下文和计算能力跨平台协作。对于 AI Agent 来说,这比单纯增加一个更大的模型更重要:它决定了 Agent 能否找到正确的数据、理解正确的含义,并在可控边界内采取行动。