OLAP/mondrian 설치

[ mondrian ] olap free tool mondrian 설치

정윤재 2012. 7. 15. 22:10

1. 몬드리안 다운로드

 

http://mondrian.pentaho.org 에서 다운로드 받음

 

2. 다운 받은 파일의 압축을 품

 

unzip mondrian-3.3.0.14703.zip

 

3. MYSQL DB 에서 예제인 foodmart 를 사용하기 위한 계정을 만들어 줌

 

mysqladmin create foodmart

 

mysql -u root -p

 

use mysql

 

이런식으로 접속 해서

 

insert into user(host,user, password) values('localhost', 'foodmart',password('foodmart'));
insert into user(host,user, password) values('%', 'foodmart',password('foodmart'));

 


mysql>grant all privileges on *.* to 'foodmart'@'localhost' identified by 'foodmart';
mysql>grant all privileges on *.* to 'foodmart'@'%' identified by 'foodmart';
mysql>flush privileges;

 


4. DB 에 예제인 foodmart 를 집어 넣음 (몬드리안 회사에서 만들어 놓은

 

어플리케이션으로 DB 에 집어넣는 구조임

 

-풀린 압축 파일을 보면 FoodMartCreateData.sql 이 있고 mondrian.jar 를

 

가지고 실행 시키는 구조이므로 리눅스의 경우 쉘을 만들어서 해주면 편함

 

난 mysql 을 사용 하였고 아래와 같이 쉘을 만들어서 넣어 주었음

 

참고로 mysql의 자바 connector 를 path 로 잡아주어야 함)

 

#!/bin/sh
JAVA_HOME=/usr/bin
MOND=/home/mondrian/mondrian/WEB-INF/lib/mondrian.jar
LOG=/home/mondrian/mondrian/WEB-INF/lib/log4j-1.2.8.jar
COMLOG=/home/mondrian/mondrian/WEB-INF/lib/commons-logging-1.0.4.jar
EIGEN=/home/mondrian/mondrian/WEB-INF/lib/eigenbase-xom.jar
RESGEN=/home/mondrian/mondrian/WEB-INF/lib/eigenbase-resgen.jar
EIGPROPERTIES=/home/mondrian/mondrian/WEB-INF/lib/eigenbase-properties.jar
MYSQL=/home/mondrian/mondrian/WEB-INF/lib/mysql-connector-java-5.1.7-bin.jar
OLAPJ=/home/mondrian/mondrian/WEB-INF/lib/olap4j.jar
CLASSPATH=$MOND:$LOG:$COMLOG:$EIGEN:$RESGEN:$EIGPROPERTIES:$MYSQL:$OLAPJ

java -classpath $CLASSPATH mondrian.test.loader.MondrianFoodMartLoader -verbose -tables -data -indexes -jdbcDrivers=com.mysql.jdbc.Driver -inputFile=/home/cloud/demo/FoodMartCreateData.sql -outputJdbcURL="jdbc:mysql://localhost/foodmart?user=foodmart&password=foodmart"

 


5. 몬드리안 홈페이지에서 받은 압축 파일을 unzip 해서 압축 푼 곳에서

 

몬드리안압축푼곳/lib/mondrian.war 파일의 압축을 풀어서

 

mondrian 폴더 통채로 TOMCAT_HOME/webapps 하위에 복사 한다.

 

(톰캣에서 웹프로젝트로 인식 할 수 있도록 해주면 된다.)

 

6. DB 접속 정보를 수정한다.

 

vi TOMCAT_HOME/webapps/mondrian/WEB-INF/mondrian.properties 에서

 

Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-

 

INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver; 문구를

 

아래와 같이 바꾸어 준다.

 

mondrian.test.connectString=Provider=mondrian;Jdbc=jdbc:mysql://localhost/foodmart;JdbcUser=foodmart;JdbcPassword=foodmart;JdbcDrivers=com.mysql.jdbc.Driver;Catalog=/WEB-INF/queries/FoodMart.xml;

 

7. mysql connector(자바) 를 웹 프로젝트 lib 폴더에 넣어 준다.

 

TOMCAT_HOME/webapps/mondrian/WEB-INF/lib 로 mysql-connector-java-5.1.7-bin.jar 같

 

라이브러리 파일 넣어 줌

 

 

8. TOMCAT_HOME/webapps/mondrian/WEB-INF/queries folder 의 fourhier.jsp,

mondrian.jsp, colors.jsp, arrows.jsp 파일들의 내용 중

 

<jp:mondrianQuery id="query01" jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver" jdbcUrl="jdbc:odbc:MondrianFoodMart" catalogUri="/WEB-INF/queries/FoodMart.xml">

을 아래와 같이 바꿔 준다.

 

<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost/foodmart?user=foodmart&password=foodmart" catalogUri="/WEB-INF/queries/FoodMart.xml">

 


