AFAIK,对于MPP硬件上的关系数据库,性能的关键是正确的数据分发。尽管维度建模是关于查询灵活性的,但您甚至都不知道将来如何查询(改组)数据。
例如,您拥有MPP数据仓库(Greenplum,Redshift,Synapse Analytics)。例如,在1-2年内,您希望事实表将增长到100亿行,并且您将拥有15-30个维表,这些表包含千万行。 如何将数据分布在DW节点上?有什么通用的技术吗?像分片事实表和复制维表一样。还是应该最小化MPP DW中的节点数量?
我可以提出特定的用例,但是我认为这个问题是由于我对如何将维度建模与横向扩展配对的误解引起的。
过去我见过的一种成功应用的技术是:分割事实表(例如,通过修改日期键),然后在所有节点上分配所有维度。这样,所有联接都可以在本地完成。
请注意,即使尺寸很大,它们在磁盘上的总大小也应该只占事实表所需总大小的一小部分。