GithubHelp home page GithubHelp logo

osbi / saiku Goto Github PK

View Code? Open in Web Editor NEW
1.3K 158.0 663.0 115.53 MB

Saiku Analytics - The Worlds Greatest Open Source OLAP Browser

Home Page: http://community.meteorite.bi

License: Apache License 2.0

Shell 0.10% Java 20.29% JavaScript 75.54% CSS 2.34% HTML 1.08% XSLT 0.53% Batchfile 0.02% Python 0.09% Dockerfile 0.01%

saiku's Issues

Saiku doesn't see new schemas when the Mondrian Schema Cache is refreshed

When publishing a new schema, JPivot view can see new cubes once the Mondrian Schema Cache is refreshed via the admin console (I haven't tested it in the Pentaho web front end) but the only way to get Saiku to see a new schema is to restart the Pentaho server.

Maybe I am doing something wrong but I can't fathom this one out?

Error when opening a query

I have an error when opening a query.
When I save the query, it generates an xml file with "UTF-8" encoding.
The MDX query contained in the xml file has special characters such as "á, ñ, etc.". So when I try to open the query, it results in an error.

I realized that when I change the xml encoding to "iso-8859-1", the MDX query is opened OK.
Is it a bug?

multiple hierarchies in selection

at the moment it is possible to select different levels from different hierarchies from a dimension
we should either disallow that or better, fix it in the backend so its ok to do so

Add conditional Formatting / annotation support

Allow for annotations similar to comments in Google Docs that allow for Dimensions, Levels, Members, and cell segments to be annotated and commented upon.

Add server side capabilities for addressing/reading/writing annotations
Come up with a limited syntax for comments (some easy to use Wiki Markup language seems like a good target)
Display the "availability" of comments on the pivot table, and a detail pane (to the right) that can show comments as a stream (or details if clicked from the pivot table)

Internazionalization

Saiku should be able to pass back the Locale to the Mondrian / XMLA Server when switching languages

Wrap XML endpoints for application/json content-negotiation

When the user requests an XML endpoint with an Accept of application/json, the XML should be wrapped like this:

{ "xml": " ... " }

As far as I can tell, this affects:

GET /{user}/query/{query_name}/xml
GET /{user}/repository/{query_name}

Export to excel: numbers stored as text

When I export a saiku result set to excel, the numeric values in the .xls file are somehow stored incorrectly; excel says they are "number stored as text" and if I try to, say, do a sum(range) in excel, the answer is "zero".

Example excel export (with malfunctioning range sum) is attached.

Cheers,

Tyler

Ability to filter on measures

Can we filter on measures? i.e. where [Measures].[count] > 10 for example.

Commonly used for filtering out scenarios where there isnt enough data to make the averages meaningful..

Also availa

Children of Selected Hierarchy Elements Retrieved

The children of the selected hierarchy elements are retrieved unnecessarily.

First reported in ##saiku and fixed by Paul:

(11:11:32 AM) cwarden: saiku seems to be too aggressive about descending hierarchies
(11:12:13 AM) cwarden: for example, if i have a date dimension with year, month, and day levels, and report on a measure by year, saiku queries for all of the months under each year.
(11:12:56 AM) cwarden: any way to disable this behavior?
(11:14:44 AM) pstoellberger: can you describe that in more detail?
(11:14:57 AM) pstoellberger: are you watching SQL? MDX?
(11:15:43 AM) cwarden: i'm watching the sql
(11:16:43 AM) pstoellberger: and you mean during the member cache population?
(11:17:29 AM) pstoellberger: we dont touch any lower levels in our code.... so this must be default mondrian behaviour
(11:19:50 AM) cwarden: i don't see the same behavior with jpivot.
(11:20:05 AM) pstoellberger: if you can show me some mondrian sql log about that i might be able to help you
(11:20:06 AM) cwarden: here's an example of the sql: http://pastebin.com/mQPSHtJv
(11:21:10 AM) pstoellberger: hm
(11:21:22 AM) pstoellberger: i can send you a new jar that you could try
(11:21:25 AM) pstoellberger: i think i have an idea
(11:21:46 AM) cwarden: cool, thanks.
(11:22:48 AM) pstoellberger: if its not that its not in our code base :)
(11:23:32 AM) pstoellberger: http://dl.dropbox.com/u/13927708/saiku-olap-2.2-SNAPSHOT.jar
(11:24:01 AM) pstoellberger: replace your current saiku-olap.jar with that one
(11:24:09 AM) pstoellberger: (make sure you delete/move the old one)
(11:24:24 AM) pstoellberger: tomcat/webapps/saiku/WEB-INF/lib
(11:24:57 AM) pstoellberger: or saiku/lib in the plugin
(11:38:54 AM) pstoellberger: any luck cwarden ?
(11:41:25 AM) cwarden: sorry, one sec. just being a little paranoid and checking the jar against the ci one. :)
(11:41:55 AM) thinkjson: it's a trojan, so he can look at what you're looking at
(11:41:59 AM) thinkjson: j/k
(11:42:00 AM) pstoellberger: lol
(11:42:06 AM) pstoellberger: i just commented about 10 lines of code
(11:42:21 AM) pstoellberger: you can do the changes yourself if you want :)
(11:42:37 AM) cwarden: CheatCellSetFormatter.java?
(11:43:41 AM) pstoellberger: yep
(11:44:16 AM) pstoellberger: line 535-551
(11:44:28 AM) pstoellberger: thats really paranoid :P
(11:44:56 AM) cwarden: half paranoia. half trying to learn a little about the architecture.
(11:45:07 AM) cwarden: anyway, you fixed it
(11:45:11 AM) cwarden: thanks!
(11:45:16 AM) pstoellberger: so it helped?
(11:45:26 AM) pstoellberger: hm yeah i knew that we do lots of stuff we dont have to
(11:45:47 AM) pstoellberger: in the code of those formatters might be dragons
(11:46:04 AM) pstoellberger: rewriting them is on my todo :)

