出于报告/数据仓库的目的,我们计划在星型模式中填充数据。
我们当前的所有数据都驻留在Redshift中,因为星型模式遵循表之间的传统关系。我应该选择RDBMS还是在Redshift上构建星型模式?
有人可以解释为Star Schema选择RDBMS与Redshift的利弊吗?
寻求星型模式设计涉及的更多考虑因素不仅仅是数据库将存储数据。
选择星型模式设计的一个直接原因是其简单性和表现力:根据经验,业务事务使用事实表建模,业务实体(或业务“上下文”)建模为维度表。此设计的一个实际结果是,无论您是使用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更简单,更容易了解。