9. JNDI 설정을 해준다.

 

 9-1. TOMCAT_HOME/webapps/mondrian/WEB-INF/datasources.xml 을 바꿔 준다

 

  <URL>http://localhost:8888/mondrian/xmla</URL>을
  <URL>http://localhost:8080/mondrian/xmla</URL> 로 바꿔 준다.

 

 
  <DataSourceInfo>Provider=mondrian;Jdbc=jdbc:oracle:thin:foodmart/foodmart@//marmalade.hydromatic.net:1521/XE;JdbcUser=foodmart;JdbcPassword=foodmart;JdbcDrivers=oracle.jdbc.OracleDriver;Catalog=/WEB-INF/queries/FoodMart.xml</DataSourceInfo>
  을

 

 

  <DataSourceInfo>Provider=mondrian;Jdbc=jdbc:mysql://localhost/foodmart;JdbcUser=foodmart;JdbcPassword=foodmart;JdbcDrivers=com.mysql.jdbc.Driver; </DataSourceInfo>


  로 바꿔 준다

 

  하단의 <Catalog> 태그 안에
                  <!--
                <DataSourceInfo>Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver</DataSourceInfo>
                 -->

 

  하단에

  <DataSourceInfo>Provider=mondrian;Jdbc=jdbc:mysql://localhost/foodmart;JdbcUser=foodmart;JdbcPassword=foodmart;JdbcDrivers=com.mysql.jdbc.Driver; </DataSourceInfo>
  부분을 넣어 준다.

 

 

 9-2. TOMCAT_HOME/webapps/mondrian/WEB-INF/web.xml 을 바꿔 준다

 

  
    <context-param>
       <param-name>connectString</param-name>
        <param-value>@mondrian.webapp.connectString@</param-value>
      </context-param>
       을

 

    
    <context-param>
       <param-name>connectString</param-name>
        <param-value>Provider=mondrian;Jdbc=jdbc:mysql://localhost/foodmart;JdbcUser=foodmart;JdbcPassword=foodmart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.mysql.jdbc.Driver</param-value>
                  </context-param>
       로 바꿔 준다.

 

    <servlet>
       <servlet-name>MDXQueryServlet</servlet-name>
       <servlet-class>mondrian.web.servlet.MdxQueryServlet</servlet-class>
       <init-param>
          <param-name>connectString</param-name>
          <param-value>@mondrian.webapp.connectString@</param-value>
       </init-param>
     </servlet>

  을

 

  <servlet>
    <servlet-name>MDXQueryServlet</servlet-name>
    <servlet-class>mondrian.web.servlet.MdxQueryServlet</servlet-class>
    <init-param>
      <param-name>connectString</param-name>
      <!--<param-value>@mondrian.webapp.connectString@</param-value>-->

    <param-value>Provider=mondrian;Jdbc=jdbc:mysql://211.63.6.75/foodmart;JdbcUser=foodmart;JdbcPassword=foodmart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.mysql.jdbc.Driver</param-value>
    </init-param>
  </servlet>


  로 바꿔준다.

 


  <servlet>
    <servlet-name>MondrianXmlaServlet</servlet-name>
    <servlet-class>mondrian.xmla.impl.DefaultXmlaServlet</servlet-class>
    <!--
    <init-param>
      <param-name>DataSourcesConfig</param-name>
      <param-value>/datasources.xml</param-value>
    </init-param>
    -->
  </servlet>

 

 의 init-param 태그의 주석을 풀어준다.

 

10. Axis 의 라이브러리 들을 복사 해 준다.

 

http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 에서 axis 를 다운 받는다

 

tar xvfz axis-bin-1_4.tar.gz

 

와 같이 압축 풀고 그 안에서

 

axis.jar
commons-discovery-0.2.jar
wsdl4j-1.5.1.jar
jaxrpc.jar

 


을 가져와서

 

TOMCAT_HOME/webapps/mondrian/WEB-INF/lib 에 넣어 준다.

 


11. testrole.jsp 의 DB 정보 수정 한다.

 

<jp:mondrianQuery id="query01" jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver" jdbcUrl="jdbc:odbc:MondrianFoodMart" catalogUri="/WEB-INF/queries/FoodMart.xml" role="California manager">

 


<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost/foodmart?user=foodmart&password=foodmart" catalogUri="/WEB-INF/queries/FoodMart.xml" connectionPooling="false">

 

로 수정한다.

 

12. xmla.jsp 의 port 정보를 수정 한다.

<jp:xmlaQuery id="query01"
    uri="http://localhost:8080/mondrian/xmla"
    dataSource="Provider=Mondrian;DataSource=MondrianFoodMart;"
        catalog="FoodMart">

 

13. mondrianXMLA.jsp 를 아래와 같이 수정 한다.


14. TOMCAT_HOME/bin/catalina.sh 의 JAVA_OPTS 부분을 수정 한다.


JAVA_OPTS="$JAVA_OPTS -Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl -Djavax.xml.soap.SOAPConnectionFactory=org.apache.axis.soap.SOAPConnectionFactoryImpl -Djavax.xml.soap.SOAPFactory=org.apache.axis.soap.SOAPFactoryImpl -Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl" 

 


15. 인터넷 웹 브라우저에서 http://localhost:8080/mondrian

입력시 아래와 같은 화면을 볼 수 있다.
   

 

         

 

 JPivot pivot table link click!!