我有一个客户端使用SQL Server来处理所有事情,包括使用分析查询为营销仪表板提供支持。他们很高兴开始将数据作为数据仓库推送到Redshift中,仅用于提高速度(例如,现在花费数小时的查询需要几分钟或几秒钟)。但他们想比较成本。
我有点天真如何做到这一点,因为这些是非常不同的工具,比如说我比在城镇周围使用自行车相比,我对飞行成本感到紧张。
什么是最佳的框架和定价数据,以进行实际比较?
需要运行POC以充分捕捉价格/性能的动态。
作为一个非常粗略的指南,您可以使用此公式来查找Redshift集群的大小(您可以根据需要调整大小以添加更多节点)。
首先,您需要从SQL Server中提取数据并对其进行gzip。 SQL Server中的1TB通常会被100-200GB gzip压缩,可能会更少。
size of gzipped data in GB | 500GB
* 1.5 (size once loaded in Rs)| 750GB
------------------------------|----------
= initial Redshift data size | 750GB
/ 256GB (per DC2.large node) | 2.93 nodes
/ 0.70 (target 70% disk use) | 4.18 nodes
------------------------------|----------
= initial Redshift node count | 4 nodes
* 25¢/hr (US-East-1 price) | $1/hr
有两个因素决定了Amazon Redshift群集的所需大小:
您显然需要足够的节点来存储数据,因此真正的问题是您需要多少(以及大小)节点才能获得所需的性能级别。
如果“现在花费数小时的查询需要几分钟或几秒钟”,那么成本可能不会成为系统选择的重要决定因素,但值得进行比较。
您应该从可以容纳数据量的最小集群开始,然后比较成本。如果性能令人满意,您将能够进行快速的价格比较。但是,您可能还会考虑添加其他节点以获得更好的性能。如果这意味着业务可以更快地获取信息,那么这可能值得额外支出。
此外,请花一些时间确保您的数据以最佳方式存储在Amazon Redshift中。这需要了解如何使用DISTKEY
和SORTKEY
让查询以超快的速度运行。这样做可以减少/消除对额外节点的需求。