Short version:
It would be rad if Drupal had some basic business intelligence tools which could be used to easily build reporting for web applications written in Drupal. Some basic reporting exists for overall site metrics, but not to easily have custom reporting (unless I've missed it in my searching around - one of the motivations for this post). Looking for feedback on the concept.
Long version:
Reporting tools such as JasperReports and BERT (and OpenReports, which is a facade for both of these) as well as Pentaho, provide a platform for building custom reporting tools. Often with large sites one finds oneself asking questions like "just how many webforms of people who picked X as the 'I am interested in' field did we have last week", or "it would be great to see a daily graph of..." - these tools make it easy to provide reporting that answers these questions and the ability to allow other users in such a reporting system access to them, proving their own input parameters to drive the report (starting date, category, etc. which provide the bounces of the report or chart).
However, using such tools with Drupal has a few decided disadvantages:
- It's not Drupal, i.e. you have set up a totally different environment which has an entirely different set of dependencies than your Drupal site and for many people this is not an option or at least not a viable option because it means maintaining a completely different hosting environment just for the reporting.
- Certain things are duplicated like login system, user accounts, permissions and database connection info. Drupal already has very workable facilities for these things and it would be good to not have to duplicate them for the reporting setup. This actually applies also down to things like the theming system in Drupal, widgets, etc. - there's a lot of this stuff which Drupal already has.
- Most of these tools are in Java and it takes a different skillset work with that than what you already have working on your Drupal website.
In terms of what modules exist already that seem to have anything to do with this, what I've seen is:
http://drupal.org/handbook/modules/statistics - good for specific site stats, doesn't appear to provide much ability to easily customize or to report off of data other than browsing stats
http://drupal.org/project/report - kind of an extension of statistics module above, still very oriented toward browsing stats
http://drupal.org/project/chart - very cool way of making charts, might be great to use for chart output of any custom reporting tool
However none of these provides a generic reporting tool.
As such, I am looking at the possibility of creating such a tool.
Major requirements would be:
- Would leverage existing Drupal framework features such as login, users, permissions, charts (as mentioned above),
- Would allow Views, SQL or PHP code to be used as the data source.
- Would provide table output as well as major types of charts such as pie charts, bar charts, line graphs, etc.
- Would allow reports to be created by a report administrator and the permissions system of Drupal used to decide who can have access to which reports.
- Would allow custom theming of report output using Drupal's existing theming mechanism.
- Users using a report would need to be able to provide input parameters (perhaps webform could be used for this...)
- Other modules should be easily able to implement a hook to define their own default reports, which can then be customized by an administrator - in much the same style as is done with Views, Imagecache and many others.
- Would have to eventually allow for PDF output and other such formats, although this would likely not be in any initial release unless someone has a bright idea on how to do this easily.
- Maybe not in the first version, but would need to have a way of working on aggregated data for very large data sets. That's likely a separate module in itself, but often large datasets need to be "cooked" (denormalized) in order to be querable at a fast speed. This is also often done on a different system than the live production database. This aspect definitely needs some thought... and I'm not sure this is a job for PHP.
Am looking for feedback in terms of the overall approach - and anything that might lead to a solution to the overall problem more rapidly than building what's laid out above. Unfortunately, from what I can see at this point that would be the "right" way of approaching it (said with reservation - there's always multiple ways to approach a problem, each with pros and cons) - but that's probably a lot of work.
Comments
what about using views...
And just as I complete writing the above and reviewing how much work this would be - there's another approach to this that might be a lot simpler: Perhaps this could be done more effectively by plugging into Views. Meaning, providing a more flexible way of querying (for this sort of thing being able to put in custom SQL is a must). I haven't looked at the views internals enough to know if this is feasible or not. And also providing more sophisticated output - and look, Views Charts http://drupal.org/project/views_charts - am going to do some more research on this.
I was curious about this too
I was curious about this too and went hunting.. check the forena project which has similar ambitions, and customreports which allows SQL to CSV/Excel.
I'd also like to see some day a generic engine with nice GUI layout (e.g. reporting engine in Delphi like QuickReports..) .. huge amount of work though..
Few more: PDF version, Printer-friendly pages, Views Export xls, views bonus pack
Microsoft has a solution that might help
Hi everyone. My name is Mark Brown. I work on the Web Platform Team at Microsoft. We work closely with the open source web communities and make tools like our Web Platform Installer which has an easy installation for Acquia Drupal. We also worked with Commerce Guys who helped us with our SQL Server Driver for PHP which now has PDO support and put a build of Drupal 7 for SQL Server up on this page along other things we're working on with the Drupal community here http://www.microsoft.com/web/drupal/
Microsoft has an open source project we created just a couple of months ago that may be useful to some of you here. Granted, yes it involves using SQL Server, but everything with the solution is free and it appears to have the features you are looking to build.
SQL Server Reporting Services SDK for PHP:
http://bit.ly/SqlRptPHP (using bit.ly as the original URL is too long and breaks)
Some featurs include, integrating with nearly any data source, including MySQL, can easily create charts of any type, pages live within your Drupal application so you can leverage existing permissions as well as theming, can handle user parameters, can be programmatically created so you can put a front end interface in front of report creation, can export many different formats including PDF, Excel, etc. Also you can use this SDK with our free SQL Server Analysis Services product where you can create BI reports against OLAP cubes as well.
If you're interested feel free to take a look at the link above. Check it out, kick the tires. Hopefully this is something that you'll find useful.
Reporting Engine for Drupal and DB2
Is there any open source reporting tool/engine which could be used with Drupal and DB2 for displaying data on the web? We currently have a scenario where we have 50 report queries whose output we would like to consider presenting in Drupal.
Anthony Gatlin
Views again... sorta?
Anthony,
Views is capable of connecting to another database, albeit it has to be the same database type as the Drupal core system is running on, and I think maybe even the same server (check out the Views advanced help docs under /help/views/api-tables on your installation). Any chance you could replicate the data from DB2 to a MySQL database and code a module to expose that database as a datasource to Views? Bit of reaching around your a** to grab your elbow, but might allow you to accomplish what you are shooting for...
how about
how about http://drupal.org/project/forena ? did you try it ? it looks quit neat ..
Is this module available for download?
We are looking for a similar reporting module/capability to add to the list of features on our website and wanted to know if this is available for download.
If still under development, we would like to see how we can collaborate to move this forward.
Thanks!
subscribing
subscribing
Progress?
Has there been any progress on this tool? I appreciate the challenges involved, particularly with large data sets.
I have used Drupal to build a team database to capture information about our work (we deliver workshops). We've gotten around the reporting requirements by creating a set of views which we export to Excel (via Views Data Export) and then create the reports (mostly Pivot Tables and Charts) in Excel. Not an ideal solution, but it works.
Would be great to hear other folks' experiences with BI-type reporting.
Views
What you need already provided by Views. Using Views (do not confuse with MySQL Views, Views here is a Drupal module, see: http://drupal.org/project/views) you can:
- load users, use drupal access permission, relationship (join table)
- use PHP code directly
- export to chart, excel, csv, slideshow, PDF
- use custom theming, etc
What you must learn is understanding the Drupal term, i.e:
You will not find "input paramaters", Views use "arguments" and "contextual filters" terms instead.
I'm not sure about "export to
I'm not sure about "export to chart, excel, csv, slideshow, PDF" without using modules that extend Views.