Mondrian(olap引擎)
流光华逝
这个作者很懒,什么都没留下…
展开
-
Mondrian入门系列(一)准备
Mondrian能做什么? 1.ROLAP引擎,底层使用关系型数据库,如Mysql、Oracle,其实支持sql的数据库均可,比如hive(部分支持)。 2.多维数据分析,把MDX语句转换成SQL执行。 3.基于Role的权限控制。 4.默认缓存所有查询结果,可手动清除。 5.Mondrian只是一个引擎,还需要一个server/界面来运行,如JPivot、Saiku.本系列的内容 1.原创 2015-03-09 10:54:42 · 1277 阅读 · 1 评论 -
Mondrian入门系列(二)获取连接
获取连接import mondrian.olap4j.MondrianOlap4jConnection;import java.sql.Connection;//注意包别导错了Class.forName("mondrian.olap4j.MondrianOlap4jDriver");Connection connection = DriverManager.getConnection("jd原创 2015-03-09 16:05:36 · 928 阅读 · 0 评论 -
Mondrian入门系列(五)查询
获取了String类型的MDX语句之后,即可用来查询: CellSet cellset = conn.createStatement().executeOlapQuery(mdx); //执行mdx 结果封装到一个cellset中,遍历并输出:for (Position row : cellset.getAxes().get(1)) { for (P原创 2015-03-09 17:33:30 · 586 阅读 · 0 评论 -
Mondrian入门系列(六)
读取schema文件信息 需要先建立连接(建立连接时选定一个schema文件)。 Cube cube=conn.getOlapSchema().getCubes().get(i); cube.getDimensions(); 获取一个NamedList cube.getMeasures(); 获取一个ListDimension、Measure通过以下三个方法获取三个名字属性 g原创 2015-03-23 19:14:53 · 387 阅读 · 0 评论 -
Mondrian入门系列(三)组装MDX(上)
轴 Mondrian中分为row,column,filter三个轴,同一个维度只能放在一个轴上,包括不同的level,例如Store.Store Country和Store.Store State 注意,所有的度量都视为属于Measures维度。原创 2015-03-09 16:53:07 · 631 阅读 · 0 评论 -
Mondrian入门系列(四)组装MDX(下)
封装好了条件就可以查询了,假设把各条件的对象放在一个ArrayList中。 借助olap4j的query包来组装MDX,API 建议同时阅读olap4j源码中的注释,API中的描述比较少。 PS:以下为去除了非基本功能的版本,可能会有语法错误,完整的代码稍后会上传到githubpublic class MDXGenerator { //判断是否加上 Hierarchize()原创 2015-03-09 17:23:32 · 987 阅读 · 0 评论 -
Mondrian入门系列(七)OLAP基本操作
本章是系列(四)中组装MDX的扩展。切片、切块 可以通过MDX实现,一般添加在filter轴。 例如添加Time.1997,Store.Store City钻取 钻取即是把Level替换为member,如TIme.Year –>Time.1997旋转 加上query.swapAxes()即可 就是交换行列。过滤 如选取Unit Sales>1000的, QueryAxis qa.fil原创 2015-03-23 19:32:17 · 882 阅读 · 0 评论