powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Saiku + MySQL + Java
8 сообщений из 8, страница 1 из 1
Saiku + MySQL + Java
    #38539958
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день коллеги!

Saiku настроил на Pentaho Mondrian вроде все работает.
Как это сделать на Java?
Как это будет выглядеть в Web приложении? Также как в Pentaho?
Вообще это возможно?
Если есть возможность скиньте плиз примеры.
В Java я новичок, поэтому чем подробнее тем лучше.

Если такая связка не работает, подскажите альтернативы.

Спасибо огромное.
...
Рейтинг: 0 / 0
Saiku + MySQL + Java
    #38540080
xPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из java можно напрямую работать с Mondrian движком олапа (для этого используются Mondrian.jar и olap4j.jar) и строить свои графики, выполнять свои mdx запросы.
Так же на запущенный bi-сервер pentaho можно из java слать xmla запросы.

Примерно это выглядит так:

Код: java
1.
2.
3.
String connectionString = "jdbc:mondrian:Jdbc=jdbc:postgresql://server/dbname; JdbcUser=login; JdbcPassword=password; CatalogContent= <xml схема с описанием структуры кубов>";
Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
OlapConnection c = (OlapConnection) DriverManager.getConnection(connectionString);



Затем получить коллекцию кубов и их структуру:

Код: java
1.
c.getOlapSchema().getCubes()



А вот так выполнять mdx запросы:
Код: java
1.
2.
OlapStatement olapStatement = c.createStatement();
CellSet cellSet = olapStatement.executeOlapQuery(mdx);



Xml схему можно спроектировать через schema-workbench от Pentaho.
...
Рейтинг: 0 / 0
Saiku + MySQL + Java
    #38540299
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xPro,

Спасибо, можете еще кое-что уточнить.

В connectionString что нужно написать?
Туда надо логин и пароль СУБД или Mondrian?
Гугление не совсем понятные ответы дает.

Mondrian: http://localhost:8888/pentaho/Home;
user: suzy;
password:***;

Или данные СУБД?
http://localhost:3306....
...
Рейтинг: 0 / 0
Saiku + MySQL + Java
    #38540426
xPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В connectionString пишется строка подключения к БД, на которой строится схема из кубов и измерений.
...
Рейтинг: 0 / 0
Saiku + MySQL + Java
    #38540515
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xPro,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        final Connection connection = DriverManager.getConnection("jdbc:mondrian:Jdbc=jdbc:mysql:3306//localhost//qms23; "
                + "JdbcUser=qms;"
                + "JdbcPassword=qms; "
                + "Catalog=c:\\Project\\workbench\\fbplayers.xml; "
//                        "jdbc:mondrian:Jdbc=jdbc:mysql:localhost:3306/qms23; JdbcUser=qms; JdbcPassword=qms; CatalogContent= c:\\Project\\workbench\\fbplayers.xml;"
//                        "jdbc:mondrian:" // Driver ident
//                        + "JdbcDrivers=com.mysql.jdbc.Driver;" // Relational driver
//                        + "Jdbc=jdbc:mysql://localhost:3306/qms23?user=qms&password=qms;" // Relational DB
//                        + "Catalog=file:c:\\Project\\workbench\\fbplayers.xml;"
                );   



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
log4j:WARN No appenders could be found for logger (mondrian.olap.MondrianProperties).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while creating SQL connection: Jdbc=jdbc:mysql:3306//localhost//qms23; JdbcUser=qms; JdbcPassword=qms
	at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:972)
	at mondrian.olap.Util.newInternal(Util.java:2403)
	at mondrian.olap.Util.newError(Util.java:2419)
	at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:246)
	at mondrian.rolap.RolapSchema.<init>(RolapSchema.java:188)
	at mondrian.rolap.RolapSchema.<init>(RolapSchema.java:216)
	at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:214)
	at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:66)
	at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:160)
	at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:90)
	at mondrian.olap.DriverManager.getConnection(DriverManager.java:112)
	at mondrian.olap.DriverManager.getConnection(DriverManager.java:68)
	at mondrian.olap4j.MondrianOlap4jConnection.<init>(MondrianOlap4jConnection.java:153)
	at mondrian.olap4j.FactoryJdbc4Plus$AbstractConnection.<init>(FactoryJdbc4Plus.java:323)
	at mondrian.olap4j.FactoryJdbc41Impl$MondrianOlap4jConnectionJdbc41.<init>(FactoryJdbc41Impl.java:118)
	at mondrian.olap4j.FactoryJdbc41Impl.newConnection(FactoryJdbc41Impl.java:32)
	at mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:134)
	at java.sql.DriverManager.getConnection(DriverManager.java:571)
	at java.sql.DriverManager.getConnection(DriverManager.java:233)
	at mondrian.dao.MondrianConnect.main(MondrianConnect.java:16)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql:3306//localhost//qms23
	at java.sql.DriverManager.getConnection(DriverManager.java:596)
	at java.sql.DriverManager.getConnection(DriverManager.java:187)
	at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:51)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
	at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
	at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:226)
	... 16 more
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 12.760s
Finished at: Tue Jan 28 16:07:58 YEKT 2014
Final Memory: 6M/244M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project Mondrian: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException



