数据仓库 RedShift 与其他 RDBM 对比

问题描述 投票:0回答:2

我有一个系统,数据以相当规律的间隔加载,然后再取出。假设销售数据在销售发生时传入,那么稍后我想提取所有销售数据(按行),例如一个月;单次拉取最多 200K 行。没有太多 OLTP 进行;仅在新数据进入时插入。

我可以使用数据仓库或 RDBMS。如果我的数据没有达到几个 TB,假设是 1 TB 左右,那么与没有仓库标签的传统 RDBM 相比,使用数据仓库是否有任何优势?仓库还能给我买什么额外的东西?

我这么问是因为我可以使用 RDBM,但像 Redshift 这样的系统谈论的是 MPP 处理。由于 MPP,RedShift 会更快吗?我应该坚持使用普通 RDBM 吗?请注意,我没有对数据进行仓库类型的数据分析。我的数据也不会增长到需要 RedShift 等产品的切片/多节点功能的程度。即使我确实使用 RedShift,我也可能会使用单个节点。

-阿米特

database-design architecture rdbms amazon-redshift
2个回答
2
投票

您选择的系统(例如 RDS 与 Redshift)应取决于您的要求,并权衡成本

对于跨大量信息(例如数十亿行)的复杂查询(例如许多行、许多联接),Amazon Redshift 通常是更好的选择。

需要考虑的一些因素:

  • 数据量——Redshift可以存储TB甚至PB的数据
  • 查询速度和复杂性——Redshift 的 MPP 特性可以比传统 SQL 数据库更快地处理大量数据
  • 可扩展性——传统的SQL数据库只能垂直扩展(更大的服务器),而Redshift可以垂直和水平扩展。此外,额外的 Redshift 节点还可以增加存储和处理能力。

答案是您应该尝试两种选择并选择最适合您的。如果传统 SQL 数据库(大概在 Amazon RDS 下运行)非常适合您并且比 Redshift 解决方案便宜,那就太好了!

执行比较时,请确保包含数据库成本和存储成本(两者都包含在 Redshift 节点的成本中)。


0
投票

避免使用 Redshift,除非您发现需要它。 如果您已有 OLTP 数据库,则首先在其中运行 OLAP 查询。 如果这对 OLTP 性能产生负面影响,则添加只读副本。 复制是实时的,您可以获得用于 OLAP 的独立计算节点,这意味着对 OLTP 负载的影响几乎为零。 仍然不够,考虑添加指数或类似的东西是否会有帮助——假设这是一个很好的净权衡。 仍然不够,您能否间歇性地重新生成物化视图,使您的 OLAP 查询速度极快? 然后就这样做。 Redshift 确实是最后的手段。
为什么? 首先,因为您失去了您期望从 RDBMS 获得的所有功能。 任何数据库约束的执行都是零。 零。 没有唯一的索引,因此没有 PK。 也没有FK。 没有索引,因此如果您没有正确分配和排序数据,您的查询将执行得很糟糕。 事实上,在某些情况下,添加更多计算节点甚至会让情况变得更糟。
而且,与任何不同的数据库一样,您现在有一个完整的 ETL 流程来实施和操作。 好像这还不够糟糕,目标数据库无法强制执行约束,因此您经常有一个 ETLTL 过程——提取、转换、加载到临时表、转换加载到目标表。 除非操作正确,否则这将是一场操作噩梦。 哦,这还没有提到成本。 Redshift 并不便宜。

© www.soinside.com 2019 - 2024. All rights reserved.