在 redshift 中执行跨数据库联合查询是不是可行?
Posted
技术标签:
【中文标题】在 redshift 中执行跨数据库联合查询是不是可行?【英文标题】:Is it feasible to perform a cross database federated query in redshift?在 redshift 中执行跨数据库联合查询是否可行? 【发布时间】:2021-12-01 06:48:12 【问题描述】:虽然跨数据库查询(在基于 ra3 节点的集群中)和联合查询似乎可以单独工作,但它们似乎无法一起工作。我很可能遗漏了一些东西,因此提出了这个问题。详情如下:
RDS Aurora mysql 有一个数据库,比如 DB1 Redshift 集群说 c1 有数据库说 RSDB1 和 RSDB2 我可以将 DB1 配置为 RSDB1 中的外部架构,比如 ext_mdb,并且还可以查询例如:如下所示从 ext_mdb.Table2 中选择 count(1);
当我连接到 RSDB2 时,我还可以使用跨数据库查询架构 RSDB1.public.Table1。 当我尝试从 RSDB2 查询 RSDB1.ext_mdb.Table2 失败并出现以下错误从 RSDB1.ext_mdb.Table2 中选择 count(1); # 这也有效
从 RSDB1.ext_mdb.Table2 中选择 count(1); # 这不是来自 RSDB2
错误:数据库中不存在关系表 2。
【问题讨论】:
【参考方案1】:从我的理解来看,目前 redshift 中的跨数据库查询似乎是一个限制:https://docs.aws.amazon.com/redshift/latest/dg/cross-database_limitation.html
它说的地方
Amazon Redshift 不支持在 AWS Glue 或联合数据库上查询目录对象。要查询这些对象,首先要创建引用每个数据库中的那些外部数据源的外部模式。
【讨论】:
以上是关于在 redshift 中执行跨数据库联合查询是不是可行?的主要内容,如果未能解决你的问题,请参考以下文章
Node-Redshift 是不是支持复制命令(查询)将数据从 S3 加载到 Redshift?
跨多个过程调用缓存 getdate() 的 Redshift 问题