Подскажи плиз, что не так делаю?
...
Рейтинг: 0 / 0
Saiku + MySQL + Java
    #38541613
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот рабочий вариант, вдруг кому нибудь надо будет.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
import org.olap4j.*;
import org.olap4j.metadata.Member;
import org.olap4j.metadata.Cube;
import org.olap4j.metadata.NamedList;

import java.sql.*;

public class MondrianTest {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
        Class.forName("com.mysql.jdbc.Driver");

        OlapConnection olapConnection = (OlapConnection) DriverManager.getConnection(
                "jdbc:mondrian:" // Driver ident
                + "JdbcDrivers=com.mysql.jdbc.Driver;" // Relational driver
                + "Jdbc=jdbc:mysql://localhost:3306/qms23?user=qms&password=qms;" // Relational DB
                + "Catalog=c:\\Project\\workbench\\fbplayers.xml; "
        );

        NamedList<Cube> cubes = ((OlapConnection) olapConnection).getOlapSchema().getCubes();

        OlapStatement olapStatement = (OlapStatement) olapConnection.createStatement();

        String mdx = "SELECT\n"
                + "NON EMPTY {Hierarchize({[Measures].[VisitorWorkplace]})} ON COLUMNS,\n"
                + "NON EMPTY {Hierarchize({[Workplace.WorkplaceHierarchy].[WorkplaceLevel].Members})} ON ROWS\n"
                + "FROM [visitor]";

        CellSet cellSet = olapStatement.executeOlapQuery(mdx);

        for (Position row : cellSet.getAxes().get(1)) {
            for (Position column : cellSet.getAxes().get(0)) {
                for (Member member : row.getMembers()) {
                    System.out.println(member.getUniqueName());
                }
                for (Member member : column.getMembers()) {
                    System.out.println(member.getUniqueName());
                }
                final Cell cell = cellSet.getCell(column, row);
                System.out.println(cell.getFormattedValue());
                System.out.println();
            }
        }
    }
}


Спасибо за помощь!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Saiku + MySQL + Java
    #39833144
avialaynen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadipokВот рабочий вариант, вдруг кому нибудь надо будет.
Для какой версии мондриана этот код и где вы эту версию взяли?
На версиях 3.7 и 3.14 он не работает, потому что они там в либе переделали вообще всё. DriverManager.getConnection возвращает не olap4j.OlapConnection, а mondrian.rolap.RolapConnection, а в нём нет CreateStatement(), вместо этого ему самому нужно задавать statement непонятно как, ибо примеры использования этого класса - это такие простыни кода, что с microsoft foundation class могут по объёму потягаться.
...
Рейтинг: 0 / 0
Saiku + MySQL + Java
    #39833174
avialaynen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Upd. Тупанул, проинклюдил DriverManager из мондриана, а не из java.sql, как надо. На мондриане 3.7 код работает.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Saiku + MySQL + Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]