Packt has announced the $5 eBook Bonanza


Today I want to remark this excellent campaign to get Pentaho and BI books!!

The $5 eBook Bonanza is hereImagee!
Here is the campaign link http://bit.ly/1jdCr2W . Treat yourself to the eBook or Video of your choice for just $5 and get as many as you like until January 3rd 2014. To get you started, we’ve put together the Top 20 titles of 2013 for you to pick up here. But don’t forget, you can get ANY eBook or Video for $5 in this offer – browse all our categories at the bottom of this page.

$5 ANY eBook/Video – includes Top 20 of 2013
As many times as you like until January 3rd

Have a great Christmas ahead

 
Wishes and Regards,

Advertisements

Pentaho BI Server 5.0.1CE MySQL installation guide


How to install Pentaho BI Server 5.0.1 Community Edition with MySQL 5.x and Windows

Hi all this is David Fombella and I would like to share a way to deploy Pentaho Community last edition installing its security into a MySQL database server.

Help me keep the guides up to date and the posts flowing by donating, every small amount of money helps!

btn_donatecc_lg

Here is the download link to get the biserver 5.0.1 CE .

http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/5.0.1-stable/biserver-ce-5.0.1-stable.zip/download

Creation of Databases & Users

In our first stage we are going to create hibernate database and the user hibuser. To achieve this execute the SQL script  create_repository_mysql.sql included at biserver-ce\data\mysql5

SQL code

CREATE DATABASE IF NOT EXISTS `hibernate` DEFAULT CHARACTER SET latin1;
USE hibernate;
GRANT ALL ON hibernate.* TO 'hibuser'@'localhost' identified by 'password';
commit;

Next we create quartz database and the user pentaho_user. You only need to execute the SQL script  create_quartz_mysql.sql included at biserver-ce\data\mysql5

CREATE DATABASE IF NOT EXISTS `quartz` DEFAULT CHARACTER SET latin1;

grant all on quartz.* to 'pentaho_user'@'localhost' identified by 'password';

USE `quartz`;

DROP TABLE IF EXISTS QRTZ5_JOB_LISTENERS;
DROP TABLE IF EXISTS QRTZ5_TRIGGER_LISTENERS;
DROP TABLE IF EXISTS QRTZ5_FIRED_TRIGGERS;
DROP TABLE IF EXISTS QRTZ5_PAUSED_TRIGGER_GRPS;
DROP TABLE IF EXISTS QRTZ5_SCHEDULER_STATE;
DROP TABLE IF EXISTS QRTZ5_LOCKS;
DROP TABLE IF EXISTS QRTZ5_SIMPLE_TRIGGERS;
DROP TABLE IF EXISTS QRTZ5_CRON_TRIGGERS;
DROP TABLE IF EXISTS QRTZ5_BLOB_TRIGGERS;
DROP TABLE IF EXISTS QRTZ5_TRIGGERS;
DROP TABLE IF EXISTS QRTZ5_JOB_DETAILS;
DROP TABLE IF EXISTS QRTZ5_CALENDARS;

CREATE TABLE QRTZ5_JOB_DETAILS
  (
    JOB_NAME  VARCHAR(200) NOT NULL,
    JOB_GROUP VARCHAR(200) NOT NULL,
    DESCRIPTION VARCHAR(250) NULL,
    JOB_CLASS_NAME   VARCHAR(250) NOT NULL,
    IS_DURABLE VARCHAR(1) NOT NULL,
    IS_VOLATILE VARCHAR(1) NOT NULL,
    IS_STATEFUL VARCHAR(1) NOT NULL,
    REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
    JOB_DATA BLOB NULL,
    PRIMARY KEY (JOB_NAME,JOB_GROUP)
);

CREATE TABLE QRTZ5_JOB_LISTENERS
  (
    JOB_NAME  VARCHAR(200) NOT NULL,
    JOB_GROUP VARCHAR(200) NOT NULL,
    JOB_LISTENER VARCHAR(200) NOT NULL,
    PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
    FOREIGN KEY (JOB_NAME,JOB_GROUP)
        REFERENCES QRTZ5_JOB_DETAILS(JOB_NAME,JOB_GROUP)
);

