类别:

: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

目标目录集成。

Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.

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

有关对 安全对象 执行 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 表,然后重试。

语言: 中文