我有一个非规范化的表,比如Sales,看起来是这样的:
SalesKey、SalesOfParts、SalesOfEquipments、CostOfSales作为一些数字度量:行业、国家、州、销售区域、设备id、客户id、销售年份、销售月份以及更多类似的维度。(共12个维度)
我需要支持对销售的聚合查询,如在一年,一个月的销售总数…他们的总成本等。此外,这些合计需要过滤,即类似于2013,04年的总销售额属于XYZ客户的制造行业。
我在hive/impala中有这些维度表和事实。
我不认为我可以在所有的维度上制作一个立方体。我读了一篇论文,了解如何在多个维度上进行联机分析处理:http://www.vldb.org/conf/2004/RS14P1.PDF
这基本上建议在小片段上物化多维数据集,并在查询跨越多个多维数据集时进行某种运行时计算。
我不确定如何在Hive/Impala中实现此模型。任何点子/建议都会很棒。
编辑:我在Sales表中有大约1000万行,维度不能与100相比,但大约是12行(可能高达15行),但每个都有很好的基数。
发布于 2014-08-02 13:09:43
我会使用第三方软件构建立方体。例如,icCube是一个内存中的OLAP服务器,它可以毫无问题地处理超过12个维度的10mio行。那么响应时间在所有维度上都将是亚秒级。从Hive 10mio移出行似乎不是问题(您可以使用JDBC驱动程序来实现此目的)。icCube是专门为处理高度稀疏性而设计的。
https://stackoverflow.com/questions/25069771
复制相似问题