如何计算 OLAP 多维数据集的可能大小
Posted
技术标签:
【中文标题】如何计算 OLAP 多维数据集的可能大小【英文标题】:How to calculate the likely size of an OLAP cube 【发布时间】:2011-06-20 15:36:03 【问题描述】:有谁知道基于星型模式数据仓库获取 OLAP 多维数据集的粗略大小的方法。基于维度的数量、维度表中的记录数量和事实记录的数量,最后是聚合或不同记录的数量等。
我正在查看的数据库有一个超过 200 亿行的事实表和一些 2000 万、7000 万和 13 亿行的维度表。
谢谢 尼古拉斯
【问题讨论】:
你是指记录的大小,还是磁盘空间的大小? 有了这个尺寸,我很想知道您将使用的软/硬件(它只是一个大小为 10 亿行的巨大立方体) 目前我们正在使用由 Kognitio (kognitio.com/wx2) 开发的名为 WX2 的非常快速的内存数据库系统。我正在研究预处理一些数据以减少这个非常昂贵的系统的负载的可能性。磁盘比内存便宜!! 【参考方案1】:我可以看到创建此估算的一些障碍。单独了解维度表的行数和基数并不像它们之间的关系那么重要。
假设两个低基数维度分别具有 n
和 m
唯一值。在这些维度上缓存 OLAP 聚合会产生从 n + m
值到 n * m
值的任意位置,具体取决于关系与纯双射的相似程度。仅根据您提供的信息,您只能说您最终会得到少于 3.64 * 10^34
的值,这不是很有用。
我很悲观,有一个足够快的算法,当你完成后生成立方体并称重它不会更有意义。
【讨论】:
【参考方案2】:我们写了一篇似乎相关的研究论文:
Kamel Aouiche 和 Daniel Lemire,OLAP 中五种概率视图大小估计技术的比较,DOLAP 2007,第 17-24 页,2007。 http://arxiv.org/abs/cs.DB/0703058
【讨论】:
非常有趣。我要读一读。您是否创建了任何软件工具来指向源数据以获取估算值? 我们发布了一些 C++ 软件 (code.google.com/p/viewsizeestimation),但它无法在现有的 DBMS 上运行。【参考方案3】:嗯。您可以使用 Analysis Services 数据的一般规则,即存储在关系数据库中的相同数据的大小约为 1/4 - 1/3。
爱德华。
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6b16d2b2-2913-4714-a21d-07ff91688d11/cube-size-estimation-formula
【讨论】:
这接近于“仅链接的答案” - 您能否发布示例代码 sn-p/paragraph 描述链接页面中的解决方案?以上是关于如何计算 OLAP 多维数据集的可能大小的主要内容,如果未能解决你的问题,请参考以下文章