我们有一个申请人会收到申请人,然后从该申请人那里检索不同供应商的各种“信用类型分数”。
我们有一个超过1000列的事实表。 原因是我们的数据分析师要求一个“扁平化”的非规范化表,其中包含所有供应商给我们的所有分数。 例如vendor_1_score_a,vendor_1_score_b等
此事实表也是细粒度的,因为每一行都包含一个申请人交易。
我的问题是,是否有更好的方法为我们的数据分析师团队设计此事实表,因为我们收到的“列数太多”类型错误。
感谢
答案 0 :(得分:0)
如您所述,数据仓库的事实表通常是扁平化的。检索速度比参照完整性重要得多。
您可以使用专为数据仓库设计的数据库。
如果必须使用MySQL,则可以创建供应商表。每个供应商都有一行指向应用程序行。
不要担心规范化Vendor表。由于这是一个数据仓库,您要添加行并选择行,因此可以接受有关供应商的重复数据。
答案 1 :(得分:0)
查询是否需要查看WHERE
或ORDER BY
中的任何一列?如果不是(或者至少如果它们中的大多数不需要被SELECT
触及,而只是传递给处理引擎),那么我将在JSON字符串中编码500,压缩它并存储它在一个BLOB中。
这将缩小磁盘占用空间(更小 - >更快)。应用程序将获取它并将其解压缩为它喜欢的结构。
你最终只有十几个专栏。