我是BI
概念和mondrian
的初学者。我正在使用olap4j API
和mondrian
服务器,我的要求是在模式中映射mysql列名有关数据库的文件或元数据。基本上我能够连接并可以使用foodmart
样本数据执行示例查询。请提供示例代码以获取列名称(我正在使用mysql)或db metadata
我正在尝试的示例代码是
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 :(得分:0)
您假设支持olap4j连接的架构中有一列。这不是olap4j可以做出的假设。它旨在抽象出这些问题。
传递这类特殊提示的正确方法是annotations。您可以为模式,多维数据集,维度,层次结构和级别添加注释。