Data Sources

A data source is a resource in the repository that specifies how and where to obtain the data displayed by reports, Domains, Ad Hoc views, and OLAP views. Administrators must define data sources before uploading reports that rely on them. Typically, a data source specifies the URI of the database server and the details you need to access it, such as a user name and password.

JasperReports Server provides data source types for relational databases, most flavors of big data, and for specialized data such as Amazon Web Services and JavaBean data. Virtual data sources allow you to combine several data sources into one.

JasperReports Server can access any relational database that supports the SQL query language through the JDBC (Java DataBase Connectivity) API. In this case, you can configure two types of data sources in the repository:

JDBC data source – Establishes a direct connection to the database server using its JDBC driver. After installation, JasperReports Server includes JDBC drivers to access the most popular databases: MySQL, PostgreSQL, Oracle, SQL Server, DB2. As of release 6.2.1, the server also includes a JDBC driver that can access Hadoop-Hive, MongoDB, Cassandra, Impala, Redshift, and SparkSQL. If the driver for your database is not installed, or you want to use alternate drivers, the system admin can upload and manage JDBC drivers through the UI. With JDBC data sources, JasperReports Server configures and manages the connections to the database. By default, the maximum number of simultaneous connections for each data source is 20.
JNDI data source – Relies on the JNDI (Java Naming and Directory Interface) service of your application server to access a database connection. You must first configure your application server to install its JDBC drivers and configure its database connections. The configuration of the application server determines the number of shared connections. Note that the application server connects to the database using JDBC, meaning that JNDI data sources are available for all databases that support JDBC.

Big data stores that have custom data sources

Cassandra – This data source introduced in JasperReports Server 5.6 is different from the community-contributed data source for Cassandra. This data source supports the Cassandra Query Language CQL 3. JasperReports Server also provides a JDBC driver for Cassandra data sources.
MongoDB – This custom data source for MongoDB supports Jaspersoft's own MongoDB Query Language. A MongoDB JDBC driver is also available.

Finally, JasperReports Server also supports some specialized data sources:

Amazon Web Services (AWS) data source – Accesses data stored in your AWS data store using JasperReports Server, either on-premises or in the cloud.
Virtual data source – Allows you to combine multiple data sources into a single data source and join them within a Domain. You can also wrap a data source for big data to be used in a Domain.
File data source – Allows you to generate reports based on data in XML and JSON format.
Bean data source – Allows you to access data encapsulated in JavaBeans.
Internal diagnostic data source – A custom data source for the server's own diagnostic data. The diagnostic information is available only to system admins (superuser by default). For more information, see Using the Diagnostic Data in Reports.

In the case of analysis data, JasperReports Server supports OLAP data sources (such as Mondrian and XML/A connections). For information about analysis data sources, refer to the Jaspersoft OLAP Ultimate Guide.

You can extend JasperReports Server to support any custom data source. Custom data sources consist of Java implementation classes, a message catalog, and a Spring bean definition. For more information about custom data sources, see the JasperReports Server Ultimate Guide.

This chapter contains the following sections:

Attributes in Data Source Definitions
JDBC Data Sources
Managing JDBC Drivers
JNDI Data Sources
AWS Data Sources
Cassandra Data Sources
Hadoop-Hive Data Sources
MongoDB Data Sources
Virtual Data Sources
File Data Sources
Bean Data Sources