Redshift Spectrum

假设我们想对很大的数据集时做查询,此时需要把数据加载到Redshift,加载完成后,我们也不知道后面会不会再查它:

  • 如果删掉Redshift,下次查询时还要创建集群并导入数据,比较花时间
  • 如果不删除,数据量很大会占用Redshift磁盘空间,造成浪费

数据保存到S3的价格远远低于Redshift磁盘的费用Redshift Spectrum就是利用这个优势,直接从S3上查询数据,处理完成后把结果和Redshift存储的数据做join查询。这样一来我们只需要把经常查询用到的数据放在Redshift

在执行Spectrum查询时,worker节点会检查Data Catalog,以找到S3上数据的位置:

image-20221024212250305

Redshift Spectrum底层是上千台自动伸缩的EC2

Redshift Spectrum的一些特性

  • 多个Redshift集群可同时查询一份S3上的数据集。当S3上数据发生变化时,Redshift能立即查询到

  • 在查询时,Redshift集群和S3桶必需要在同一个region

  • 不支持对外部表做更新操作

权限设置

在支持Glue的区域, Redshift Spectrum使用Glue Data Catalog;在其他区域, Redshift Spectrum使用Athena Data Catalog。所以通常为Redshift授权这两个服务的访问