我有一个使用 SQL Server 处理所有事情的客户端,包括使用分析查询为营销仪表板提供动力。他们很高兴开始将数据作为数据仓库推送到 Redshift 中,以提高速度(例如,需要数小时的查询现在需要数分钟或数秒)。但他们想比较成本。
如何做到这一点我有点天真,因为这些是非常不同的工具,比如说我对飞行的费用感到紧张,而不是在城里骑自行车。
共享哪些最佳框架和定价数据以进行现实比较?
我有一个使用 SQL Server 处理所有事情的客户端,包括使用分析查询为营销仪表板提供动力。他们很高兴开始将数据作为数据仓库推送到 Redshift 中,以提高速度(例如,需要数小时的查询现在需要数分钟或数秒)。但他们想比较成本。
如何做到这一点我有点天真,因为这些是非常不同的工具,比如说我对飞行的费用感到紧张,而不是在城里骑自行车。
共享哪些最佳框架和定价数据以进行现实比较?
有两个因素决定了 Amazon Redshift 集群的所需大小:
您显然需要足够的节点来存储数据,所以真正的问题是您需要多少(以及多大的)节点才能获得所需的性能水平。
如果“需要数小时的查询现在需要数分钟或数秒”,那么成本可能不会成为系统选择的巨大决定因素,但值得进行比较。
您可能应该从可以容纳数据量的最小集群开始,然后比较成本。如果性能令人满意,您将能够进行快速的价格比较。但是,您也可以考虑添加额外的节点以获得更好的性能。如果这意味着企业可以更快地获取信息,那么这可能是值得的额外费用。
此外,请花一些时间确保您的数据以最佳方式存储在 Amazon Redshift中。这需要了解如何使用DISTKEY
和SORTKEY
让查询运行得超快。做好这一点可以减少/消除对额外节点的需求。
需要运行 POC 以完全捕捉价格/性能的动态。
作为一个非常粗略的指南,您可以使用此公式来查找 Redshift 集群的大小(您可以根据需要调整大小以添加更多节点)。
首先,您需要从 SQL Server 中提取数据并将其压缩。SQL Server 中的 1TB 通常会压缩 100-200GB,可能会更少。
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