Apache Iceberg 与 Amazon Redshift 的兼容性
您可以将整个 Amazon Redshift 预置集群或无服务器命名空间注册到 AWS Glue Data Catalog,以创建可在 AWS 账户之间安全地共享实时数据的目录。您可以从任何支持 Apache Iceberg REST API 的 SQL 查询引擎访问这些目录。AWS Lake Formation 管理目录的权限,可让您使用一组权限管理单个数据副本,同时利用 Amazon Redshift 功能(例如实体化视图和零 ETL 集成)。
从在 AWS Glue Data Catalog 中注册的 Amazon Redshift 预置集群和无服务器命名空间创建的所有目录,都会自动作为外部数据库挂载到同一 AWS 区域中同一账户下的所有预置集群和无服务器工作组上。在 AWS Glue Data Catalog 中创建的用于将数据存储在 Redshift 托管式存储(RMS)中的目录与外部数据库的挂载方式类似。挂载后,您可以直接连接到这些数据库,并使用三部分表示法 database@namespace-catalog.schema.table
查询对象。
提供 Apache Iceberg 兼容性的区域
以下 AWS 区域提供 Apache Iceberg 与 Amazon Redshift 的兼容性:
美国东部(弗吉尼亚州北部)
美国东部(俄亥俄州)
美国西部(加利福尼亚北部)
亚太地区(香港)
亚太地区(首尔);
亚太地区(新加坡)
亚太地区(悉尼)
亚太地区(东京)
加拿大(中部)
欧洲地区(法兰克福)
欧洲地区(爱尔兰)
Europe (London)
Europe (Stockholm)
南美洲(圣保罗)
在 AWS Glue Data Catalog 中使用 Amazon Redshift 目录时的注意事项和限制
在 AWS Glue Data Catalog 中使用 Amazon Redshift 目录时,请考虑以下事项:
注册到 AWS Glue Data Catalog 的数据仓库遵循三部分语法来访问表 (
database@namespace-catalog.schema.table
)。例如,如果您注册了一个名为 a 的 Amazon Redshift 命名空间,该命名空间由名为 b 的数据库填充,该数据库包含一个名为 c 的架构,其中有一个名为 d 的表,则可以使用以下语句从 d 中进行选择:SELECT * FROM b@a.c.d;
请注意,语法的
database@namespace-catalog
部分的总长度不得超过 127 个字符。当您向 AWS Glue Data Catalog 注册集群或命名空间时,Amazon Redshift 会注册该集群或命名空间中的所有数据库和关系。
您可以向 AWS Glue Data Catalog 注册多个 Redshift 集群和命名空间。
注册集群或命名空间仅注册该集群或命名空间中的内部架构和关系。不注册以下各项:
外部架构。
外部表。请注意,将注册从外部表创建的后期绑定视图。
用户定义的函数。
过程。
附加了行级安全策略或动态数据掩蔽策略的表。
名称为大写或混合大小写的数据库对象。不注册包含大写或混合大小写列的表。即使禁用 enable_case_sensitive_identifier,这也适用。
Amazon Redshift 数据库权限(例如通过基于角色的访问控制授予的角色)不会转移到 AWS Glue Data Catalog 中的目录。使用 AWS Lake Formation 为 AWS Glue Data Catalog 配置权限。有关使用 Lake Formation 配置权限的更多信息,请参阅《AWS Lake Formation 开发人员指南》中的设置 Amazon Redshift 数据共享权限。
当您从注册的集群或无服务器命名空间创建目录时,AWS Glue Data Catalog 使用 Amazon Redshift 计算资源创建一个 Amazon Redshift 托管式工作组,以处理查询该目录时的计算需求。您可以在 Amazon Redshift Serverless 控制台中查看托管式工作组,并在 AWS Glue 中对其进行管理。
注册暂停的集群时,AWS Glue Data Catalog 不会将该集群挂载为目录,直至集群恢复。
当您注册未活跃使用的无服务器命名空间时,AWS Glue Data Catalog 不会将该命名空间挂载为目录,直到再次使用该命名空间。
您的账户必须具有默认 VPC 才能创建托管式工作组。