类别:

:doc:`/sql-reference/functions-system`(系统控制)

SYSTEM$SET_CATALOG_INTEGRATION

替换与外部管理的 Apache Iceberg™ 表 关联的目录集成。

使用此函数可将表更新为使用 Iceberg REST 目录集成,从而支持更多 Iceberg 功能,例如 对外部管理的 Iceberg 表的写入支持。如有需要,您还可以使用此函数回滚至原始的 Glue 目录集成。

您还可以使用此函数将表从一个 Iceberg REST 目录集成 迁移到另一个。

语法

SYSTEM$SET_CATALOG_INTEGRATION(
  '<table_name>' ,
  '<new_catalog_integration_name>'
)
Copy

实参

'table_name'

要替换目录集成的 Iceberg 表的名称。

'new_catalog_integration_name'

要将指定表迁移到的目标目录集成的名称 table_name

返回

该函数返回一条状态消息,指示表的目录集成已成功迁移。有关示例,请参阅 示例

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

OWNERSHIP

正在替换目录集成的表。

USAGE

当前目录集成。

USAGE

目标目录集成。

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 您只能替换标准 Snowflake 数据库中外部管理的 Iceberg 表的目录集成。您不能替换目录链接数据库中的 Iceberg 表目录集成,也不能替换任何其他类型的 Iceberg 表目录集成。

  • 与表关联的当前目录集成类型会限制可用作替换的目录集成类型。下表列出了将一种类型的目录集成替换为另一种类型时支持的转换:

    当前目录集成类型

    新目录集成类型

    备注

    AWS Glue

    AWS Glue Iceberg REST

    AWS Glue Iceberg REST

    AWS Glue

    回退到使用 AWS Glue 目录源的目录集成。

    Iceberg REST

    Iceberg REST

    将表迁移到备用目录集成。

    不支持其他转换组合。

  • table_namenew_catalog_integration_name 是字符串字面量,因此必须将值放在单引号内。

  • 当前目录集成和目标目录集成必须指向同一个外部目录。

  • 当前目录集成和目标目录集成都不能启用凭据交易。

示例

将与名为 glue_table 的 Iceberg 表关联的 AWS Glue 目录集成替换为名为 glue_rest_catalog_int 的 AWS Glue Iceberg REST 目录集成:

SELECT SYSTEM$SET_CATALOG_INTEGRATION('glue_table', 'glue_rest_catalog_int');
Copy

示例输出:

+------------------------------------------------------------------------------------------------------------------------------+
|                                                SYSTEM$SET_CATALOG_INTEGRATION                                                |
+------------------------------------------------------------------------------------------------------------------------------+
| Catalog integration for table GLUE_TABLE has been migrated from 'GLUE_CATALOG_INTEGRATION' to 'GLUE_REST_CATALOG_INT'        |
+------------------------------------------------------------------------------------------------------------------------------+
Copy

故障排除

如果该函数失败,将返回错误响应。常见的错误消息包括:

错误消息

情况和解决方案

SYSTEM$SET_CATALOG_INTEGRATION 不支持从目录集成 '[CURRENT_CATALOG_INTEGRATION]' 转换到 '[TARGET_CATALOG_INTEGRATION]',因为类型组合不受支持

提供的当前或目标目录集成与支持的目录集成类型不匹配。有关支持的类型,请参阅 使用说明

SYSTEM$SET_CATALOG_INTEGRATION 无法从 '[CURRENT_CATALOG_INTEGRATION]' 转换到 '[TARGET_CATALOG_INTEGRATION]',因为目录集成配置不兼容

给定的目录集成属于受支持类型,但不符合支持的转换组合。有关支持的转换组合,请参阅 使用说明

当前不支持对已启用凭据交易的目录集成 '[CATALOG_INTEGRATION]' 执行转换

提供的目录集成已启用凭据交易。请提供已禁用凭据交易的目录集成,然后重试。

SYSTEM$SET_CATALOG_INTEGRATION 只能用于非托管 Iceberg 表

提供的表不是外部管理的 Iceberg 表。请提供外部管理的 Iceberg 表,然后重试。

语言: 中文