Star Schema的OLAP或OLTP?

时间:2018-02-16 04:55:53

标签: amazon-redshift data-modeling data-warehouse star-schema

对于报告/数据仓库,我们计划在星型模式中填充数据。

我们当前的所有数据都驻留在Redshift中,因为星型模式遵循表之间的传统关系。我应该选择RDBMS还是在Redshift上构建星型模式?

有人可以解释为Star Schema选择RDBMS与Redshift的利弊吗?

2 个答案:

答案 0 :(得分:3)

对于星型模式设计而言,涉及的问题不仅仅是数据库将存储数据的内容。

选择星型模式设计的一个直接原因是其简单性和表现力:根据经验,业务事务使用事实表建模,业务实体(或业务"上下文")被建模为维度表。此设计的一个实际结果是,无论您是使用SQL还是使用Tableau或PowerBI等BI /可视化工具,您的数据都将更易于业务用户理解和使用。

实际上,任何RDBMS都将完全支持星型模式,在某些情况下,如Oracle,它可以使用特殊(位图)索引来优化星型模式上的典型查询模式。 (过去15年)情况就是如此,各种规模的数据仓库几乎都在几乎所有主要的RBDMS中实施。

您可以在Redshift中执行相同操作:定义数据模型(星型模式),构建数据结构(表),相应地将数据加载到其中并照常查询。星型模式将比具有不相关或复杂的表结构更具表现力(因此更易于使用);在这种情况下,它实际上主要是一种抽象数据复杂性的元数据层。这是一篇详细介绍测量Redshift性能和对星型模式查询支持的基准测试的帖子,使用行业标准TPC-DS基准测试:https://blog.fivetran.com/warehouse-benchmark-dce9f4c529c1

你甚至不需要一个适当的"用于启用星型模式设计的数据库,例如,你实际上可以在HDFS上转储文件,并且仍然使用Hive设计一个星型模式,只是为了使它更容易使用,因为Hive会给你一个基于HDFS的SQL接口,而星型模式将使SQL更简单,更容易了解。

答案 1 :(得分:1)

两者都支持星型模式。由于您的数据已经在Redshift中,因此您可以通过使用该平台来消除额外的工作以及将数据移动到SQL数据库中的数据丢失/损坏的风险。

如何在Redshift中组织当前数据,您将运行的数据量和查询类型可能会影响查询性能。由于您没有从星型模式的意图开始,因此可能无法针对星型模式优化Redshift实例。亚马逊有关于此here的博文。您可以实施哪些提示取决于您当前的环境,但至少您应该能够使用数据压缩和工作负载管理建议。此guide到Redshift体系结构和功能也可以帮助您实现Amazon优化建议。