Snowflake Data Clean Rooms 故障排除

本页是使用 Clean Room 时的一般故障排除指南。如果您正在使用 API,请务必阅读您调用的任何过程的参考文档以及用例指南,以查看其中是否涵盖了您的问题。

如果您是开发者,请参阅 开发者故障排除指南 了解更多信息。

安装问题

分析问题

错误:

Failure during expansion of shared view <CLEAN ROOM VIEW NAME> as view owner:Insufficient permission to resolve external/iceberg table <TABLE_NAME> shared by application SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID>

原因:

您正在尝试访问外部表或 Iceberg 表,但提供商和使用者的账户中均未启用外部表和 Iceberg 表。

解决方案:

确保提供商和使用者账户都 已启用外部表和 Iceberg 表


 

错误:

SQL compilation error:Failure during expansion of shared view '<CLEAN ROOM VIEW NAME>' as view owner:Object '<some object name>' does not exist or not authorized.

原因:

您尝试访问的数据集上不再存在 Clean Room 授权。这很可能是因为源对象已被重命名或替换。

解决方案:
  • 如果表已重命名,请将名称更改回 Clean Room 中链接的名称。您可能还需要重新注册该对象。

  • 如果重新创建了表,请在 Clean Room 中再次注册对象。


 

错误:

查询返回零结果,而您认为这是错误的**

可能的原因和解决方案:
  • 确认双方都没有对数据采取可能阻止联接或显示的掩码策略。

  • 确认联接列的格式相同。

  • 确认您没有低于任何固定阈值设置。受众重叠的默认阈值为 5,这意味着结果中省略的行数少于 5 行。询问提供商阈值是多少,并确认是否存在大于该数字的重叠;暂时修改重叠规范以保证大型段组,然后查看是否获得结果。

跨云问题

错误:

Analysis Execution Failure: 'SnowparkSQLException' due to Database Listing Conflict 存在于单账户测试 Clean Room 中

原因:

单账户测试 Clean Room 不支持 Cross-Cloud Auto-Fulfillment。

解决方案:

在测试期间,通过调用 library.disable_laf_on_account 禁用此 Clean Room 账户中的 Cross-Cloud Auto-Fulfillment,或者不要尝试在此 Clean Room 中进行跨云过程调用。

云数据连接器问题

如果您在使用 AWS、Azure 或 Google Cloud Storage 的外部数据连接器时遇到问题,请参阅 Snowflake Data Clean Rooms:外部数据连接器故障排除

请求日志问题

错误:

**Failure**: Request logs unable to be mounted. Try again.

原因:

内部 Clean Room 的挂载请求日志成功,但同一账户中外部 Clean Room 的挂载请求日志失败。内部 Clean Room 的要求少于外部 Clean Room。您的安装满足使用内部 Clean Room 的要求,但不满足使用外部 Clean Room 的要求。

解决方案:

确认您的电子邮件已通过 Clean Room 的验证,并且您满足了所有 Clean Room 账户要求

数据访问问题

有关数据访问问题的一般准则

您可能会收到一条错误消息,报告在使用流程中的几个时间点无法访问数据源:

如果在注册过程中发生错误:

  • 如果使用 API,则可能是您拼写错误了表名或路径。

  • 如果是外部表或 Iceberg 表,请确认您已满足注册外部表或 Iceberg 表的 要求和过程

  • 请确认您当前的角色对要注册的对象拥有 OWNERSHIP 权限。

如果在链接过程中发生错误:

  • 在 API 中,您可能使用了错误的角色。

  • 该对象可能尚未注册。在 API 中,如果尝试链接未注册的对象,则会看到错误。在 UI 中,您应该只能看到已注册为可用于链接的对象。

  • 确认 SAMOOHA_APP_ROLE 对您的对象有 USAGE 和 SELECT 权限。

  • 自注册以来,该表可能已移动、重命名或更改了其权限(或任何 Snowflake 策略权限)。发生这种情况时,您可能还会看到以下错误:SQL access control error:Insufficient privileges to operate on table...

如果在成功注册和链接数据后发生错误:

如果使用 API,确认完全限定表名拼写正确。

Data access errors

错误:

Object '<some_object_name>' does not exist or not authorized

原因:

源表可能已移动、重命名,或更改了其权限(或对其依赖的策略或祖先对象的权限)。

解决方案:

尝试在账户中重新注册和重新链接对象,将对象移回旧位置,或者恢复添加的任何其他权限。


 

错误:

Insufficient permission to resolve external/iceberg table

原因:

如果查询涉及外部表或 Iceberg 表,则表示该表未正确注册。

解决方案:

请参阅 启用外部表和 Apache Iceberg™ 表,以确保您满足使用这些表类型的要求和过程。有时可以通过显式授予 SAMOOHA_BY_SNOWFLAKE 对该表的 SELECT 权限来解决此问题。


 

错误:

运行分析导致 not approved:unauthorized columns used 错误

原因:

您正在根据协作者的联接或列策略联接或投影协作者的列。

解决方案:

通过调用 consumer.view_provider_column_policyconsumer.view_provider_join_policy 查看协作者设置的联接和列策略。

CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Copy

您可能还用尽了隐私预算:

CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

 

错误:

当使用者调用任何需要 Clean Room 名称并获取 Application 'SAMOOHA_CLEANROOM_APP<某些名称>' does not exist or not authorized. 的过程时

原因:

如果 Clean Room 名称显示为 SAMOOHA_CLEANROOM_APP<cleanroom name> 而非 SAMOOHA_CLEANROOM_APP_<cleanroom name>`(在 ``SAMOOHA_CLEANROOM_APP` 后缺少下划线),则表明 提供商 未在其账户中正确安装 Clean Room 环境。

解决方案:

告知提供商应按照此处的说明在账户中安装 Clean Room 环境:安装 Snowflake Data Clean Rooms 环境。之后,提供商可以重新创建和共享 Clean Room。

外部表和 Iceberg 表问题

错误:

Failure during expansion of shared view <CLEAN ROOM VIEW NAME> as view owner:Insufficient permission to resolve external/iceberg table <TABLE_NAME> shared by application SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID>

原因:

外部表或 Iceberg 表未在提供商和使用者账户中启用。

解决方案:

确保提供商和使用者账户都 已启用外部表和 Iceberg 表


 

错误:

使用者在链接外部表或 Iceberg 表时收到 Invalid restricted feature 'external_data'

原因:

提供商尚未启用外部表和 Iceberg 表。

解决方案:

提供商必须完成 为其账户启用外部表和 Iceberg 表 的过程。如果他们通过代码实现此操作,提供商必须检查安全扫描结果,如果成功,则必须更新默认发布版本。


 

错误:

运行涉及外部表或 Iceberg 表的分析时收到 Insufficient permission to resolve external/iceberg table 错误。

原因:

提供商和使用者都可能未正确注册该表。

解决方案:

读取外部表和 Iceberg 表注册信息 并确保遵循提供商和使用者双方的所有说明。

语言: 中文