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_policy和consumer.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);
您可能还用尽了隐私预算:
CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
- 错误:
当使用者调用任何需要 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 表注册信息 并确保遵循提供商和使用者双方的所有说明。