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 INTEGRATION、DROP CATALOG INTEGRATION、SHOW CATALOG INTEGRATIONS、DESCRIBE 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>' ]
必填参数¶
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. |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
您无法修改现有目录集成;请改用 CREATE OR REPLACE CATALOG INTEGRATION 语句。
如果一个或多个 Apache Iceberg™ 表与目录集成关联,您无法删除或替换目录集成。
要查看依赖于目录集成的表,您可以使用 SHOW ICEBERG TABLES 命令和使用 RESULT_SCAN 对
catalog_name
列进行筛选的查询。备注
列标识符 (
catalog_name
) 区分大小写。指定与 SHOW ICEBERG TABLES 输出中显示的完全相同的列标识符。例如:
SHOW ICEBERG TABLES; SELECT * FROM TABLE( RESULT_SCAN( LAST_QUERY_ID() ) ) WHERE "catalog_name" = 'my_catalog_integration_1';
关于元数据:
注意
客户应确保在使用 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;