排查跨云数据访问问题

本文档介绍了如何解决在使用无边界 Lakehouse 的跨云数据访问功能时遇到的常见问题。

数据和资源过时或未更新

Lakehouse 联合目录会根据刷新间隔同步来自远程云的元数据。目录的后台元数据刷新时间可能会随着资源(共享、架构、命名空间、表)数量的增加而延长。如果上一次刷新超时,系统会跳过本次刷新,但会在下一个间隔重新安排下一次刷新。

如果查询的数据显示为过时,则可能是目录的后台元数据刷新正在过度运行或失败。远程云资源也受相同行为的影响。如果您在远程云中删除资源,那么只有在下次成功刷新后台元数据时,该资源才会从 Lakehouse 中删除。

Lakehouse Google Cloud 控制台页面上或通过运行 gcloud CLI 检查联合目录的后台元数据刷新状态:

前往 Lakehouse

gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID"

gcloud alpha biglake delta-sharing catalogs describe FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID"

连接或路由问题

如果您在使用专用互联时遇到连接或路由问题,请验证以下内容:

  • 验证路由传播:检查Google Cloud 中的 Cloud Router,验证它是否已获知 AWS VPC 前缀。检查您的 AWS 路由表,验证它们是否具有返回到 Google Cloud VPC 的路由。
  • 检查 ILB 健康状况:在 Google Cloud 控制台中,前往网络服务 > 负载均衡。检查 ILB 后端服务的后端 (NEG) 是否运行正常。如果不是,请验证网络连接和 AWS 安全组规则。
  • 从 Google Cloud测试连接:在与 ILB 或 Service Directory 端点相同的Google Cloud VPC 和子网中启动测试虚拟机实例,并尝试连接到端口 443 上的 AWS ENI IP 地址(例如,使用 curltelnet)。
  • Service Directory 解析:验证目录的服务账号是否具有解析 Service Directory 端点(roles/servicedirectory.viewerroles/servicedirectory.pscAuthorizedService)的权限。
  • 安全组和防火墙规则:验证 Google Cloud 防火墙规则和 AWS 安全组是否允许相关 IP 范围之间通过 TCP 端口 443 传输流量。

Snowflake 目录刷新失败,并显示代码 16(未通过身份验证)

如果 Snowflake Horizon Catalog 的后台元数据刷新失败,并显示状态 Code 16 (UNAUTHENTICATED),请验证以下各项:

  • Secret 载荷格式:确保 Secret Manager 中的 Secret 令牌包含所需的 JSON 结构 ({"client_secret": "<var>SNOWFLAKE_PAT_TOKEN</var>", "scope": "session:role:<var>SNOWFLAKE_ROLE</var>"}),而不是原始的个人访问令牌 (PAT) 字符串。
  • 令牌过期和权限:确保 Snowflake PAT 有效,并且关联的用户和角色具有足够的权限来访问目标目录和数据库。
  • 网络策略:如果配置了 Snowflake 网络策略,请确保将 Google 的出站流量 IP 地址范围 goog.json 添加到许可清单中。