因此,我从事数据工具开发已经有几年了,而我在一个大型项目中有些卡住。假设我大约有5亿条记录和15列,格式如下:
+-------------+-------+-------+-------+--------+
| customer_id | group | price | color | region |
+-------------+-------+-------+-------+--------+
| 123 | a | 12 | red | north |
+-------------+-------+-------+-------+--------+
| 234 | c | 11 | red | south |
+-------------+-------+-------+-------+--------+
| 456 | c | 54 | blue | east |
+-------------+-------+-------+-------+--------+
我想构建一个简单的仪表板,使用每一列回答每个可能的问题。也就是说,我希望此表中每个DIM / FACT的指标的所有可能组合,例如:
c组中来自东部地区的蓝色不同客户。
a + c组中来自南部和北部地区的红色不同客户。
按地区分组的总价之和。
c组的总价格之和,该价格是北部地区的任意颜色。
所有地区的总价之和。
如果仅汇总价格总和,我可以针对每个FACT按我的所有DIM分组。但是,当我开始使用不同的函数将customer_ids视为FACT时,问题变得有些复杂。例如,Customer_ids可以存在于多个组中,因此,如果我按组计数不同的customer_id,则与仅计数不同的客户ID相比,我将拥有更大的客户总数。
所以我的问题变成了,如何在不使用全部5亿条记录的情况下,如何构建一个动态仪表板来回答所有这些潜在的问题组合?预聚合似乎是不可能的。