适用于数据仓库的 AWS Redshift 或 RDS?
Posted
技术标签:
【中文标题】适用于数据仓库的 AWS Redshift 或 RDS?【英文标题】:AWS Redshift or RDS for a Data warehouse? 【发布时间】:2021-07-22 16:41:10 【问题描述】:现在我们有一个 ETL,它从 API 中提取信息,转换并存储在 OLTP 数据库的一个大表中,我们希望将此表迁移到一些 OLAP 解决方案。读取此表仅用于执行我们存储在 OLTP 数据库中的一些计算。
哪种服务最适合这里?
我们目前正在评估 Redshift,但之前从未使用过该服务。此外,我们在 RDS 中考虑了一些雪花模式(某种具有维度的事实表),因为旨在存储 10GB 到 100GB,但不知道这种方法可以扩展多少。
【问题讨论】:
AWS RDS 和 Aurora 数据库是 OLTP,Redshift 是 OLAP。我不知道您所说的“RDS 中的雪花”是什么意思。 Snowflake DB 是 Redshift 的第三方竞争对手。 我更多地考虑的是雪花模式。像一个立方体。附上一个例子researchgate.net/profile/Emany-Sidi/publication/290787413/… 简单的答案是“如果它适合您,请使用普通数据库,否则请使用其他东西,例如 Redshift”。像 Amazon RDS PostgreSQL 这样的“普通”数据库目前如何不足以满足您的需求?此外,如果您的用例只是偶尔查询一个大表,您也许可以使用 Amazon Athena 来查询存储在 Amazon S3 中的数据,这比使用 Redshift 或 RDS 便宜很多。如果您正在寻找“意见”,您可能会得到更好的回复:reddit.com/r/aws 【参考方案1】:哪种服务最适合这里?
恕我直言,您可以做一个 PoC,看看哪种服务对您更可行。这实际上取决于您拥有多少数据、什么查询以及您计划执行什么负载。
AWS Redshift 旨在用于处理大量并行工作负载的 PB 或 EB 级规模的 OLAP。 RS 也可以聚合来自其他数据源(jdbc、s3、..)的数据。但是 RS 不是 OLTP,它需要更多的静态服务器开销和管理部署的额外技能。
因此,如果没有更多的数字和用例,就无法提供任何建议。 Cloud 非常棒,您可以尝试一下,看看什么适合您。
【讨论】:
您的回答非常有帮助,因为这是我需要的那种观点。您对为什么不使用 RDS 数据库进行 OLAP 有任何偏好吗? @Nemesius 您可以将 RDS 用于 OLAP,而我个人将从 RDS 开始(创建一个只读副本而不是阻止/加载生产数据库)。我不是关于缩放选项。 RDS 将处理 OLAP 达到某种程度的性能和内存。也许它对你来说足够好很长一段时间甚至永久。这就是为什么我说 - 试试看。您可以在以后随着需求的增长而迁移。【参考方案2】:当您只想从数据库中读取数据时,AWS Redshift 真的很棒。基本上,后端的 Redshift 是一个更适合分析的列式数据库。您可以使用 AWS DMS 将所有现有数据传输到 redshift。 AWS DMS 是一项服务,基本上需要您现有数据库的 bin 日志,它会自动传输您的数据,我们无需做任何事情。根据我的个人经验,Redshift 真的很棒。
【讨论】:
Redshift 在后端没有 Postgres 数据库。它只是使用 Postgres 兼容的通信协议,因此您可以使用 Postgres 驱动程序连接到它。以上是关于适用于数据仓库的 AWS Redshift 或 RDS?的主要内容,如果未能解决你的问题,请参考以下文章
aws Glue / Redshift 的预过滤解决方案(在加载到 S3 之前)