JasperReports

JasperReports Server это web-приложение на java (spring, hibernate, axis), бегающее на tomcat сервере (по умолчанию — http://localhost:8080/jasperserver/ ) с postgres базой данных. Основная цель — бизнес аналитика, тоесть получение агрегированных данных для отчётности по продажам, пользователям, их поведению.

Как альтернатива вы конечно можете всё написать сами, но готовое решение легче в обучении для далёких от программирования людей. Аналогичные продукты этой многомиллиардной индустрии — CrystalReportsPentahoWindwardSpagoBISASBiRT. Они часто ещё называются складами данных, поскольку у них нет тех требований в скорости ответа как у традиционных баз данных, в то же время они могут хватить петабайты данных за десятки лет, который в определённый момент надо проанализировать по новым правилам.

В качестве источников данных могут выступать:

  • любая база данных через JDBC адаптер
  • no-sql/масштабируемые хранилища — MongoDB, Redis, Neo4j, hadoop-hive, couchdb, cassandra..
  • веб-услуги через XML, JSON
  • файлы (xlsx, csv)
  • всевозможные продукты — SugarCRM, SAP, Jboss

 

Как я уже сказал, используется postgres в качестве хранилища, а для гибкого анализа вместо обычных нормализованных схем с JOIN-ами, используется фактологическая схема в виде звезды, которая и хранит всю информацию. Понятно что по одной таблице такие запросы будут быстрей, да и данные особо то не меняются. Аналитики называют такой подход OLAP

iReport

Составление отчёта происходит на основе правил в XML файле (видимо так принято во всём java-мире). Файл это можно написать конечно и вручную, но лучше использовать поставляемый IDE — iReport, где уже есть заготовленные шаблоны.

Доклады можно делать периодически и высылать по почте. Вот так выглядит настройка дизайна отчёта в редакторе:

См. также: