Collaboration Data Clean Room 故障排除¶
当您在使用 Collaboration Data Clean Room 时遇到错误时,请参阅以下故障排除提示。
协作¶
- 错误:
Pending invitation for collaboration: <collaboration name> not foundalthoughGET_STATUS显示账户为INVITED。- 原因:
如果初始联接尝试由于某种原因失败,则后续联接尝试可能会因此失败。
- 解决方案:
删除并重新创建协作。
- 错误:
您创建的协作在协作者的账户中不可见。
- 原因:
可能有以下几种原因:
协作是在不同的云托管区域创建的,并且您尚未启用 Cross-Cloud Auto-Fulfillment。
您没有共享协作,使用错误账户共享协作,或者您在 Snowsight/SDCR UI/CLI 中打开了错误的协作者账户。确认您希望看到协作的账户是您共享协作的账户,并且您已登录该共享账户。
从发布协作到协作者可以看到它之间会有很小的延迟。
- 解决方案:
确认协作者的账户与您协作规范中的账户一致,并在必要时启用 Cross-Cloud Auto-Fulfillment。稍等片刻,等待协作传播完成。
- 错误:
:code:`ReferenceUsageGrantMissingException: Reference usage grants are required for the following databases in your account ...`(当数据提供商尝试加入协作时)。数据提供商在尝试加入协作时会看到此消息,并且他们共享了自己没有 REFERENCE_USAGE 的数据。这是符合预期的行为。
- 解决方案:
错误消息包括数据库名称和共享名称。必须由对数据具有 REFERENCE_USAGE 权限或具有 ACCOUNTADMIN 权限的人运行以下 SQL 命令,并提供错误消息中给出的数据库和共享名称
成功授予 REFERENCE_USAGE 后,数据提供商可以加入协作。
API 和权限¶
- 错误:
Unknown user-defined function <function name>- 原因:
如果这是为 DCR 协作 API 记录的过程,您可能拼错了过程名称。
如果过程名称没有拼写错误,或者过程是系统过程(即,名称带
$),您可能使用的是旧版 API,需要升级您的 Clean Room API 版本。- 解决方案:
确认过程名称拼写正确,如果不正确,请再次尝试拼写正确。
要更新安装,请运行以下 SQL 代码:
- 错误:
创建新的 Clean Room 或运行协作存储过程时出现的问题。
- 原因:
如果 Snowflake Data Clean Room 安装版本为 12.3 或更早版本,则相对于原生应用程序,API 环境可能已过时,并且自动更新可能已停止工作。
- 解决方案:
以
ACCOUNTADMIN身份再次运行挂载程序,验证挂载,并可选择重新开启自动升级。
- 错误:
Listing 'listing name' is not fulfilled to your current region. Please request the listing, or if already requested, retry after some time- 原因:
您使用的是旧版 Clean Room API。此问题已在更新的版本中修复。
- 解决方案:
- 错误:
SQL compilation error: Unknown user-defined function SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN- 原因:
您可能拼错了完全限定程序名称的某些部分,或者您没有运行该程序的权限。
- 解决方案:
确认您使用了正确的程序名称。如果您当前未使用 SAMOOHA_APP_ROLE,请尝试切换到该角色,看是否还会出现同样的错误。如果不再出现,则属于权限错误。
- 错误:
Unknown user-defined function SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.<namespace>.<procedure name>- 原因:
以下其中一项:
您使用了错误的命名空间。请确保调用正确的
COLLABORATION或REGISTRY命名空间。您输入了错误的函数名称。查看参考指南以获取正确的命名。
您使用的 RBAC 角色没有调用该过程的权限。
您没有 SAMOOHA_APP_ROLE。
- 解决方案:
确认您正确拼写了过程名称并使用了正确的命名空间。
尝试切换到 SAMOOHA_APP_ROLE,看看是否能够运行该过程。如果可以,则说明问题在于您当前角色的权限不足。请向拥有 SAMOOHA_APP_ROLE 的用户请求 授予您相应的权限。
要检查您是否拥有 SAMOOHA_APP_ROLE,请运行以下命令:
如果您未得到任何结果,请管理员授予您对协作的 API 访问权限。
代码捆绑包¶
- 错误:
CodeSpecAlreadyExistsException- 原因:
已注册具有相同名称和版本的代码包规范。
- 解决方案:
使用其他版本或更新现有版本。
- 错误:
SpecValidationError- 原因:
YAML 不符合架构。
- 解决方案:
检查必填字段和格式。
- 错误:
CodeSpecStageNotAccessibleError- 原因:
工件中引用的暂存区不可访问。
- 解决方案:
授予对暂存区的访问权限或验证暂存区是否存在。
- 错误:
CodeSpecArtifactNotFoundAtStageError- 原因:
在指定的暂存区路径中找不到文件。
- 解决方案:
注册前将文件上传到暂存区。
- 错误:
StageDirectoryNotEnabledError- 原因:
暂存区没有启用 DIRECTORY。
- 解决方案:
在暂存区上启用目录:
ALTER STAGE ... SET DIRECTORY = (ENABLE = TRUE)
- 错误:
CodeSpecNotFoundForOwnerException- 原因:
模板引用了未注册的代码包规范。
- 解决方案:
在注册模板之前注册代码包规范。