对于报告/数据仓库,我们计划在星型模式中填充数据。
我们当前的所有数据都驻留在Redshift中,因为星型模式遵循表之间的传统关系。我应该选择RDBMS还是在Redshift上构建星型模式?
有人可以解释为Star Schema选择RDBMS与Redshift的利弊吗?
答案 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)