Pentaho Mondrian - 在java程序中的Olap明细

时间:2012-11-19 10:33:53

标签: olap olap-cube mondrian

我使用Mondrian 3.4作为我用Java编写的应用程序的Olap服务器。目前我想在多维数据集中执行一些典型的Olap操作,但我找不到任何指导我如何在Mondrian的多维数据集中执行向下钻取操作的指针。我无法在Mondrian API中找到方法来执行此操作。这可能吗?我该怎么办?

事先说。

2 个答案:

答案 0 :(得分:0)

我认为您可以在MDDataSet_Tabular中检查mondrian.xmla.XmlaHandler内部类,它提供API函数,以便在执行向下钻取操作时将维度值和名称存储到MDDataSet对象中。我正在使用Mondrian 3.1,但我认为源代码在3.4中应该是相同的。

如果您还有其他问题,请告诉我。祝您好运

答案 1 :(得分:0)

有两种方法可以进行深入研究。您可以深入了解MDX查询,也可以深入了解特定单元格。

要运行向下钻取查询,请在olap4j中执行以下操作:

ResultSet rs =
    olapConnection.createStatement().executeQuery(
        "DRILLTHROUGH\n"
        + "SELECT {[Measures].[Unit Sales]} on columns\n"
        + "from [Sales]\n"
        + "where ([Promotions].[One Day Sale],\n"
        + " [Store].[Store City].[Walla Walla],\n"
        + " [Product].[Product Category].[Bread])\n"
        + "RETURN [Customers].[Name], [Gender].[Gender]");

RETURN子句是可选的,它指定要返回的字段。要深入查看特定单元格,请运行查询,访问所需的单元格并调用:

org.olap4j.Cell.drillthrough()