星型模式的 OLAP 或 OLTP?

Vin*_*ran 1 data-modeling data-warehouse star-schema amazon-redshift

出于报告/数据仓库的目的,我们计划以星型模式填充数据。

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

有人可以解释一下选择 RDBMS 与 Redshift 进行星型模式的优缺点吗?

jmn*_*mng 5

采用星型模式设计涉及更多考虑因素,而不仅仅是哪个数据库将存储数据。

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

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

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

您甚至不需要一个“适当的”数据库来启用星型模式设计,例如,您实际上可以将文件转储到 HDFS 上,并且仍然使用 Hive 在这些文件上设计星型模式,只是为了使其更易于使用,因为 Hive将为您提供一个基于 HDFS 的 SQL 接口,星型模式将使 SQL 更简单、更容易理解。