如何在 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 中从不同数据库中选择表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用SQL或Python在Amazon Redshift中从Amazon Snow雪花重新创建数据库表? (一次重新创建所有ot,而不是一次一遍地创建)
在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)