http://analytical-labs.com/0001-Don-t-automatically-retrieve-children.patch

Output columns not ordered correctly

In the output table the columns order doesn't follow what specified in the columns definition.
If you look at the attached image you can clearly see that the Units ordered measure must precede the
Units shipped measure but in the output table it doesn't happen.

Rewrite BasicRepositoryResource to allow pluggable persistance implementations

The restful resource BasicRepositoryResource performs saves of queries to files directly, it does not delegate off to another class. In order to embed saiku in existing applications it would be benefical to have some sort of query persistence service which it delegates to and would allow for alternative implementations to be written and plugged in (db persistance for example).

Selection on dimension

When you try to select the members on a dimension in a query the selection is not taken into account.

Pentaho BI server 3.8 + Saiku Plugin + Firefox 6.0.2 (also IE 8 )

Enable properties (for members and cells) as an optional REST point

Create and enable an optional query param for many metadata and query dataset REST endpoints that allow for showing properties or not.

Enable all the properties sections (that have otherwise been disabled/commented out) along with modify constructors of objects that get json-i-fied to ensure they aren't output if not asked for specifically and are output if asked for specifically.

Default should be for off, queryparam name should be
showProps = true/false

Provide helpful info to the user

I'm not sure if you can put textual help info into the schema, but if you can it would be nice to display this when the cube is selected.

In fact it would be nice if you could do this in some wiki style way. Allow users to annotate saved queries, and indeed cubes themselves! :)

Drive that on further, allow saving of resultsets, and you can annotate those too! Wouldnt that be cool....

Group and Report Totals

Add ability to query and see per group totals. Basically, in addition to displaying just the lowest level cells, retrieve the totals for other levels of granularity and display those.

MDX endpoint is inconsistent

The /mdx endpoint sends application/json Content-type but returns text. Backbone can't read the returned data.

