Cross-Cloud Auto-Fulfillment 问题排查

使用 Cross-Cloud Auto-Fulfillment 时,无论是通过与其他区域的使用者账户共享列表,或是通过在 Snowflake Marketplace 上设置列表的区域可用性,均可运行各种检查,以确定数据产品是否可以自动履行。

您可以使用本指南对自动履行的常见问题进行排查,如果您遇到此处未列出的问题,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。

备注

设置自动履行 的情况下,对数据产品运行兼容性检查时会出现本指南中提到的一些问题。对于私密列表,只有在添加使用者账户之前将列表保存为草稿时,才会运行兼容性检查,因此您在首次发布私密列表之前可能不会看到这些问题。

自动履行设置问题排查

设置列表时,数据产品的潜在问题可能会阻止自动履行。

角色不具备与共享相关的权限

错误:

必须具备选定共享的 OWNERSHIP,才能启用自动履行。

原因:

只有 ACCOUNTADMIN 角色才能设置自动履行。未授予 ACCOUNTADMIN 角色时,并且未继承拥有附加到列表的共享的该角色时,可能会发生此错误。

解决方案:

将拥有共享的角色授予 ACCOUNTADMIN 角色。例如,运行以下命令:

GRANT ROLE SHARE_OWNER TO ROLE ACCOUNTADMIN;
Copy

无法共享到其他区域的账户

错误:

要共享到其他区域的账户,请联系您的组织管理员,将权限委派给此账户中的 ACCOUNTADMIN 角色。

原因:

您的角色不具备设置自动履行的权限。

解决方案:

请与您的组织管理员联系,以 允许账户设置 Cross-Cloud Auto-Fulfillment

数据库大于 10 TB

错误:

由于共享与大于 10TB 的数据库相关联,自动履行不可用。

由于数据产品与大于 10TB 的数据库相关联,自动履行不可用。

原因:

包含共享中对象的数据库大于数据库复制和自动履行的 10TB 限制。此限制旨在防止自动履行或复制导致意外的高昂费用,但可以更改。

解决方案:

了解自动履行大于 10TB 的数据库对一个或多个区域的费用影响。请参阅 管理 Cross-Cloud Auto-Fulfillment 成本

如果您接受可能产生的费用增加,可以联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge),请他们为您的整个账户调整该限制。

数据产品包含引用数据库

错误:

共享中的引用数据库不支持自动履行。

下面的共享对象引用不兼容。

共享数据库中的以下引用不兼容。

原因:

附加到列表的共享包含引用数据库,或者包含引用其他数据库的对象。自动履行不支持引用其他数据库中的对象。

解决方案:

您可以执行下列操作之一:

  • 从共享中移除引用数据库,以及对引用数据库进行引用的对象。

  • 使用包含共享所需的全部对象的另一个数据库。您可能需要在新数据库中重新创建表,并更新视图和函数定义。

  • 改为使用手动履行。仅部分列表可以手动履行。请参阅 手动复制数据以履行列表请求

数据产品包含不支持的对象

错误:

数据产品包含与跨区域共享不兼容的对象。更新数据产品,以与其他区域中的账户共享。

以下共享对象不兼容。

共享数据库中的以下对象不兼容。

原因:

包含共享的数据库中包含自动履行不支持的对象。由于整个数据库都会自动履行,因此即使共享不包含对象,您仍有可能遇到此问题。

对于应用程序包,如果应用程序或所引用数据库中包含的数据内容含有自动履行不支持的对象,则可能会遇到此问题。

解决方案:

请查看支持自动履行的对象的完整列表。请参阅 支持自动履行的对象

如果数据库包含不支持的对象,可以执行下列操作之一:

  • 从待共享数据库或应用程序包中移除不支持的对象。

  • 使用包含共享所需的全部对象,并且不包含不支持的对象的另一个数据库。

列表数据库是主数据库

错误:

共享中的主数据库不支持自动履行。

数据产品中的主数据库不支持自动履行。

无法自动履行列表:不支持全局数据库,而列表数据库是全局数据库。

原因:

共享包含以前用于数据库复制的数据库中的对象。

解决方案:

您可以执行下列操作之一:

列表数据库是辅助数据库

错误:

共享中的辅助数据库不支持自动履行。您需要在可用区域中手动设置账户,将数据库复制到各账户,在各账户中创建安全共享,并将这些共享附加到此列表。

数据产品中的辅助数据库不支持自动履行。请选择其他数据产品。

原因:

包含共享的数据库是辅助数据库,辅助数据库为只读,无法复制或自动履行。

解决方案:

您可以执行下列操作之一:

  • 从数据库为主数据库的账户创建列表。

  • 停止手动将数据库复制到其他区域。

远程账户中已有同名数据库

错误:

数据产品中的引用数据库不支持自动履行,因为它已作为其他列表的一部分自动履行。在共享给远程客户之前,请移除所有引用数据库以及对引用数据库进行引用的对象。

原因:

自动履行使用的安全共享区域中已有同名数据库。如果您组织中的不同账户使用自动履行功能,并具有同名数据库自动履行到该云区域,则可能发生这种情况。云区域中的安全共享区域在您组织中的所有提供商账户之间共享。

解决方案:

您可以执行下列操作之一:

  • 重命名数据库,该数据库包含将自动履行的列表所附加的共享。重命名数据库不会影响任何下游使用者。

  • 使用包含共享所需的全部对象的另一个数据库。

自动履行的数据产品问题排查

如自动履行的数据产品配置不当,则可能会出现以下问题。

使用者的数据丢失或不同步

错误:

使用者报告称,自动履行列表中的视图不再可见。

原因:

您重新创建了与列表关联的对象(例如表或视图),并且有以下情况之一:

  • 重新创建对象后,对象未重新授予共享

  • 或者,重新授予了对象,但不到 10 分钟。系统每 10 分钟检查一次对授予共享的对象的更改,因此,如果不到 10 分钟,更新的对象尚未自动履行到使用者的区域。

解决方案:

验证对象是否已重新授予共享,并确定自运行授权查询以来经过了多长时间。

要确认所有对象均已授予主账户中的共享,请运行以下命令:

SHOW GRANTS to SHARE <share_name>;
Copy

如果需要,请将对象重新授予共享:

GRANT USAGE on DATABASE <db_name> to SHARE <share_name>;
GRANT USAGE on SCHEMA <schema_name> to SHARE <share_name>;
GRANT SELECT on TABLE <table_name> to SHARE <share_name>;
GRANT SELECT on VIEW <view_name> to SHARE <share_name>;
GRANT USAGE on FUNCTION <function_name(parameters)> to SHARE <share_name>;
Copy

在主区域中更新授权后,或使用新对象刷新数据库后,最多可能要等待 10 分钟时间,以便授权应用于所有远程区域。

请求列表后,需要较长的延迟才能获取数据

使用者报告称,他们请求了其区域内的列表,但在几天后,他们仍然无法访问数据产品。

错误:

数据正在复制到您所在区域...

原因:

如果错误消息显示了数日,并且状态无变化,则可能是发生了自动履行错误。

解决方案:

提供商可查看列表详细信息,以确定阻止数据产品自动履行的特定错误,并参照本故障排查指南解决该错误。

使用者可联系提供商,并说明在将数据产品自动履行到您所在区域时存在问题。

语言: 中文