配置目录集成

目录集成是一个命名的、账户级别的 Snowflake 对象,用于存储有关您的表元数据在以下场景中如何组织的信息:

  • 当您不使用 Snowflake 作为 Iceberg 目录 时。例如,如果您的表由 AWS Glue 管理,则需要目录集成。

  • 当您想要与 Snowflake Open Catalog 集成时:

    • 在 Snowflake Open Catalog 中使用 Snowflake 查询 Iceberg 表。

    • 将 Snowflake 管理的 Iceberg 表与 Snowflake Open Catalog 集成,以便第三方计算引擎可以查询该表。

单个目录集成可以支持一个或多个使用相同外部目录的 Iceberg 表。

您必须指定一个目录集成,以便在 Snowflake 中为以下场景创建一个 Apache Iceberg™ 表:

  • 使用外部 Iceberg 目录。

  • 从对象存储中的文件创建表。

  • 与 Snowflake Open Catalog 集成。

  • 使用 Iceberg REST 目录。

创建目录集成

您可以创建并配置目录集成,以便与一个或多个 Iceberg 表配合使用。

有关具体说明,请参阅以下主题:

在账户、数据库或架构级别设置默认目录

要定义用于 Iceberg 表的默认目录,您可以在以下几个级别上设置 CATALOG 参数:

账户:

账户管理员可以使用 ALTER ACCOUNT 命令设置账户的参数。如果为账户设置了该值,则在该账户中创建的所有使用外部目录的 Iceberg 表默认使用该目录集成。

对象:

用户可以执行适当的 CREATE <object>ALTER * <object>* 命令,以在数据库或架构级别上替换 CATALOG 参数值。系统会使用适用范围级别最低的声明:架构 > 数据库 > 账户。

除使用适当的 ALTER <object_type_> 命令修改对象所需的最小权限之外,角色还必须拥有目录集成的 USAGE 权限。

备注

对 CATALOG 参数的更改仅适用于更改 之后 创建的表。现有表将继续使用创建时指定的目录集成。

示例

以下语句为名为 my_database_1 的数据库设置目录集成 (shared_catalog_integration):

ALTER DATABASE my_database_1
  SET CATALOG = 'shared_catalog_integration';
Copy

在数据库级别设置目录集成后,可以在该数据库中创建 Iceberg 表,而无需指定目录集成。以下语句利用 my_database_1 的对象存储中的元数据创建 Iceberg 表,该数据库使用为数据库设置的默认目录集成 (shared_catalog_integration)。

CREATE ICEBERG TABLE my_iceberg_table
   EXTERNAL_VOLUME='my_external_volume'
   METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';
Copy
语言: 中文