saiku 2.6源码整合(无maven情况下)
saiku2 OpenBI OpenSource    2017-07-19 23:40:52    837   
lightingfire   saiku2 OpenBI OpenSource

工具:

  1. MyEclipse 10
  2. saiku2.5源码
  3. saiku-server-foodmart-2.5.zip

操作步骤:

  1. 在MyEclipse中新建一个web项目,名为saiku(必须名为saiku,因为saiku的UI会默认找saiku项目)
  2. 在saiku-server-foodmart-2.5.zip的tomcat中,找到saiku项目,并复制saiku目录下的所有文件到saiku项目的WebRoot目录中
  3. 到saiku-2.5.x\saiku-core\目录下分别找到saiku-service和saiku-web目录,并找到其中的java源代码,copy到saiku中,作为源码(建议分开两个resource文件夹存放,便于区分)
  4. 然后在saiku项目中创建source文件夹resource(命名自定),并在其目录下创建文件夹saiku-datasources和saiku-repository(前者是存储saiku的datasource的文件夹,后者则是存储生成的saiku模板的文件夹)
  5. 然后将saiku项目放到tomcat中,启动,看是否正常(如果没配置错误的话,应该正常了)
  6. 配置一个自己的测试库:
    在saiku-datasources目录下创建file并命名为testdatasource,文件内容为如下
  1. type=OLAP
  2. name=testdatasource
  3. driver=mondrian.olap4j.MondrianOlap4jDriver
  4. location=jdbc:mondrian:Jdbc=jdbc:mysql://localhost:3306/testdatasource;Catalog=res:testdatasource/testdatasource.xml;
  5. username=root
  6. password=111111

解释下上面一条的的参数

  1. type=OLAP就不多说了,先按固定的来
  2. name=testdatasource 数据源名称
  3. driver=mondrian.olap4j.MondrianOlap4jDriver 可以理解为固定的,Mondrian的多维查询driver
  4. location一行比较长,其中有一段jdbc:mysql://localhost:3306/testdatasource为数据库的url,
  5. 后面的res:testdatasource/testdatasource.xmlvfs的一种url写法,表示是classes目录下的testdatasource/testdatasource.xml文件
  6. usernamepassword就不多说了,如果看不懂,就去翻译一下吧

创建表和插入数据,执行语句如下
A、创建表t_user

  1. DROP TABLE IF EXISTS `t_user`;
  2. CREATE TABLE `t_user` (
  3. `user_id` int(11) NOT NULL,
  4. `user_name` varchar(255) DEFAULT NULL,
  5. `pwd` varchar(255) DEFAULT NULL,
  6. PRIMARY KEY (`user_id`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  8. -- ----------------------------
  9. -- Records of t_user
  10. -- ----------------------------
  11. INSERT INTO `t_user` VALUES ('1', 'user1', '1');
  12. INSERT INTO `t_user` VALUES ('2', 'user2', '2');
  13. INSERT INTO `t_user` VALUES ('3', 'user3', '3');
  14. INSERT INTO `t_user` VALUES ('4', 'user4', '4');

B、创建表t_data

  1. DROP TABLE IF EXISTS `t_data`;
  2. CREATE TABLE `t_data` (
  3. `user_id` int(11) DEFAULT NULL,
  4. `count` int(11) DEFAULT NULL
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  6. -- ----------------------------
  7. -- Records of t_data
  8. -- ----------------------------
  9. INSERT INTO `t_data` VALUES ('1', '23');
  10. INSERT INTO `t_data` VALUES ('2', '22');
  11. INSERT INTO `t_data` VALUES ('3', '21');
  12. INSERT INTO `t_data` VALUES ('4', '25');
  13. INSERT INTO `t_data` VALUES ('2', '21');
  14. INSERT INTO `t_data` VALUES ('4', '22');

在resource文件夹下建文件夹testdatasource,并在其下创建文件testdatasource.xml,文件内容如下

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <Schema name="test_schema">
  3. <cube name="test_cube">
  4. <Table name="t_data"></Table>
  5. <Dimension name="user" foreignKey="user_id">
  6. <Hierarchy hasAll="true" allMemberName="user_id" primaryKey="user_id" >
  7. <Table name="t_user" />
  8. <Level name="user_id" column="user_id" uniqueMembers="true" type="Integer" />
  9. </Hierarchy>
  10. </Dimension>
  11. <Measure column="count" aggregator="sum" datatype="Numeric" name="all_count" caption="all_count"></Measure>
  12. </cube>
  13. </Schema>

这里就不做太多解释了


by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn
OpenBI问答社区:http://openbi.liuyingguang.cn/

Pre: Linux基于yum安装Mariadb(根据官方文档记录)

Next: java web项目中集成Jetty作为web容器


Table of content