CREATE CATALOG INTEGRATION (AWS Glue)

在账户中创建新的 目录集成 或为使用 AWS Glue 作为目录的 Apache Iceberg™ 表 替换现有的目录集成。

备注

要为 AWS Glue Iceberg REST 端点创建目录集成 (https://docs.aws.amazon.com/glue/latest/dg/access_catalog.html#connect-glu-iceberg-rest),请改为参阅 CREATE CATALOG INTEGRATION (Apache Iceberg™ REST)

重要

为 AWS Glue 创建目录集成时,您必须完成其他步骤,才能在 Snowflake 和 Glue Data Catalog 之间建立信任关系。有关信息,请参阅 为 AWS Glue 配置目录集成

另请参阅:

ALTER CATALOG INTEGRATIONDROP CATALOG INTEGRATIONSHOW CATALOG INTEGRATIONSDESCRIBE CATALOG INTEGRATION

语法

CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
  <name>
  CATALOG_SOURCE = GLUE
  TABLE_FORMAT = ICEBERG
  GLUE_AWS_ROLE_ARN = '<arn-for-AWS-role-to-assume>'
  GLUE_CATALOG_ID = '<glue-catalog-id>'
  [ GLUE_REGION = '<AWS-region-of-the-glue-catalog>' ]
  CATALOG_NAMESPACE = '<catalog-namespace>'
  ENABLED = { TRUE | FALSE }
  [ REFRESH_INTERVAL_SECONDS = <value> ]
  [ COMMENT = '<string_literal>' ]
Copy

必填参数

name

用于指定目录集成的标识符(名称)的字符串;在账户中必须唯一。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

CATALOG_SOURCE = GLUE

指定该集成用于 AWS Glue。

TABLE_FORMAT = ICEBERG

指定 Glue Iceberg 表。

GLUE_AWS_ROLE_ARN = 'arn-for-AWS-role-to-assume'

指定要承担的 AWS Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN)。

GLUE_CATALOG_ID = 'glue-catalog-id'

指定 AWS 账户的 ID。

CATALOG_NAMESPACE = 'catalog-namespace'

指定 AWS Glue Data Catalog 命名空间(例如,my_glue_database)。这是与此目录集成关联的所有 Iceberg 表的默认命名空间。您可以在创建表时在表级别指定命名空间,从而替换此值。

ENABLED = { TRUE | FALSE }

指定目录集成是否可用于 Iceberg 表。

  • TRUE 允许用户创建引用此集成的新 Iceberg 表。引用此集成的现有 Iceberg 表通常能正常运行。

  • FALSE 阻止用户创建引用此集成的新 Iceberg 表。引用此集成的现有 Iceberg 表无法访问表定义中的目录。

可选参数

[ GLUE_REGION = 'AWS-region-of-the-glue-catalog' ]

指定 AWS Glue Data Catalog 的 AWS 区域。如果 Snowflake 账户未托管在 AWS 上,则必须为此参数指定一个值。否则,默认区域是账户的 Snowflake 部署区域。

REFRESH_INTERVAL_SECONDS = value

指定 Snowflake 在尝试轮询外部 Iceberg 目录期间等待的秒数,该轮询旨在获取用于 自动刷新 的元数据更新。

值:30 到 86,400(含)

默认值:30 秒

COMMENT = 'string_literal'

字符串(字面量),用于指定集成注释。

默认:无值

访问控制要求

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

权限

对象

备注

CREATE INTEGRATION

账户

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

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

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

使用说明

  • 您无法修改现有目录集成;请改用 CREATE OR REPLACE CATALOG INTEGRATION 语句。

  • 如果一个或多个 Apache Iceberg™ 表与目录集成关联,您无法删除或替换目录集成。

    要查看依赖于目录集成的表,您可以使用 SHOW ICEBERG TABLES 命令和使用 RESULT_SCANcatalog_name 列进行筛选的查询。

    备注

    列标识符 (catalog_name) 区分大小写。指定与 SHOW ICEBERG TABLES 输出中显示的完全相同的列标识符。

    例如:

    SHOW ICEBERG TABLES;
    
    SELECT * FROM TABLE(
      RESULT_SCAN(
          LAST_QUERY_ID()
        )
      )
      WHERE "catalog_name" = 'my_catalog_integration_1';
    
    Copy
  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

示例

以下示例创建了一个使用 AWS Glue 目录源的目录集成。为 Glue 创建目录集成时,您必须完成其他步骤,才能在 Snowflake 和 Glue Data Catalog 之间建立信任关系。有关信息,请参阅 为 AWS Glue 配置目录集成

CREATE CATALOG INTEGRATION glueCatalogInt
  CATALOG_SOURCE = GLUE
  CATALOG_NAMESPACE = 'myNamespace'
  TABLE_FORMAT = ICEBERG
  GLUE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myGlueRole'
  GLUE_CATALOG_ID = '123456789012'
  GLUE_REGION = 'us-east-2'
  ENABLED = TRUE;
Copy
语言: 中文