0

虽然跨数据库查询(在基于 ra3 节点的集群中)和联合查询单独似乎可以工作,但它们似乎一起不起作用。我很可能遗漏了一些东西,因此提出了这个问题。以下是详细信息:

  • RDS Aurora MySQL 有一个数据库,比如 DB1
  • Redshift集群说c1有数据库说RSDB1和RSDB2
  • 我能够将 DB1 配置为 RSDB1 中的外部模式,比如 ext_mdb 并且能够查询例如:如下

从 ext_mdb.Table2 中选择 count(1);

从 RSDB1.ext_mdb.Table2 中选择 count(1);# 这也有效

  • 当我连接到 RSDB2 时,我还可以使用跨数据库查询模式 RSDB1.public.Table1。
  • 当我尝试从 RSDB2 查询 RSDB1.ext_mdb.Table2 失败并出现以下错误

从 RSDB1.ext_mdb.Table2 中选择 count(1);# 这不是来自 RSDB2

错误:数据库中不存在关系表 2。

4

1 回答 1

0

从我的理解来看,这似乎是redshift中跨数据库查询的限制:https ://docs.aws.amazon.com/redshift/latest/dg/cross-database_limitation.html

它说的地方

Amazon Redshift 不支持在 AWS Glue 或联合数据库上查询目录对象。要查询这些对象,首先创建引用每个数据库中的那些外部数据源的外部模式。

于 2021-12-01T07:51:52.140 回答