事实表的最大列数

时间:2015-04-08 18:20:09

标签: mysql database database-design database-schema

我们有一个申请人会收到申请人,然后从该申请人那里检索不同供应商的各种“信用类型分数”。

我们有一个超过1000列的事实表。 原因是我们的数据分析师要求一个“扁平化”的非规范化表,其中包含所有供应商给我们的所有分数。 例如vendor_1_score_a,vendor_1_score_b等

此事实表也是细粒度的,因为每一行都包含一个申请人交易。

我的问题是,是否有更好的方法为我们的数据分析师团队设计此事实表,因为我们收到的“列数太多”类型错误。

感谢

2 个答案:

答案 0 :(得分:0)

如您所述,数据仓库的事实表通常是扁平化的。检索速度比参照完整性重要得多。

您可以使用专为数据仓库设计的数据库。

如果必须使用MySQL,则可以创建供应商表。每个供应商都有一行指向应用程序行。

不要担心规范化Vendor表。由于这是一个数据仓库,您要添加行并选择行,因此可以接受有关供应商的重复数据。

答案 1 :(得分:0)

查询是否需要查看WHEREORDER BY中的任何一列?如果不是(或者至少如果它们中的大多数不需要被SELECT触及,而只是传递给处理引擎),那么我将在JSON字符串中编码500,压缩它并存储它在一个BLOB中。

这将缩小磁盘占用空间(更小 - >更快)。应用程序将获取它并将其解压缩为它喜欢的结构。

你最终只有十几个专栏。