Pentaho BA 服务器中的 MDX 查询失败
Posted
技术标签:
【中文标题】Pentaho BA 服务器中的 MDX 查询失败【英文标题】:MDX Query fails in Petaho BA server 【发布时间】:2013-12-19 07:02:52 【问题描述】:我的数据库连接是通过 JDBC 连接的 mysql,标准的 innodb。 由此,我创建了一个非常简单的数据源,其中包含两个维度和一个度量。
两个维度分别是:
位置(字符串) ddate(日期/时间,至少在Mysql中)度量是相同的“位置”元素,设置为按计数聚合
我正在尝试按位置、星期几(周一至周日或 1-7 都可以)获取相当简单的项目计数
我已经尝试了以下几十种变体,包括“with member...as...”来提取星期几,都失败了。
SELECT
NON EMPTY Hierarchize( datepart("d",cdate([diDate.hDate].[mDate]) ) ON COLUMNS,
NON EMPTY Hierarchize([diLocation.hLocation].[mLocation].Members) ON ROWS
FROM [k_olap]
任何帮助将不胜感激。我已经为此苦苦思索了好几个小时,而且似乎对于日期的一个部分来说它应该是简单直接的,而不需要在模式中建立一个完整的时间维度,而 Pentaho BA 不需要方便在网络服务器中。
这是 Pentaho BA 从 MySQL 数据源生成的 XML 模式:
<Schema name="k_olap">
<Dimension name="diDate">
<Hierarchy name="hDate" hasAll="true" primaryKey="ID">
<Table name="post" schema="kn"/>
<Level name="mDate" uniqueMembers="false" column="ddate">
</Level>
</Hierarchy>
</Dimension>
<Dimension name="diLocation">
<Hierarchy name="hLocation" hasAll="true" primaryKey="ID">
<Table name="post" schema="kn"/>
<Level name="mLocation" uniqueMembers="false" column="location" type="String">
</Level>
</Hierarchy>
</Dimension>
<Cube name="k_olap">
<Table name="post" schema="kn"/>
<DimensionUsage name="diDate" source="diDate" foreignKey="ID"/>
<DimensionUsage name="diLocation" source="diLocation" foreignKey="ID"/>
<Measure name="mesLocation" column="location" aggregator="count" formatString="Standard"/>
</Cube>
</Schema>
【问题讨论】:
【参考方案1】:创建一个适当的日期维度和层次结构,将星期几作为表中的列,然后使用它。
看这里:
http://type-exit.org/adventures-with-open-source-bi/2010/07/a-simple-date-dimension-for-mondrian-cubes/
【讨论】:
是的,但该问题与查询中的语法问题有关,并要求提供不涉及架构更改的临时解决方案。我了解正式日期维度的优点,但数据源多种多样,我无法为用户可能出于临时或一次性需求而拥有的每个电子表格或 csv 文件中的所有日期字段创建带有日期维度的架构。 很公平。我没有在 MDX 中看到 datepart - 你在哪里看到这是一个有效的 mdx 函数?还要发布 MDX 错误 - 没有太多帮助,看不到。以上是关于Pentaho BA 服务器中的 MDX 查询失败的主要内容,如果未能解决你的问题,请参考以下文章