我正在设计我的数据库结构,想知道是否可以针对两个独立的 Redshift 集群运行单个查询?
如果可以的话,有地域、可用区、VPC组等限制吗?
不,直接在 Redshift 中不可能。 此外,您无法在同一个集群上跨多个数据库进行查询。
更新:Redshift 宣布于 2020 年 10 月 15 日推出跨数据库查询预览 - https://docs.aws.amazon.com/redshift/latest/dg/cross-database-overview.html
您可以使用在 EMR 集群上运行的外部工具(例如 Amazon Athena 或 Presto)来执行此操作。您可以将每个 Redshift 集群定义为外部数据源。但要小心,您将失去 Redshift 的大部分性能优化,并且必须将大量数据拉回 Athena / Presto 来回答您的查询。
作为跨集群查询的替代方案,请考虑将数据以良好分区的 Parquet 或 ORC 文件的形式放置到 S3 上,并使用 Redshift Spectrum(或 Amazon Athena)来查询它们。这种方法允许多个集群查询公共数据集,同时保持良好的查询性能。 https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/
使用 Amazon Redshift 中的联合查询,可以将第二个集群表作为外部架构进行访问
您可以参考文档https://docs.aws.amazon.com/redshift/latest/dg/federated_query_example.html
现在可以使用 redshift 来完成此操作 datashares