我正在使用 hive 设计一个新的基于 hadoop 的数据仓库,我想知道经典的星形/雪花模式在这种情况下是否仍然是“标准”。
大数据系统包含冗余,因此完全规范化的模式通常性能较差(例如,在 HBase 或 Cassandra 等 NoSQL 数据库中)。
仍然是使用 hive 制作星型数据仓库的最佳实践吗?
通过利用新的列式文件格式设计行宽(冗余)表是否更好?
最佳答案
在为 NoSQL 数据库设计时,您倾向于通过预处理查询的部分来优化特定查询,从而存储数据的非规范化副本(尽管以特定于查询的方式非规范化)。
另一方面,星型模式是一种通用的非规范化,通常是合适的。
当您计划使用 hive 时,您实际上不是将它用于优化,而是用于 SQL 的通用性(?),因此,我认为星型模式仍然合适。但是,对于具有非 SQL 接口(interface)的 NoSQL 数据库,我建议您使用更特定于查询的设计。
关于hadoop - 大数据仓库还需要星型模式吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30824047/