Redshift 外部表和 Redshift Spectrum 之间有什么区别

Sim*_*onD 2 amazon-web-services amazon-redshift

阅读完文档后,我发现很难理解这两件事如何结合在一起或者它们是否是同一件事?

Spectrum 是底层技术名称,外部表位于其之上吗?您可以在不使用 Redshift Spectrum 的情况下使用外部表吗?如果不同的话,有什么区别呢?

Mar*_*cin 5

要使用 Redshift (RS) 中的任何数据,您需要定义数据的架构。这是通过表完成的,就像在传统数据库(例如 MySQL)中一样。

RS Spectrum (RSS) 允许您直接与 S3 中的数据交互(无需与COPYRS 交互)。但要与该数据交互,您需要定义其架构,因为 RS 无法处理未定义的数据。这是通过外部表 (ET) 完成的。因此 ET 与常规 RS 表相同,只是数据存储在 S3 中,而不是存储在 RS 节点中。

回答您的问题:

您可以在不使用 Redshift Spectrum 的情况下使用外部表吗

不,你不能。ET仅用于RSS查询S3中的数据,没有其他外部数据源。对于从S3以外的其他来源(例如MySQL、PostgreSQL)查询数据,有联合查询

但事实恰恰相反。如果您在 AWS Glue Data Catalog 中定义了表,则可以使用 RSS,而无需手动创建 ET。

如果不同的话,有什么区别呢?

ET 描述数据的架构(列名称及其数据类型)及其在 S3 中的位置。RSS 是 AWS 在后端使用的计算引擎,用于实际执行您对 S3 数据的查询。