Request:
Host saiku-ui.tiemonster.cloud9ide.com
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept application/json, text/javascript, /*; q=0.01
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,;q=0.7
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://saiku-ui.tiemonster.cloud9ide.com/

Expected response:
Date Wed, 27 Jul 2011 17:33:34 GMT
Content-Type application/json
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 124
Keep-Alive timeout=15, max=91
Connection Keep-Alive

{ mdx: "SELECT
NON EMPTY {Hierarchize({[Gender].[Gender].Members})} ON COLUMNS,
NON EMPTY {Hierarchize({[Product].[Product Family].Members})} ON ROWS
FROM [Sales 2]" }

Returned response:
Date Wed, 27 Jul 2011 17:33:34 GMT
Content-Type application/json
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 124
Keep-Alive timeout=15, max=91
Connection Keep-Alive

SELECT
NON EMPTY {Hierarchize({[Gender].[Gender].Members})} ON COLUMNS,
NON EMPTY {Hierarchize({[Product].[Product Family].Members})} ON ROWS
FROM [Sales 2]

Building queries with dimensions with multiple hierarchies

Hello,
I'm having some problems when I select a member in a parent-child hierarchie with some ancestors.
For example:
If I build by my own query: "SELECT
NON EMPTY {Hierarchize({[Dim1].[member1]})} ON COLUMNS,
NON EMPTY {Hierarchize({{[Dim2].[All Dim2]},{[Parent1].[Child1]},{[Parent1].[Child1].[Child2]},{[Parent1].[Child1].[Child2].[Child3]}})} ON ROWS
FROM [Horas]"
this works perfectly and shows all hierarchies with all Totals.

But if I try to do this in a new query in saiku, selecting in columns member1 and in rows Child3 respectively, this throws an exception like this:

"org.olap4j.OlapException: Unable to find a member with name [[Parent1],[Child2],[Child3]]"
As you can see, it try to build a query skipping some members in the hierarchie.

I guess that this is a bug.

Ability to add a calculated member (or member property)

Calculated members and calculated member properties that are part of just the MDX are useful for both user facing features (YTD totals) but also are an enabling piece to create a UI to do conditional formatting, outside drilling, etc.

Add ability to Saiku (and potential OLAP4J since I just looked and it doesn't appear the query model currently has the ability to do this) to create per query Calculated Members and Calculated Member properties.

find a better way to manage cache

see brief discussion in IRC:

codek: for the time being, you could switch of caching at schema level
it had dawned on me that we have no way to flush the cache at the mo

cool, we need that admin console asap ;)
what we should create is a rest endpoint for cache clearing, so when your ETL is complete it can hit a Saiku URL and flush the cache for you

Acces to a query restricted

The probleme is when you save a query with a login like admin, a
different

person with diferrent login can acces to the query who were saved by admin login

No Cubes being displayed in Saiku-ui

This is an amazing tool, and I am tremendously excited to use it. I'm having some trouble getting everything hooked up, though. I'm running Mondrian, Saiku, and Saiku-ui on a Tomcat server on Ubuntu, with a Mysql database storing the data. I have set up a datasource/catalog for Mondrian, and can access basic MDX queries through its web interface. I have tried to set up Saiku to use the same data source (following instructions at http://projects.analytical-labs.com/knowledgebase/articles/3, adding a file to WEB-INF/classes/saiku-datasources), but am not sure if I have set it up correctly or not, because when I access the Saiku-ui, there are no Cubes available in the drop-down.

I get the following information from /saiku/rest/saiku/admin/datasources:

[{"name":"Users","properties":{"location":"jdbc:mondrian:Jdbc=jdbc:mysql://localhost/grockit?user=root&password=password;JdbcUser=root;JdbcPassword=password;JdbcDrivers=com.mysql.jdbc.Driver;Catalog=/WEB-INF/queries/Users.xml","password":"password","name":"Users","type":"OLAP","driver":"mondrian.olap4j.MondrianOlap4jDriver","username":"root"},"type":"OLAP"}]

Is there a good place to look for logs to help find debugging information, or even just to know whether or not the saiku server has successfully processed and accessed the data source?

Many thanks -- I'm very excited about using Saiku!

MDX for filter

the filter axis is using hierarchyConsistent and crossjoins for mdx
needs to be reviewed

Parameters to query result requests

I would like to pass parameters in the request URL to be included in the MDX query. I'm not sure what the interface looks like, but conceptually, I'd like to be able to do something like /saiku/rest/saiku/user/query/(id)/result?gender=male and /saiku/rest/saiku/user/query/(id)/result?gender=female.

Properties endpoint is b0rked

Instead of the properties property on the properties endpoint, this endpoint should accept arbitrary key-value pairs in the body itself

For example:

Old request
properties saiku.olap.query.automatic_execution false
saiku.olap.query.nonempty true
saiku.olap.query.nonempty.rows true
saiku.olap.query.nonempty.columns true
saiku.olap.query.drillthrough true

New request
saiku.olap.query.automatic_execution false
saiku.olap.query.nonempty true
saiku.olap.query.nonempty.rows true
saiku.olap.query.nonempty.columns true
saiku.olap.query.drillthrough true

cancel olap statements

see olap4j test code:

final OlapStatement olapStatement = olapConnection.createStatement();
final Throwable[] exceptions = {null};
new Thread(
new Runnable() {
public void run() {
try {
Thread.sleep(1000);
olapStatement.cancel();
} catch (Throwable e) {
exceptions[0] = e;
}
}
}
).start();

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.