简介
olap4j is a common API for any OLAP server, so you can write an analytic application on one server and easily switch it to another. Built on that API, there is a growing collection of tools and components.
安装
代码
import java.sql.DriverManager; import java.sql.SQLException; import org.olap4j.OlapConnection; import org.olap4j.OlapException; import org.olap4j.OlapWrapper; public class OlapConnUtil { private static final String DRIVER_CLASS_NAME = "org.olap4j.driver.xmla.XmlaOlap4jDriver"; static { try { Class.forName(DRIVER_CLASS_NAME); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static OlapConnection getOlapConn(String server, String catalog, String user, String password) throws SQLException { String url = "jdbc:xmla:Server=" + server; OlapConnection conn = null; try { conn = (OlapConnection) DriverManager.getConnection(url, user, password); } catch (SQLException e) { throw e; } if (conn != null) { try { conn.setCatalog(catalog); } catch (OlapException e) { throw e; } OlapWrapper wrapper = (OlapWrapper) conn; OlapConnection olapConn = null; try { olapConn = wrapper.unwrap(OlapConnection.class); return olapConn; } catch (SQLException e) { throw e; } } return null; } }
import java.io.PrintWriter; import java.sql.SQLException; import org.olap4j.Cell; import org.olap4j.CellSet; import org.olap4j.OlapConnection; import org.olap4j.OlapException; import org.olap4j.OlapStatement; import org.olap4j.Position; import org.olap4j.metadata.Member; public class MdxQueryUtil { private static final String PARAM_KEY_SERVER = "server"; private static final String PARAM_KEY_USER = "user"; private static final String PARAM_KEY_PASSWORD = "password"; private static final String PARAM_KEY_CATALOG = "catalog"; private static final String PARAM_KEY_MDX = "mdx"; private static final int RETRY_TIMES = 60; public static void main(String[] args) { String server = System.getProperty(PARAM_KEY_SERVER); String user = System.getProperty(PARAM_KEY_USER); String password = System.getProperty(PARAM_KEY_PASSWORD); String catalog = System.getProperty(PARAM_KEY_CATALOG); String mdx = System.getProperty(PARAM_KEY_MDX); try { print(query(server, catalog, user, password, mdx), new PrintWriter(System.out)); } catch (SQLException e) { e.printStackTrace(); } } private static OlapConnection getOlapConn(String server, String catalog, String user, String password, int retry) { int temp = retry; OlapConnection olapConn = null; while (olapConn == null && retry-- > 0) { try { if (temp > retry) { try { Thread.sleep(1000 * 3); } catch (InterruptedException e) { e.printStackTrace(); } } olapConn = OlapConnUtil.getOlapConn(server, catalog, user, password); } catch (SQLException e) { e.printStackTrace(); } } return olapConn; } private static CellSet query(String server, String catalog, String user, String password, String mdx) throws SQLException { OlapConnection olapConn = getOlapConn(server, catalog, user, password, RETRY_TIMES); if (olapConn != null) { OlapStatement stmt = null; try { stmt = olapConn.createStatement(); } catch (OlapException e) { throw e; } CellSet cellSet = null; if (stmt != null) { try { cellSet = stmt.executeOlapQuery(mdx); } catch (OlapException e) { throw e; } } if (cellSet != null) { try { cellSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } finally { stmt = null; } } try { olapConn.close(); } catch (SQLException e) { e.printStackTrace(); } finally { olapConn = null; } return cellSet; } return null; } private static void print(CellSet cellSet, PrintWriter writer) { if (cellSet != null && cellSet.getAxes().size() == 2) { for (Position row : cellSet.getAxes().get(1)) { for (Member member : row.getMembers()) { writer.print(member.getName() + "\t"); } for (Position column : cellSet.getAxes().get(0)) { final Cell cell = cellSet.getCell(column, row); writer.print(cell.getFormattedValue() + "\t"); } writer.println(); } writer.flush(); } } }
相关推荐
2. **元数据访问**:通过OLAP4J,开发者可以获取关于立方体、维度、层次、成员和度量的详细信息,这些是构建OLAP查询的基础。 3. **查询构建和执行**:提供了API来构建MDX(多维表达式)查询,这是OLAP领域的标准...
《olap4j:Java OLAP接口库解析与应用》 olap4j是一个开源的Java API,专门用于处理在线分析处理(Online Analytical Processing,OLAP)操作。这个库为开发者提供了一种标准的方式来访问各种多维数据源,如数据...
这个库主要实现了OLAP4J规范,这是一个开放的Java API,旨在为Java开发者提供标准的接口来访问在线分析处理(OLAP)系统,比如SQL Server Analysis Services (SSAS)。下面将详细讲解这个库的相关知识点。 **OLAP4J*...
《olap4j-0.9.7.309-JS-3:揭秘Java OLAP接口技术》 OLAP4j,全称Open LDAP API for Java,是Java平台上的一个开放源代码的在线分析处理(Online Analytical Processing)接口。这个版本0.9.7.309-JS-3代表了该接口...
此外,olap4j还支持多种数据源类型,包括JDBC(Java Database Connectivity)和XMLA(XML for Analysis),这使得它能够与多种类型的OLAP服务器兼容,如 mondrian、MicroStrategy、Oracle OLAP等。同时,由于olap4j...
《olap4j-0.9.7.309-JS-3:JasperReports与OLAP技术的交汇》 在IT行业中,数据分析和报表生成是至关重要的环节,这通常涉及到在线分析处理(OLAP)和报表工具的使用。"olap4j-0.9.7.309-JS-3"是一个专门针对这些...
3. **olap4j-xmla-1.2.0.jar**:olap4j是一个Java API,用于访问OLAP服务器,而XML/A(XML for Analysis)是用于OLAP服务的标准接口。这个jar文件提供了对XML/A的支持,使得Mondrian可以通过XML/A协议与客户端应用...
OLAP4J提供了一种标准的方式来访问多维数据,使开发者可以轻松地在各种不同的OLAP服务器之间切换,如 Mondrian、Hyperion Essbase 等。这个版本号`0.9.7.309-JS-3`可能表示该库的一个特定发布,其中"JS"可能指的是...
Oracle OLAP 提供了多种方式来访问多维数据集,包括: 1. 使用 Oracle Business Intelligence 企业版。 2. 使用 SQL 直接查询多维数据集和维度。 3. 使用 MDX Provider for Oracle OLAP,通过 Microsoft Excel ...
这部分可能涉及了如何使用XML来表示和交换OLAP数据。 总结而言,这份文献综述不仅提供了关于数据仓库和OLAP的基本概念和技术细节,还深入探讨了相关的学术研究成果、实践经验和未来发展方向。这对于理解这两个领域...
mondrian_example.zip, olap4j.jar,mondrian.jar,JPivot.war Mondrian配置是数据仓库和商业智能领域中的一个重要环节,它是一个开源的多维分析引擎,常用于在线分析处理(OLAP)系统。Mondrian通过与各种数据源...
开发者可以使用PreparedStatement、Statement等接口执行SQL语句,进行数据的增删改查操作,同时,JDBC驱动还提供了连接池等功能,优化了数据库的访问性能。 最后,JUnit是Java领域最常用的单元测试框架,它是 ...
以及olap4j——一种Java API,为开发人员提供了一个类似JDBC的接口来访问OLAP数据源。 Mondrian采用Eclipse Public License开源许可,这意味着开发者可以自由地使用、修改和分发Mondrian的代码,极大地促进了其在...
4. **wsdl4j-1.5.1.jar**:WSDL4J是Web服务描述语言(WSDL)的Java实现,它允许处理和操作WSDL文档。在mondrian XMLA环境中,这个库可能用于生成或解析描述mondrian服务的WSDL文件,使得客户端能够了解如何正确地...
4. JPivot标签库使用详解 4.1. Introduce JPivot 是一套基于 Mondrian 的 OLAP 前端展现工具,它提供了一套标签库来解决的 OLAP 的展现层问题。 在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的...
4. **当前研究热点**:包括但不限于分布式数据库、对象关系数据库、XML数据库、数据仓库与联机分析处理等领域。 #### 分布式数据库系统 分布式数据库系统是指数据分布在多个地理位置上,由不同的计算机节点组成的...
日志管理使用Log4j,其配置文件位于`biserver-ce\tomcat\webapps\pentaho\WEB-INF\classes\log4j.xml`,你可以根据需要定制日志输出级别和格式。 此外,为了提升Pentaho BI服务器的并发性能,还可以调整Tomcat的...
这个库不仅支持 Mondrian,一个流行的开源OLAP引擎,还兼容XMLA(XML for Analysis),这是一种用于访问和控制分析数据的开放标准,使得La_Azada能够连接到各种支持XMLA的OLAP服务,如Microsoft Analysis Services等...