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 查询失败的主要内容,如果未能解决你的问题,请参考以下文章

MDX 处理负值

mondrian mdx 过滤日期维度中年份级别的集合

Pentaho CE 上的地图可视化

Mondrian MDX 中的最后日期和时间

备份 Pentaho

如何在 Pentaho xml 模式中使用 CalculatedMember(维度,而不是度量)?