自动履行设置问题排查¶
设置列表时,数据产品的潜在问题可能会阻止自动履行。
在为多个列表生成快照期间自动履行失败¶
- 错误:
自动履行多个列表时发生内部错误。
- 原因:
如果多个列表使用同一个数据库进行跨区域共享,并且其中一个列表包含或引用不受支持的对象类型,则可能会发生错误。这可能会影响使用该数据库的所有列表的自动履行过程。例如,假设提供商添加了一个要跨云或跨区域传输的新列表。新列表共享其他列表也使用的数据库中的对象。新列表包括一个使用 BUILD_SCOPED_FILE_URL 的 VIEW,该函数可调用 GET_STAGE_FILE 从 S3 中的外部暂存区检索数据。由于外部暂存区不支持自动履行,并且该数据库中的对象作为一个组一起传输,因此其他列表会出现相同的错误。如果不采取任何措施,远程区域的现有使用者将无法获得更新,新客户也将无法获得数据产品。
网络问题、身份验证问题或某些操作(如复制)中不支持的对象类型等其他问题也可能出现类似的错误。
- 解决方案:
从最近添加或更新的列表开始,验证以下内容:
验证有错误的列表组中的列表是否仅包含跨区域自动履行支持的对象类型,
验证是否没有任何对象引用不支持的对象类型。您可能需要检查多个级别的依赖项才能确定问题的根本原因,例如,调用 BUILD_SCOPED_FILE_URL 的视图本身可以调用 GET_STAGE_FILE 从外部暂存区检索数据。
对需要不同对象类型的列表使用单独的数据库,以避免交叉影响。
移除或替换任何不支持的对象,以避免自动履行错误。
检查是否存在潜在的网络、身份验证或缺失 GRANTS 问题。
如果问题仍然存在或者您需要帮助,请联系 Snowflake 支持部门。
数据库大于 10TB¶
- 错误:
由于共享与大于 10TB 的数据库相关联,自动履行不可用。
由于数据产品与大于 10TB 的数据库相关联,自动履行不可用。
- 原因:
包含共享中对象的数据库大于数据库复制和自动履行的 10TB 限制。此限制旨在防止自动履行或复制导致意外的高昂费用,但可以更改。
- 解决方案:
了解自动履行大于 10TB 的数据库对一个或多个区域的费用影响。请参阅 自动履行成本。
如果您接受可能产生的费用增加,可以联系 Snowflake 支持部门,请他们为您的整个账户调整该限制。
数据产品包含引用数据库¶
- 错误:
共享中的引用数据库不支持自动履行。
下面的共享对象引用不兼容。
共享数据库中的以下引用不兼容。
- 原因:
附加到列表的共享包含引用数据库,或者包含引用其他数据库的对象。自动履行不支持引用其他数据库中的对象。
- 解决方案:
您可以执行下列操作之一:
从共享中移除引用数据库,以及对引用数据库进行引用的对象。
使用包含共享所需的全部对象的另一个数据库。您可能需要在新数据库中重新创建表,并更新视图和函数定义。
改为使用手动履行。仅部分列表可以手动履行。请参阅 手动复制数据以履行列表请求。
数据产品包含不支持的对象¶
- 错误:
数据产品包含与跨区域共享不兼容的对象。更新数据产品,以与其他区域中的账户共享。
以下共享对象不兼容。
共享数据库中的以下对象不兼容。
- 原因:
包含共享的数据库中包含自动履行不支持的对象。由于整个数据库都会自动履行,因此即使共享不包含对象,您仍有可能遇到此问题。
对于应用程序包,如果应用程序或所引用数据库中包含的数据内容含有自动履行不支持的对象,则可能会遇到此问题。
- 解决方案:
请查看支持自动履行的对象的完整列表。请参阅 支持自动履行的对象。
如果数据库包含不支持的对象,可以执行下列操作之一:
从待共享数据库或应用程序包中移除不支持的对象。
使用包含共享所需的全部对象,并且不包含不支持的对象的另一个数据库。
列表数据库是主数据库¶
- 错误:
共享中的主数据库不支持自动履行。
数据产品中的主数据库不支持自动履行。
无法自动履行列表:不支持全局数据库,而列表数据库是全局数据库。
- 原因:
共享包含以前用于数据库复制的数据库中的对象。
- 解决方案:
您可以执行下列操作之一:
转换辅助数据库和主数据库以使用复制组,并按需设置手动复制组。请参阅 从 Database Replication 转换为基于组的复制
使用包含共享所需的全部对象,并且以前未复制过的其他数据库。
列表数据库是辅助数据库¶
- 错误:
共享中的辅助数据库不支持自动履行。您需要在可用区域中手动设置账户,将数据库复制到各账户,在各账户中创建安全共享,并将这些共享附加到此列表。
数据产品中的辅助数据库不支持自动履行。请选择其他数据产品。
- 原因:
包含共享的数据库是辅助数据库,辅助数据库为只读,无法复制或自动履行。
- 解决方案:
您可以执行下列操作之一:
从数据库为主数据库的账户创建列表。
停止手动将数据库复制到其他区域。