我是BI
概念的初学者,mondrian
我正在使用olap4j API
服务器mondrian
,我的要求是获取架构文件中映射的 mysql 列名或有关数据库的元数据。基本上我能够连接并可以使用foodmart
示例数据执行示例查询。请提供示例代码以获取列名(我使用的是 mysql)或 db 元数据
我正在尝试的示例代码是
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());
}
}
}
}