CREATE TABLE QRTZ5_TRIGGERS
  (
    TRIGGER_NAME VARCHAR(200) NOT NULL,
    TRIGGER_GROUP VARCHAR(200) NOT NULL,
    JOB_NAME  VARCHAR(200) NOT NULL,
    JOB_GROUP VARCHAR(200) NOT NULL,
    IS_VOLATILE VARCHAR(1) NOT NULL,
    DESCRIPTION VARCHAR(250) NULL,
    NEXT_FIRE_TIME BIGINT(13) NULL,
    PREV_FIRE_TIME BIGINT(13) NULL,
    PRIORITY INTEGER NULL,
    TRIGGER_STATE VARCHAR(16) NOT NULL,
    TRIGGER_TYPE VARCHAR(8) NOT NULL,
    START_TIME BIGINT(13) NOT NULL,
    END_TIME BIGINT(13) NULL,
    CALENDAR_NAME VARCHAR(200) NULL,
    MISFIRE_INSTR SMALLINT(2) NULL,
    JOB_DATA BLOB NULL,
    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
    FOREIGN KEY (JOB_NAME,JOB_GROUP)
        REFERENCES QRTZ5_JOB_DETAILS(JOB_NAME,JOB_GROUP)
);

CREATE TABLE QRTZ5_SIMPLE_TRIGGERS
  (
    TRIGGER_NAME VARCHAR(200) NOT NULL,
    TRIGGER_GROUP VARCHAR(200) NOT NULL,
    REPEAT_COUNT BIGINT(7) NOT NULL,
    REPEAT_INTERVAL BIGINT(12) NOT NULL,
    TIMES_TRIGGERED BIGINT(10) NOT NULL,
    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
        REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE QRTZ5_CRON_TRIGGERS
  (
    TRIGGER_NAME VARCHAR(200) NOT NULL,
    TRIGGER_GROUP VARCHAR(200) NOT NULL,
    CRON_EXPRESSION VARCHAR(200) NOT NULL,
    TIME_ZONE_ID VARCHAR(80),
    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
        REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE QRTZ5_BLOB_TRIGGERS
  (
    TRIGGER_NAME VARCHAR(200) NOT NULL,
    TRIGGER_GROUP VARCHAR(200) NOT NULL,
    BLOB_DATA BLOB NULL,
    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
        REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE QRTZ5_TRIGGER_LISTENERS
  (
    TRIGGER_NAME  VARCHAR(200) NOT NULL,
    TRIGGER_GROUP VARCHAR(200) NOT NULL,
    TRIGGER_LISTENER VARCHAR(200) NOT NULL,
    PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
    FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
        REFERENCES QRTZ5_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE QRTZ5_CALENDARS
  (
    CALENDAR_NAME  VARCHAR(200) NOT NULL,
    CALENDAR BLOB NOT NULL,
    PRIMARY KEY (CALENDAR_NAME)
);

CREATE TABLE QRTZ5_PAUSED_TRIGGER_GRPS
  (
    TRIGGER_GROUP  VARCHAR(200) NOT NULL,
    PRIMARY KEY (TRIGGER_GROUP)
);

CREATE TABLE QRTZ5_FIRED_TRIGGERS
  (
    ENTRY_ID VARCHAR(95) NOT NULL,
    TRIGGER_NAME VARCHAR(200) NOT NULL,
    TRIGGER_GROUP VARCHAR(200) NOT NULL,
    IS_VOLATILE VARCHAR(1) NOT NULL,
    INSTANCE_NAME VARCHAR(200) NOT NULL,
    FIRED_TIME BIGINT(13) NOT NULL,
    PRIORITY INTEGER NOT NULL,
    STATE VARCHAR(16) NOT NULL,
    JOB_NAME VARCHAR(200) NULL,
    JOB_GROUP VARCHAR(200) NULL,
    IS_STATEFUL VARCHAR(1) NULL,
    REQUESTS_RECOVERY VARCHAR(1) NULL,
    PRIMARY KEY (ENTRY_ID)
);

CREATE TABLE QRTZ5_SCHEDULER_STATE
  (
    INSTANCE_NAME VARCHAR(200) NOT NULL,
    LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
    CHECKIN_INTERVAL BIGINT(13) NOT NULL,
    PRIMARY KEY (INSTANCE_NAME)
);

CREATE TABLE QRTZ5_LOCKS
  (
    LOCK_NAME  VARCHAR(40) NOT NULL,
    PRIMARY KEY (LOCK_NAME)
);

INSERT INTO QRTZ5_LOCKS values('TRIGGER_ACCESS');
INSERT INTO QRTZ5_LOCKS values('JOB_ACCESS');
INSERT INTO QRTZ5_LOCKS values('CALENDAR_ACCESS');
INSERT INTO QRTZ5_LOCKS values('STATE_ACCESS');
INSERT INTO QRTZ5_LOCKS values('MISFIRE_ACCESS');
commit;

Finally we create jackrabbit database and the user jcr_user. You only need to execute the SQL script  create_jcr_mysql.sql included at biserver-ce\data\mysql5

CREATE DATABASE IF NOT EXISTS `jackrabbit` DEFAULT CHARACTER SET latin1;
grant all on jackrabbit.* to 'jcr_user'@'localhost' identified by 'password';
commit;

Configuring JDBC Security

This section describes how to configure the Pentaho BI Platform JDBC security to use a MySQL server, this means the Pentaho BI Platform will now point to the hibernate database on the MySQL server instead of the packaged HSQL in memory database.

1. applicationContext-spring-security-hibernate.properties.

Edit the file pentaho-solutions\system\applicationContext-spring-security-hibernate.properties.

Original code

jdbc.driver=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://localhost:9001/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.HSQLDialect
 

Make the changes necessary to get the snippet of code below

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.MySQLDialect
 

    2. hibernate-settings.xml

Edit the file pentaho-solutions\system\hibernate\hibernate-settings.xml.

Original code

<config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file>
 

Make the changes necessary to get the snippet of code below

<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
 

3. mysql5.hibernate.cfg.xml

Edit the file pentaho-solutions\system\hibernate\mysql5.hibernate.cfg.xml .

You do not need to make any changes to this file if you would like to use the default user hibuser. However, if you would like to specify your custom user, change connection.username and password  properties.

Original code

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="connection.username">hibuser</property>
<property name="connection.password">password</property>
 

4. quartz.properties

Edit the file pentaho-solutions\system\quartz\quartz.properties .

Original code

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
 

Make the changes necessary to get the snippet of code below

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
 

Configuring Hibernate and Quartz

Hibernate and Quartz need to specifically use the hibernate and quartz databases which were created on the MySQL server. To do so modifications need to be executed in context.xml file .

5. context.xml

Edit the file tomcat\webapps\pentaho\META-INF\context.xml.

Remember deleting tomcat\conf\Catalina\localhost\pentaho.xml , Pentaho creates  on startup pentaho.xml as a copy of context.xml.

Original code

<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/hibernate"
validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES" />

<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/quartz"
validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES"/>
 

Make the changes necessary to get the snippet of code below

<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
validationQuery="select 1" />

<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
validationQuery="select 1"/>
 

6. repository.xml

Edit the file pentaho-solutions\system\jackrabbit\repository.xml.

One of the new features of pentaho 5 is the use of Jackrabbit content repository.

http://jackrabbit.apache.org/repository-server-howto.html

jlogo

Comment the original code in the FileSystem part

<!--
Replace the following "FileSystem" XML node to use supported databases as
the repository file system.  Change the url, user, password and other parameters
to suit your db installation.  The schemaObjectPrefix should
be a unique prefix that will be prepended to the table names.
NOTE: The database must be pre-created in and match the parameters.  See Jackrabbit
documentation for further explanation.
-->
<FileSystem>
<param name="path" value="${rep.home}/repository"/>
</FileSystem>
 

Make this code active on FileSystem part of the code

<FileSystem>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="password"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="fs_repos_"/>
</FileSystem>
 

Comment the original code in the DataStore part

<!--
data store configuration
-->
<!--
Replace the following "DataStore" XML node to use supported databases as the data
store for the repository.  Change the url, user, password and other parameters
to suit your db installation.  The schemaObjectPrefix should
be a unique prefix that will be prepended to the table names.
NOTE: The database must be pre-created in and match the parameters.  See Jackrabbit
documentation for further explanation.
-->
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
 

Make this code active on DataStore part of the code

 <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
    <param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
    <param name="user" value="jcr_user"/>
    <param name="password" value="password"/>
    <param name="databaseType" value="mysql"/>
    <param name="driver" value="com.mysql.jdbc.Driver"/>
    <param name="minRecordLength" value="1024"/>
    <param name="maxConnections" value="3"/>
    <param name="copyWhenReading" value="true"/>
    <param name="tablePrefix" value=""/>
    <param name="schemaObjectPrefix" value="ds_repos_"/>
  </DataStore>

Below the security part comment the original code in the FileSystem Workspace part

<!--
virtual file system of the workspace:
class: FQN of class implementing the FileSystem interface
-->
<!--
Replace the following "FileSystem" XML node to use supported databases as
the repository file system.  Change the url, user, password and other parameters
to suit your db installation.  The schemaObjectPrefix should
be a unique prefix that will be prepended to the table names.
NOTE: The database must be pre-created in and match the parameters.  See Jackrabbit
documentation for further explanation.
-->
<FileSystem>
<param name="path" value="${wsp.home}"/>
</FileSystem>
 

Make this code active on FileSystem WorkSpace part of the code

<FileSystem>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="password"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="fs_ws_"/>
</FileSystem>

Below  FileSystem Workspace part you will find the PersistenceManager part

<!--
persistence manager of the workspace:
class: FQN of class implementing the PersistenceManager interface
-->
<!--
Replace the following "PersistenceManager" XML node to use a supported database as the
persistenanceManager store.  Change the url, user, password and parameters
to suit your db installation.  The schemaObjectPrefix should
be a unique prefix that will be prepended to the table names.
NOTE: The database must be pre-created in and match the parameters.  See Jackrabbit
documentation for further explanation.
-->

<PersistenceManager>
<param name="url" value="jdbc:h2:${wsp.home}/db"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
</PersistenceManager>

 

Make this code active on PersistenceManager part of the code

<PersistenceManager>
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
<param name="user" value="jcr_user" />
<param name="password" value="password" />
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="${wsp.name}_pm_ws_"/>
</PersistenceManager>

Below you will find FileSystem Versioning part

<!--
Configures the filesystem to use for versioning for the respective
persistence manager
-->
<!--
Replace the following "FileSystem" XML node to use a supported database as
the repository file system.  Change the url, user, password and other parameters
to suit your db installation.  The schemaObjectPrefix should
be a unique prefix that will be prepended to the table names.
NOTE: The database must be pre-created in and match the parameters.  See Jackrabbit
documentation for further explanation.
-->
<FileSystem>
<param name="path" value="${rep.home}/version" />
</FileSystem>
 

Make this code active on FileSystem Versioning part

<FileSystem>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="password"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="fs_ver_"/>
</FileSystem>

Below you will find PersistenceManager Versioning part

<!--
Configures the persistence manager to be used for persisting version state.
Please note that the current versioning implementation is based on
a 'normal' persistence manager, but this could change in future
implementations.
-->
<!--
Replace the following "PersistenceManager" XML node to use a supported database as the
persistenanceManager store.  Change the url, user, password and parameters
to suit your db installation.  The schemaObjectPrefix should
be a unique prefix that will be prepended to the table names.
NOTE: The database must be pre-created in and match the parameters.  See Jackrabbit
documentation for further explanation.
-->
<PersistenceManager>
<param name="url" value="jdbc:h2:${rep.home}/version/db"/>
<param name="schemaObjectPrefix" value="version_"/>
</PersistenceManager>

Make this code active on PersistenceManager Versioning part

<PersistenceManager>
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
<param name="user" value="jcr_user" />
<param name="password" value="password" />
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="pm_ver_"/>
</PersistenceManager>

Quit HSQL Hypersonic automatic startup

By default  Hypersonic database starts up automatically – to avoid this  comment or delete locate the following snippets of code from web.xml:

<!-- [BEGIN HSQLDB DATABASES] -->
<context-param>
<param-name>hsqldb-databases</param-name>
<param-value>sampledata@../../data/hsqldb/sampledata,hibernate@../../data/hsqldb/hibernate,quartz@../../data/hsqldb/quartz</param-value>
</context-param>
<!-- [END HSQLDB DATABASES] -->
 

Second  section you need to comment or eliminate

<!-- [BEGIN HSQLDB STARTER] -->
<listener>
<listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class>
</listener>
<!-- [END HSQLDB STARTER] -->
 

Sign into the user console

Using this URL http://localhost:8080/pentaho you can reach pentaho login screen:

login biserver5Once you are into the user console, you will see  Home perspective with several buttons:

  • Browse Files: Navigate through Public and Home root directories and Cut, Copy, Share, Download, Schedule all contents included in Pentaho ( PRPT reports,  sequence actions, jobs, transformations, olap views, saiku views —)
  • Create New: (JPivot View , Add components via Marketplace)
  • Manage DataSources: Create, Edit and Delete  JDBC datasources, Mondrian metadata sources  and Metadata.xmi reporting ad hoc datasources
  • Documentation: Documentation for Pentaho 5.0

PUC biserver5

One of the main changes of Pentaho 5 is the fact that there isn’t an external Administration Console and administration capabilities are included in the User Console. In this version our “ancient”  friend joe has been replaced with the admin user. Besides the new roles available are the following:

  • Administrator
  • Power User
  • Report Author
  • Business Analyst

You can access in the administration perspective in the user console using the dropdown and selecting Administration:

administration biserver5Then you will reach the administration perspective

administration roles biserver5

Book Review: Pentaho 5.0 Reporting by Example: Beginner’s Guide


Hello friends today I am going to review Pentaho 5.0 Reporting by Example: Beginner’s Guide  book:

Pentaho5_Libro cover

Below you can check the link to purchase it:

http://www.packtpub.com/pentaho-5-0-reporting-by-example-beginners-guide/book

Book review by: David Fombella Pombal (twitter: @pentaho_fan)

Book Title: Pentaho 5.0 Reporting by Example: Beginner’s Guide

Authors: Mariano García Mattío, Dario R. Bernabeu

Paperback: 329 pages

I like this book because if you are a noob in Pentaho Reporting you will gain a lot of knowledge of this excellent tool, besides if you are advanced with PRD you can use it as reference book.

The best of this book is that uses Pentaho 5 recent released version and shows how to publish and interacting with reports created with Report Designer 5 into the new Business Analytics server.

You should read this book because you will learn all details of this awesome tool. Maybe you have created reports using PRD but after reading this book you will improve your reporting skills.

Rating: 8 out of 10

Pentaho 5

Chapter List

Chapter 1 – What is Pentaho Report Designer?
In this chapter it is explained what is Pentaho Report Designer and some examples of typical reports are listed: Transactional Reporting, Tactical Reporting, Strategic Reporting, and Helper Reporting. Besides it is interesting to learn about the different versions of PRD along history.

Chapter 2 – Installation and Configuration
This chapters shows us how to download, install, and configure Pentaho Reporting Designer new version 5.0. Maybe it is not funny but this chapter is useful for beginners.

Chapter 3 – Start PRD and the User Interface (UI) Layout
In this chapter you will learn how to start PRD in different operating systems. Different areas of its UI are displayed too.

Pentaho5report

Chapter 4 – Instant Gratification – Creating Your First Report with PRD
Explains how to create an initial report, how to define its data sets and how to configure the report’s sections, how to add and set insertable objects and functions, and how to preview and export your report in all available formats suchs as CSV, PDF, HTML, Excel/Excel 2007. This topic is excellent to introduce non technical users to all visualization capabilities that Pentaho Report Designer includes.

Chapter 5 – Adding a Relational Data Source
Here we will create a copy of the report created in the previous chapter and modify it so that it takes its data from a relational source. We will explain what JDBC is, what a JDBC driver is, and how it is used. Using a JDBC driver you can connect to all available database systems: MySQL, Postgres, Oracle, Infobright, Vertica, Monet, Hadoop, SQL Server, PALO, Hypersonic, CouchDB…

Datasources Pentaho5

Chapter 6 – Adding Groups
In this chapter, we will use the report we created in the previous chapter and configure it to work with groups. The information included in this chapter allows us creating reports with partial group calculations and subtotals.

Chapter 7 – Adding Parameters
This chapter will be dedicated to parameters. Through the use of parameters, the final user will be able to interact with the report. A parameter is usually represented through a user interface component, which allows the selection or input of values. Pentaho Report Designer eases the task of parameter creation by providing us a simple and intuitive interface such as : Dropdowns, MultiValue Lists, Date Pickers, Text search components…

Parameters pentaho5

Chapter 8 – Using Formulas in Our Reports
In this chapter, we will talk about formulas (PRD uses OpenFormula ). We will explain how to create them and use them. As in previous chapters, we will use a practical example to guide us as we explain how to work with formulas, creating general-use formulas that we can use as an object and specific-use formulas that we can apply to our objects’ styles and attributes. By the end of the practical example, we will see how the combination of formulas and parameters opens up new horizons for the creation and personalization of reports and allows us great flexibility in design.

Chapter 9 – Adding Charts
This part of the book is dedicated to charts. We will talk about chart functions, good and bad practices of using charts, and how to create and configure our own chartsamong other topics. Report designer uses JFreeChart to create charts. By explaining each type of chart (Bar chart, Line chart, Pie chart, Area chart, Barline chart, Ring chart, Bubble chart, Scatter-plot chart, XY chart, XY line chart, XY area chart, Waterfall chart, Radar chart, XY area line chart) , we will be able to understand which chart to use for a particular need, and how to configure the chart so that its look and feel is what we want. We will also see how charts allow us to show data from different perspectives and add value to our reports.

Radar chart

Chapter 10 – Adding Subreports
This chapter is dedicated to Subreports. We will see what Subreports are and how they work and learn about their specific features. We will also talk about the relation that exists between the main Report and its Subreports. We will be able to add information to our Reports in the form of tables, charts, and so on, whether this information is connected to our data set or not. This gives us an idea of the potential that Subreports provide.

Chapter 11 – Publishing and Running Reports in Pentaho BA Server
In this chapter we talk about Pentaho, the fastest growing, most popular, and most heavily invested in Open Source Business Intelligence (OSBI) suite in recent years. We analyze its principal characteristics and the principal projects included in the suite. With Pentaho Business Analytics Business Analytics Server, we have full BI analytic power at our fingertips through a GNU General Public License (GPL). We will see how Pentaho Report Designer (PRD) and Pentaho BA Server interact, and how we can use them to run our reports from Pentaho User Console (PUC). At the end of this chapter, we will have Pentaho BA Server running and will be able to access our reports from a web browser. Pentaho can run on any compatible application servers with JEE architectures such as JBOSS, Tomcat, WebSphere, WebLogic, Oracle AS…

Chapter 12 – Making a Difference – Reports with Hyperlinks and Sparklines
In this chapter we will see how to create and configure Hyperlinks. Hyperlinks give us great flexibility in designing our reports, as they let us drill down. Using Hyperlinks, we can create a network of reports and also re-use reports. Here we will also see a very interesting object that we can add to our reports, which will present specific information graphically: the sparkline.

Hyperlinkp5

Chapter 13 –  Environment Variables, Stylesheets, and Crosstabs
This chapter is dedicated to environment variables, stylesheets, and crosstabs. We will treat each of them in detail, defining what they are about and how to implement them in Pentaho Report Designer (PRD). Using Environment Variables allows us to interact with the BA Server that is executing our reports. That is, we can obtain the username of the user who is currently logged in and his or her roles, among other information. With Style Sheets, we can configure our report so that its look and feel varies according to certain CSS Rules. These CSS Rules are easy to configure, save, and import. Finally, we will take a look at one of PRD’s new jewels, Crosstabs. Using Crosstabs, we can show OLAP-style analytic information in our reports.

Chapter 14 – PRD Reports Embedded in Web Applications
This chapter attempts at taking not only one step forward with PRD, but many. Once this chapter is finished and the concepts presented here are understood, we will be able to create a web portal that allows users to access PRD reports, send parameters to them, and select the final presentation format. We will also be able to perform every configuration needed to have the portal working as well as have it packaged so that we can transport it and deploy it in a different environment with little modification.