我是 OLAP 的新手,所以也许我不知道该问题使用的正确术语,但请耐心等待。
我处理大量分层的多维数据,其中父/聚合单元格大多具有数据,但子/叶单元格通常缺少数据(属性值未知但非零)。我目前使用脚本和 SQL 的组合来使用它,但这变得笨拙。似乎 OLAP 多维数据集和 MDX 更适合数据结构,但不一定适合我需要处理的任务。例如:
- OLAP 似乎主要是为只读报告而设计的;我对批处理中的数据进行了大量修改
- OLAP 似乎喜欢拥有完整的叶级数据来计算聚合;我的数据在各个级别都有缺失值
我想做的例子:
- 将原始多级数据加载到立方体中并保存已知父级;不要将它们的值覆盖或显示为计算的子项聚合(可能不完整)。
- 根据来自其他多维数据集的复杂查询/连接的结果创建/更新/删除多维数据集中的单元格。有时需要转换多维数据集以使用稍微不同的维度定义。
- 用户需要对未知值进行估计。我可以创建体面的估计,但需要对其进行调整,以使它们符合所有维度和级别的已知父母/孩子(这比听起来要困难得多)。我已经这样做了,但它涉及将数据从 RDBMS 中提取到自定义可执行文件中。
- 查询和计算需要能够正确处理未知数。理想情况下,能够轻松查询聚合单元格的值中有多少是由估计值和已知值组成的,可能计算置信度/误差统计,或者检查我们是否可以在未知的父节点和所有已知的情况下推导出一个确切的值已知的兄弟姐妹等
- 数据可以很大……多达数千万的事实表行。批处理作业的性能需要不错(几分钟还可以,几小时没那么多)。
OLAP 服务器和 MDX 能否成为此类工作的好工具?是否有任何其他工具可以很好地处理分层/多维/填补空白的数据?