我有一个用例,其中一个相当大(超过1 TB)的SQL数据库必须移动到云端,我正在考虑使用Redshift而不是某些RDS解决方案,因为它有点便宜而且我处理得很好我的查询的延迟不到10秒。该应用程序将很少查询数据库 - 每天大约100次。
与RDS相比,与Redshift相比,是否可以节省成本?
更新:系统每天会更新一次或两次数据库。
答案 0 :(得分:1)
听起来好像基于您的用例Redshift非常适合。与OLTP数据库相比,Redshift更像是OLAP。在非数据库语言中,它更适用于实时插入或读取(实时为亚秒级)。 Redshift的并发性也比RDS低得多,但这听起来并不像是对你的强烈需求。
如果您需要,RDS会有意义:
因为您可以处理超过1秒的查询时间,但是在10以下且查询工作量不会太大,Redshift应该可以正常工作。
答案 1 :(得分:0)
关于什么对您的业务最有利的争论将始终存在,并且考虑到所有成本和性能权衡,您将更好地做出最佳决策,但凭借我的所有经验和您提供的信息,我可以我们充满信心地让您了解以下行动将产生的影响:
- 谁会写信给Redshift表?
醇>
如果数据不是实时数据,您可以继续使用Redshift。但是,如果您需要实时数据或其他指标依赖于它,例如显示余额或忠诚度信用点,则Redshift不是理想的选择。理想情况下,在CPU使用率最低时加载数据。
- Redshift中的写操作速度非常慢
醇>
作为柱状,预计批量写入将非常缓慢。因此,如果插入数据,请确保是否在午夜发生,以便在ETL任务中不占用CPU。
- 将查询哪个数据集?
醇>
如果数据集是OLAP,那么Redshift是理想的选择。如果数据是OLTP,那么切换到没有性能优势,尽管可能会节省一些成本。当您的业务增长时,这将是一个痛点
我们需要了解的是,Amazon Redshift与任何基于行的数据仓库都不相似。它用于分析目的。如果您正在生成批量数据(一天数百万)并且您需要查询它,那么它就是您的工具。公司使用Amazon Redshift进行同类群组,用户行为和趋势分析,因为这涉及查询庞大的数据集。柱状数据库用于查询数百万条记录,因为柱状方向已经过优化,可用于查询庞大的数据集。
如果您正在存储OLTP数据集,例如用户创建,下订单,订单属性,偏好,余额等等,那么亚马逊Redshift不适合您。写入速度很慢,您在查询这样一个小型OLTP数据集时也不会看到任何性能提升。
此外,如果您的体系结构具有Master - Slave
配置,则您不能承受任何延迟,并且使用RS将导致数据迁移到从设备的延迟,因为它未针对写入操作进行优化。 Slave有望成为master的副本,包含几乎实时的数据,并且使用RS进行此架构将导致无用的延迟。
然而,如果您捕获用户行为,点击和手势,移动角度,他/她的访问时长...任何批量生成数据的内容,您将查询庞大的数据集以进行分析,然后Redshift就是工具为了你。这些数据点不是实时要求的,可以每天加载一次或两次。
我建议只有在你看到性能有所改善的情况下才能使用Redshift。如果您仅为节省成本的措施进行切换,并且将来业务升级,那么再次迁移到适当的架构将是一项艰巨的任务。
答案 2 :(得分:0)
AWS已明确定位Redshift:它对数据库仓库来说意味着什么。
简而言之,AWS期望管理员:
简而言之,转向可能或可能不是会给您带来任何成本和/或性能优势。这不是魔术子弹。