使用 Amazon Redshift 访问联合数据时的限制和注意事项
某些 Amazon Redshift 功能不支持对联合数据进行访问。您可以在下面找到相关的限制和注意事项。
以下是将联合查询与 Amazon Redshift 结合使用时的限制和注意事项:
联合查询支持对外部数据源进行读取访问。无法在外部数据源中写入或创建数据库对象。
在某些情况下,您可能访问与 Amazon Redshift 不同的 Amazon 区域中的 Amazon RDS 或 Aurora 数据库。在这些情况下,您通常会因跨 Amazon 地区传输数据而产生网络延迟和计费费用。我们建议您将 Aurora 全局数据库用于与 Amazon Redshift 集群位于同一 Amazon 区域的本地端点。Aurora 全局数据库使用专用基础设施在任意两个 Amazon 区域间进行基于存储的复制,典型延迟不到 1 秒。
考虑访问 Amazon RDS 或 Aurora 的成本。例如,使用此功能访问 Aurora 时,Aurora 费用基于 IOPS。
联合查询不允许从 RDS 或 Aurora 访问 Amazon Redshift。
联合查询仅在同时提供 Amazon Redshift 和 Amazon RDS 或 Aurora 的 Amazon 区域中可用。
联合查询当前不支持
ALTER SCHEMA。要更改 schema,请依次使用DROP和CREATE EXTERNAL SCHEMA。联合查询不适用于并发扩展。
联合查询当前不支持通过 PostgreSQL 外部数据包装程序进行访问。
对 RDS MySQL 或 Aurora MySQL 的联合查询支持在 READ COMMITTED 级别的事务隔离。
如果未指定,Amazon Redshift 将连接到端口 3306 上的 RDS MySQL 或 Aurora MySQL。在为 MySQL 创建外部架构之前,请确认 MySQL 端口号。
从 MySQL 中获取 TIMESTAMP 和 DATE 数据类型时,零值被视为 NULL。
以下是使用对 PostgreSQL 数据库的联合查询时事务的注意事项:
-
如果查询由联合表组成,则领导节点会在远程数据库上启动 READ ONLY REPEATABLE READ 事务。此事务在 Amazon Redshift 事务的持续时间内保留。
领导节点通过调用
pg_export_snapshot创建远程数据库快照,并对受影响的表进行读锁定。计算节点启动事务,并使用在领导节点上创建的快照来向远程数据库发出查询。
Amazon Redshift 外部 schema 可以引用外部 RDS PostgreSQL 或 Aurora PostgreSQL 中的数据库。当它这样做时,以下限制将适用:
创建引用 Aurora 的外部 schema 时,Aurora PostgreSQL 数据库必须为版本 9.6 或更高版本。
创建引用 Amazon RDS 的外部 schema 时,Amazon RDS PostgreSQL 数据库必须为版本 9.6 或更高版本。
Amazon Redshift 外部 schema 可以引用外部 RDS MySQL 或 Aurora MySQL 中的数据库。当它这样做时,以下限制将适用:
创建引用 Aurora 的外部 schema 时,Aurora MySQL 数据库必须为版本 5.6 或更高版本。
创建引用 Amazon RDS 的外部 schema 时,RDS MySQL 数据库必须为版本 5.6 或更高版本。