我使用 Mondrian 3.4 作为我用 Java 编写的应用程序的 Olap 服务器。目前我想在多维数据集中执行一些典型的 Olap 操作,但我找不到任何指导我如何使用 Mondrian 在多维数据集中执行向下钻取操作的指针。我在 Mondrian API 中找不到执行此操作的方法。这可能吗?我该怎么做?
提前Thks。
有两种方法可以进行向下钻取。您可以获取 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()
我认为您可以检查MDDataSet_Tabular
内部类mondrian.xmla.XmlaHandler
,它提供了 API 函数来MDDataSet
在您执行向下钻取操作时将维度值和名称存储到对象中。我使用的是 Mondrian 3.1,但我认为源代码在 3.4 中应该是相同的。
如果您有其他问题,请告诉我.. 祝你好运