现在,只需单击几下就可以启动基于云的计算和存储资源,而我们面临的新挑战是如何利用这些资源,尽可能快速高效地将原始数据转化为可执行的结果。
Amazon Redshift 允许 AWS 客户构建 PB 级的数据仓库,使来自各种内部和外部源的数据得以整合。由于 Redshift 针对大型表上的复杂查询(通常涉及多个 join)进行了优化,因此它可以毫不费力地处理大量零售、库存和财务数据。加载数据后,我们的客户可以使用由 Redshift 合作伙伴提供的大量企业报告和商业智能工具。运行数据仓库最具挑战性的方面之一是加载的数据是不断变化且可能是快速注入的。为了提供出色的查询性能,将数据加载到数据仓库涉及压缩、规范化和优化步骤。虽然这些步骤可以自动执行和扩展,但加载过程会带来开销和复杂性,还会妨碍那些非常重要的可行结果的生成。此外,数据格式带来了另一个有趣的挑战。某些应用程序会在数据仓库外部以原始形式处理数据,而另一些应用程序则会直接将向数据仓库发出查询。这种模型导致存储效率低下,因为数据必须存储两次,还可能意味着由于加载过程带来的延迟,一种处理形式的结果可能与另一种处理形式的结果不一致。
Amazon Redshift Spectrum
为了让您能够原汁原味地处理数据,同时利用 Amazon Redshift 的强大功能和灵活性,我们推出了 Amazon Redshift Spectrum。您可以使用 Spectrum 对存储在 Amazon Simple Storage Service (S3) 中的数据运行复杂查询,而无需加载或进行其他数据准备。您只需创建数据源,然后像往常一样向您的 Redshift 集群发出查询。在后台,基于您的查询需求,Redshift Spectrum 能够使用数千个实例来利用大规模并行处理,即使您的数据集增长到超过 EB 级,也可以确保您获得快速、一致的性能! 能够查询存储在 S3 中的数据意味着您可以利用 Redshift 查询模型的全部功能以及所有可用的报告和商业智能工具来独立地扩展计算和存储。查询可以引用 Redshift 表和 S3 中存储的数据的任何组合。当您发起查询时,Redshift 会进行解析并生成一个查询计划,该计划将利用面向列的格式以及按日期或其他键值分区的数据,从而最大限度地减少将要读取的 S3 数据量。然后,Redshift 从一个大型共享池中请求 Spectrum 工作线程,并指挥它们投射、筛选和聚合 S3 数据。系统将在 Redshift 集群中执行最终的处理,并将结果返回给您。由于 Spectrum 负责对存储在 S3 中的数据进行操作,因此您可以使用其他 AWS 服务(例如 Amazon EMR 和 Amazon Athena)来处理数据。您还可以部署混合模式,即将频繁查询的数据保存在 Redshift 本地存储中,而将其余数据保存在 S3 中,或者将 维度表与 事实数据表的最新部分一起保存在 Redshift 中,而将较旧的数据保存在 S3 中。为了提高并发级别,您还可以将多个 Redshift 集群指向同一个存储数据。Spectrum 支持开放的常用数据类型,包括 CSV/ TSV、 Parquet、 SequenceFile 和 RCFile。您可以使用 GZip 或 Snappy 压缩文件,更多的数据类型和压缩方法已经在计划中。
Spectrum 的实际应用
为了获得有关 Spectrum 的第一手经验,我加载了一个示例数据集并且运行了一些查询!我首先创建了外部模型和数据库:然后,我在数据库中创建了一个外部表:我运行了一个简单的查询,以便了解数据集的大小(61 亿行):然后,我运行了一个对所有行进行遍历的查询:如您所见,Spectrum 能够在大约 15 秒内浏览全部 60 亿行。我检查了集群的性能指标,看起来我还有足够的 CPU 处理能力来同时运行更多此类查询:
现已推出
现已推出 Amazon Redshift Spectrum,您可以立即开始使用!
Spectrum 定价是基于查询处理期间从 S3 中所抽取的数据量,并按每 TB 5 USD 的价格收费(您可以通过压缩数据和/或以列的方式存储数据,以便节省成本)。您需要支付常规费用来运行 Redshift 集群并将数据存储在 S3 中,但是当您未运行查询时,不会收取 Spectrum 费用。
– Jeff;
PS – 有些用户询问了 Spectrum 与 Athena 之间的关系,以及这两种工具对不同工作负载的适用性。幸运的是,最近更新的 Redshift 常见问题回答了此问题;请参阅应该何时使用 Amazon Athena 与 Redshift Spectrum?,以了解更多信息。
作者介绍:
Jeff Barr
Jeff Barr 是 AWS 的首席宣传官。他于 2004 年创办本博客,此后几乎未间断地撰写文章。
本文转载自 AWS 技术博客。
评论