我在AWS Redshift中维护了一个数据仓库。最近数据量和速度都有所增加。一种选择是在当然更高成本的范围内水平扩展集群。我想知道是否有可用的归档选项,以便我可以像往常一样查询整个数据(可能在查询时间有所妥协),但是是否需要额外的费用?
一种选择是直接从S3使用外部表和查询数据,但用于实现此目的的工具,如Athena和Glue都有自己的成本,也是基于每个查询。
答案 0 :(得分:1)
简单的选项:
SELECT * FROM svv_table_info;
。ENCODE zstd
来最大化压缩。DISTSTYLE ALL
(是的,这样可以节省空间!)。dc2
)切换到具有更多8倍存储空间的HDD节点(ds2
)。较少简单的选择:
UNLOAD
从Redshift到S3的旧数据,并使用Redshift Spectrum查询。请尝试使用Redshift Spectrum。查询性能通常非常好,如果您的数据采用列格式(Parquet / ORC),则查询性能会更好。
答案 1 :(得分:0)
Amazon Redshift中存储的数据将提供最高的性能。
但是,如果您访问的数据较少,则可以将其导出(UNLOAD
)到Amazon S3中,最好是作为压缩的分区数据并将其存储为Parquet或ORC更好! / p>
然后您可以在Amazon S3中使用Amazon Redshift Spectrum to Query External Data。您甚至可以将外部数据与Redshift数据结合在一起,因此可以在一个查询中查询历史信息和当前信息。
或者,您可以使用Amazon Athena直接从Amazon S3查询数据。这类似于Redshift Spectrum,但不需要Redshift。 Amazon Athena基于Presto,因此它超快,特别是如果数据以压缩,分区,Parquet / ORC的形式存储。
请参阅:Analyzing Data in S3 using Amazon Athena | AWS Big Data Blog
请注意,Redshift Spectrum和Amazon Athena会根据从磁盘读取的数据量来收费。因此,压缩的分区Parquet / ORC既便宜又便宜。