如何在 Redshift 中从不同数据库中选择表

Posted

技术标签:

【中文标题】如何在 Redshift 中从不同数据库中选择表【英文标题】:How to select tables from different databases in Redshift 【发布时间】:2018-06-22 21:26:00 【问题描述】:

我需要从位于 2 个不同数据库中的 2 个不同表中获取选择数据。使用 SQL Server 我会做SELECT * FROM database.schema.table, 但我试过了,但它在使用 Amazon Redshift 时不起作用。

有谁知道如何做到这一点?

【问题讨论】:

我认为没有办法,当您连接到 Redshift 时,您在连接字符串中填充数据库名称,这意味着您只能从该 Redshift 集群中的该数据库访问数据。跨度> 仅供参考..forums.aws.amazon.com/thread.jspa?threadID=143821 见:Is it possible to run a join between two different AWS Redshift Databases in the same cluster? 【参考方案1】:

截至 2020 年底,这可以通过“跨数据库查询”实现。更多信息请查看官方文档here。

【讨论】:

【参考方案2】:

Redshift 不支持跨数据库引用。即:您不能调用当前数据库之外的任何内容。 这里有两个解决方案:

    移至另一个支持跨数据库引用的 DWH:主要是雪花或 BQ 将数据复制到 s3,然后将其加载到目标数据库

【讨论】:

到 2020 年底不再适用。添加新答案。

以上是关于如何在 Redshift 中从不同数据库中选择表的主要内容,如果未能解决你的问题,请参考以下文章

在 Redshift 中从表中选择 Date1、Date2

如何使用SQL或Python在Amazon Redshift中从Amazon Snow雪花重新创建数据库表? (一次重新创建所有ot,而不是一次一遍地创建)

在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)

在 docker 容器超时中从 s3 复制到 Redshift

在 Redshift SQL 中从数组中提取值

Redshift - 在 where 子句中从 csv 传递值