# BI Service

# Saiku BI server

# Automatic installation

The TS commandline tools can automate the installation

1. Run **tsinstallsaiku &lt;instance name&gt;**
2. Enable bcrypt passwords for users

Note: The users wont be able to login to Saiku before their password have been updated to bcrypt

# Manual installation

### <span class="mw-headline" id="bkmrk-preparations-1">Preparations</span>

1. Download Saiku binaries 
    - [http://meteorite.bi/saiku/download](http://meteorite.bi/saiku/download)
2. Install the Saku client ("Saiku UI WAR 2.5") 
    - The client is a single html file with a lot of built in JavaScript functionality 
        - Option 1: Unpack the files to webapps\\ROOT
        - Option 2: Create new folder in webapps and unpack the files
        - Option 3: Unpack and merge into the TempusServa folder
3. Install the Saku backend ("Saiku Backend WAR 2.5") 
    - Rename the war file to **saiku.war** and place in webapps
4. Remove default acess \[IMPORTANT\] 
    - Change default username/passwords in &lt;webapps&gt;\\saiku\\WEB-INF\\users.properties
    - Restart the server
    - Verify that the default credentials are NOT working
    - Verify that new credentials ARE working

### <span class="mw-headline" id="bkmrk-using-the-tempus-ser-1">Using the Tempus Serva OLAP cubes</span>

In order to expose the cubes Saiku needs a connection string to the database. The connection includes a reference to the OLAP schema used in Tempus Serva.

#### <span class="mw-headline" id="bkmrk-scenario-1%3A-installe-1">Scenario 1: Installed at SAME server</span>

1. Create a new file **tempusserva** in &lt;Saiku backend server&gt;\\WEB-INF\\classes\\tempusserva\\saiku-datasources\\ with the following contents

```
 type=OLAP
 name=tempusserva
 driver=mondrian.olap4j.MondrianOlap4jDriver
 location=jdbc:mondrian:Jdbc=jdbc:mysql://localhost/tslive;Catalog=<Absolute path to tsCubeDefinitions.xml>;JdbcDrivers=com.mysql.jdbc.Driver;
 username=root
 password=TempusServa
```

Note: For safety reasons you should consider letting Saiku having its own database user. In that way you can later restrict access to certain data, and replace table access with views

#### <span class="mw-headline" id="bkmrk-scenario-1%3A-installe-3">Scenario 1: Installed at OTHER server</span>

1. Create a new remote user in the MySQL database
2. Create a new folde named **tempusserva** in: &lt;Saiku backend server&gt;\\WEB-INF\\classes
3. Copy the file &lt;Tempus Serva application&gt;\\WEB-INF\\queries\\tsCubeDefinitions.xml to &lt;Saiku backend server&gt;\\WEB-INF\\classes\\tempusserva\\
4. Create a new file **tempusserva** in &lt;Saiku backend server&gt;\\WEB-INF\\classes\\tempusserva\\saiku-datasources\\ with the following contents

```
 type=OLAP
 name=tempusserva
 driver=mondrian.olap4j.MondrianOlap4jDriver
 location=jdbc:mondrian:Jdbc=jdbc:mysql://<dbHostname>/tslive;Catalog=res:tempusserva\tsCubeDefinitions.xml;JdbcDrivers=com.mysql.jdbc.Driver;
 username=<newRemoteUsername>
 password=<newRemotePassword>
```

Note: A service for remote HTTP retrieval of the schema will be implemented late 2014, so the OLAP schema can be retrieved on the fly from the remote Saiku server

# Usage

Setting up a parallel BI server will provide users with a drag-and-drop OLAP tool.

Positives

- Beautiful and intuitive UI
- Can reuse existing OLAP scheme from the builtin OLAP mavigator

Negatives

- User authentication must be handled seperately
- Currently no support for dimension properties