我有一个非规范化的表,比如sales,看起来像:
saleskey、salesofparts、salesofequipments、销售成本作为一些数字度量行业、国家、州、销售区域、设备id、客户id、销售年份、销售月份和一些更类似的维度(共12个维度)
我需要支持对销售额的聚合查询,如一年,一个月的总销售额。。。它们的总成本等。也需要对这些总量进行过滤,例如2013年的总销售额,04属于xyz客户的制造业。
我在hive/impala中有这些维度表和事实。
我不认为我能在所有维度上做一个立方体。我读了一篇论文来了解如何在多个维度上进行olap:http://www.vldb.org/conf/2004/rs14p1.pdf
它基本上建议在小片段上具体化多维数据集,并在查询跨越多个多维数据集时执行某种运行时计算。
我不知道如何在hive/impala中实现这个模型。任何指点/建议都会很棒。
编辑:我在sales表中有大约1000万行,维度不能与100相比较,但是大约是12(可能会上升到15),但是每个都有一个很好的基数。
1条答案
按热度按时间lf3rwulv1#
我会用第三方软件构建立方体。例如,iccube是一个内存中的olap服务器,它可以毫无问题地处理12维上所有10mio的行。那么响应时间在所有维度上都将是次秒。从配置单元中移出10mio行似乎不是问题(您可以使用jdbc驱动程序来实现这个目的)。iccube是专门为处理高稀疏性而设计的。