Mondrian - 事实表数据作为 XML

Posted

技术标签:

【中文标题】Mondrian - 事实表数据作为 XML【英文标题】:Mondrian - Fact Table Data as XML 【发布时间】:2012-03-30 03:29:03 【问题描述】:

我正在为客户评估 Mondrian-Saiku 解决方案。

在分析了他们当前的数据库模式后,我意识到构成他们的“事实表数据”的内容当前存储在 XML 中。 XML 本身作为 blob 数据类型存储在 mysql 表中。可以这样想:表保存了公司的所有交易;每笔交易的详细信息都存储在它们自己的 XML 中;每个 XML 字符串都存储为给定事务行中的字段值之一。

由于 Mondrian XML 模式需要显式使用列名,因此这带来了一个小难题。

不必提取 XML 数据并将其传输到新表(由于数据的大小和来自其他系统的依赖关系,这对我的目的来说不现实),有什么方法可以让我的客户的现有设置用于Mondrian-Saiku 的实现?

【问题讨论】:

【参考方案1】:

您需要以传统的表格方式公开数据。这里的数据库是什么?你能创建一个数据库视图,对 blob 中的 XML 进行一些 xml 处理并公开列吗?

另外,composite 或 jboss teiid 之类的东西也可以在这里提供帮助。这些工具使您可以将几乎任何东西都展示为标准外观的表格。不过可能还不够快!

【讨论】:

感谢您的意见。自从发布这个问题以来,我通过实验发现 Mondrian XML 通过 MySQL 支持 ExtractValue()。这样,不需要对现有数据库进行任何更改。瓶颈似乎来自 ExtractValue(),它为数据聚合执行了很多次。 好的。啊,我明白了;我以为你是说整个记录是用 XML 编码的!所以我误解了你的问题。是的,我认为 Mondrian 以这种方式支持任何 SQL 函数。显然,它应该在第一次执行后很好地缓存起来,但如果它仍然太慢,那么你要么需要找到一种更快的方法来解析 xml,要么按照建议将数据提取到适当的列中。或者也许使用 Agg 表,但在这种情况下这只是 OTT!

以上是关于Mondrian - 事实表数据作为 XML的主要内容,如果未能解决你的问题,请参考以下文章

Mondrian系列-星型和雪花模型-概述

我们可以将字符串值显示为 mondrian olap 上的度量吗

在 Mondrian/Saiku 中使用来自不同表的名称创建层次结构

作为事实表的可编辑数据

具有不同级别日期维度数据作为日期维度键的事实表

数据仓库之事实表设计