2014-02-20 3 views
0

내가 .I이 mondrian 서버와 olap4j API를 사용하고있는 BI 개념과 mondrian와 초보자 오전 스키마 파일에서 MySQL의 열 이름을 얻기 위해 API를 olap4j 사용하는 내 요구 사항은 스키마 파일에 매핑 된 MySQL의 열 이름을 얻는 것입니다 또는 데이터베이스에 대한 메타 데이터. 기본적으로 나는 연결할 수 있으며 foodmart 샘플 데이터를 사용하여 샘플 쿼리를 실행할 수 있습니다. 당신은을 백업 스키마의 열이 있다고 가정합니다 내가 노력하고 나에게어떻게

 Class.forName("mondrian.olap4j.MondrianOlap4jDriver"); 
     Connection connection = DriverManager 
       .getConnection("jdbc:mondrian:Jdbc=jdbc:mysql://localhost:3306/foodmart;Provider=Mondrian;" 
         + "Catalog=D:/Softwares/mondrian-3.2.0.13661/demo/FoodMart.xml;PoolNeeded=false;JdbcUser=root;JdbcPassword=admin123;JdbcDrivers=com.mysql.jdbc.Driver;"); 

     OlapWrapper wrapper = (OlapWrapper) connection; 
     OlapConnection olapConnection = wrapper 
       .unwrap(OlapConnection.class); 

     NamedList<Cube> cubes = olapConnection.getOlapSchema().getCubes(); 
     for (Cube eachCube : cubes) { 

      System.out.println(" Cube name..." + eachCube.getName()); 

      for (Measure measure : eachCube.getMeasures()) { 

       System.out.println(" Measures " + measure.getName()); 
       System.out.println("Measure Levels...." 
         + measure.getLevel().getCaption()); 

      } 

      for (Hierarchy hierarchy : eachCube.getHierarchies()) { 

       System.out.println("hierarchy " + hierarchy.getName()); 
       NamedList<Level> levels = hierarchy.getLevels(); 

       for (Level l : levels) { 

        System.out.println(" Hierarchy levels " + l.getName()); 
        List<Member> members = l.getMembers(); 

        for(Member member:members){ 
         System.out.println(" Member name " +member.getName()); 


        } 

       } 
      } 

     } 
+0

당신이 시도한 것을 제공하여 사람들이 그 사실을 바탕으로 당신을 도울 수 있도록하십시오. – xlembouras

+0

샘플 코드, 난이에 대한 접근 방식 \t \t \t입니다 내가 아니다 ..bit 노력하고 있어요 (측정 측정 : eachCube.getMeasures()) { \t \t \t \t에서 System.out.println ("조치"+ measure.getName()); \t \t \t \t에서 System.out.println ("기준 레벨 ...." \t \t \t \t \t \t + measure.getLevel() getCaption().); \t \t \t \t \t}의 \t \t \t (계층 계층 : eachCube.getHierarchies()) { \t \t \t \t \t에서 System.out.println ("계층"+ hierarchy.getName()); \t \t \t \t \t NamedList levels = hierarchy.getLevels(); (L 레벨 : 레벨) 용 \t \t \t \t \t \t { \t \t \t \t \t에서 System.out.println ("계층 레벨"+ l.getName()); \t \t \t \t \t} \t \t \t \t} \t \t \t} –

+0

당신의 질문에이 코드를 추가하고 제대로 포맷 – xlembouras

답변

0

을 열 이름을 얻을 수있는 샘플 코드 (내가 MySQL을 사용하고 있습니다) 또는 데시벨 메타 데이터

샘플 코드입니다주세요 olap4j 연결. 이것은 olap4j가 만들 수있는 가정은 아닙니다. 이러한 우려를 추상화하기 위해 고안되었습니다.

이러한 특별한 힌트를 전달하는 올바른 방법은 annotations입니다. 스키마, 큐브, 차원, 계층 및 수준에 주석을 추가 할 수 있습니다.