如何控制Redshift中增加的数据量?

时间:2018-06-19 06:16:51

标签: amazon-web-services amazon-redshift data-warehouse amazon-athena

我在AWS Redshift中维护了一个数据仓库。最近数据量和速度都有所增加。一种选择是在当然更高成本的范围内水平扩展集群。我想知道是否有可用的归档选项,以便我可以像往常一样查询整个数据(可能在查询时间有所妥协),但是是否需要额外的费用?

一种选择是直接从S3使用外部表和查询数据,但用于实现此目的的工具,如Athena和Glue都有自己的成本,也是基于每个查询。

2 个答案:

答案 0 :(得分:1)

简单的选项:

  1. 确保所有表具有压缩SELECT * FROM svv_table_info;
  2. 通过更改大型表以使用ENCODE zstd来最大化压缩。
  3. 将<〜50k行(取决于)的小表切换为DISTSTYLE ALL(是的,这样可以节省空间!)。
  4. 从基于SSD的节点(dc2)切换到具有更多8倍存储空间的HDD节点(ds2)。

较少简单的选择:

  1. UNLOAD从Redshift到S3的旧数据,并使用Redshift Spectrum查询。
  2. 使用AWS Glue或AWS EMR将已卸载的数据转换为Parquet或ORC格式,然后使用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既便宜又便宜。