0

私は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());


                    }

                }
            }

        }
4

1 に答える 1