【发布时间】:2012-03-19 16:18:21
【问题描述】:
我是蒙德里安的新手。我在我的项目中使用它进行 OLAP 操作。 我正在使用 Foodmart 数据库对其进行测试。 问题是我需要 JSON 格式的 OLAP 操作结果。 我知道 mondrian 具有与 JSON 相同的层次结构。 我想生成一个 JSON 文件作为 mondrian MDX 查询结果的输出。 结果应该类似于 OLAP 操作。 我不知道如何迭代从 MDX 查询生成的结果。 这是代码。
String connStr = "Provider=mondrian;" +
"Catalog=/WEB-INF/FoodMart.xml;" +
"JdbcDrivers=com.mysql.jdbc.Driver;" +
"Jdbc=jdbc:mysql://localhost/foodmart;" +
"jdbcUser=root;" +
"jdbcPassword=;";
String queryStr ="select {[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].>Store Sales]} ON COLUMNS,"+"Crossjoin(Hierarchize(Union({[Promotion Media].[All Media]}, >[Promotion Media].[All Media].Children)), {[Product].[All Products]})
ON ROWS"+" from [Sales]"+"where [Time].[1997]";
Connection connection = DriverManager.getConnection(connStr, null);
Query query = connection.parseQuery(queryStr);
Result result = connection.execute(query);
result.print(new PrintWriter(System.out));
实际上我需要对存储在 MySQL 中的数据仓库执行 OLAP 操作。 结果数据应该是 JSON 格式,我将传递给 D3 http://mbostock.github.com/d3 进行可视化。 对于数据格式,我必须使用 JSON 格式。 请任何建议如何迭代 MDX 结果并将其转换为 JSON 文件。 为此,我正在使用 Pentaho Mondrian。 谢谢。
【问题讨论】: