Open-Source Reporting Tools Worth A Look | by Mike Wolfe | Towards Data Science

While thinking of the world of Reporting services, I wondered if there were any open-source Reporting tools. Being open-source would allow for more customization but was also a generally interesting topic. When I finally got to searching the web about it, I found it wasn’t just a single open-source Reporting Tool. Instead, there was quite a variety of options. There were lists of which tools were the best to use. Now, for the most part, quite a few of the Reporting services ended up over-lapping on lists. But some were more unique. I’m sure everyone has their own preferences.
Instead of going through all the options, I chose five to do more research on. However, this does not mean that these five are better than any other options. But it may be an interesting dive into some powerful and open-source tools.
SpagoBI
The first Business Intelligence suite we will be looking at is SpagoBI. It is an open-source suite with a variety of analytic tools. Not only does SpagoBI support reporting, but also Multidimensional analysis (OLAP), the creation of charts, SPIs, interactive cockpits, ad-hoc reporting, location intelligence (such as web mapping services), free inquiry, data mining, network analysis, ETL, collaboration, office automation, master data management, and even external analytical processes that can run in the background. For different user needs, SpagoBI has different main modules. This includes SpagoBI Server, Studio, Meta, SDK, and Applications. This allows business users, developers, decision-makers, and administrators to find a use for SpagoBI. It also supports a list of analytical engines and certified environments.
SpagoBI was written in Java, uses the Ext JS framework, and is open for studying, using, or even modifying the software for more customized usage. The suite uses a Mozilla Public License, which means the components can modify and redistribute modified copies.
In later updates, in 2017, SpagoBI evolved into KNOWAGE. This is a more modern and mature version of business intelligence, with more advanced analysis options and even big data. KNOWAGE advances the original options of SpagoBI, which caters to big data, smart intelligence, enterprise reporting, location intelligence, performance management, and predictive analysis. With KNOWAGE, there is both a community edition and an enterprise edition.
Another item of interest, more specifically interesting to me, is that a version of SpagoBI can be found on Docker Hub. As I’m trying to use Docker more often, you can expect to see more about SpagoBI using Docker here in the future. For now, you can use Docker to pull the SpagoBI version by using the following command:
sudo docker pull spagobilabs/spagobi
To Download from the KNOWAGE suite page, as the SpagoBI download will route you to KNOWAGE, you first make an account. Without an account, I found the download page just leads to a 404 Page Not Found. I did start making an account, but I admit I was a little impatient waiting to verify the account for registration. I would much rather try out the Docker version. But that will be for another day so that we can take a deeper dive. That will be when we can fully explore the features and not just the specifics.
As a note, I did end up receiving the verification email an hour or two after I attempted to sign up. Maybe I will revisit that later, but I would be more interested in seeing the Docker version for now anyway, so at least at this time I won’t try installing the regular version. If you decide to install KNOWAGE, but aware that the verification email during sign-up takes a while to receive, so you won’t be able to install KNOWAGE right away. Because I did not revisit, I can’t guarantee you still won’t get the 404 Page Not Found error, but if you tried it out feel free to let me know if in the comments if having an account helped the download to work.
Seal Report
Not a typical data visualization report, Seal Report is more of a tool that is written in C# using the .NET Framework. Seal Report is also open-source. The framework can be used to produce reports for any type of database, whether that source is SQL or NoSQL based. Seal Report focuses on being installed and building reports both quickly and easily. All the entities of Seal Report are stored in the Seal Repository, which includes data sources, devices, and reports. Seal Report’s main components include the Server Manager, the Report Designer, the Web Report Server, the Task Scheduler, and the Seal Report Scheduler. Together, these allow timed reports, such as daily reports.
The repository folders of Seal Report, necessary to run, include assemblies, databases, devices, logs, reports, security, settings, sources, table templates, special folders, sub-reports, and views. These all are used to create a simple but comprehensive report.
The main features include Dynamic SQL sources, LINQ queries, Native Pivot Tables, HTML 5 Charts, KPI and Widget Views, Full responsive HTML Rendering using Razor engine, Web Report Server, Report scheduler, Drill Down navigation and Sub Reports, Report Tasks, and Low TCO (total cost of ownership).
Again, I searched on Docker Hub to see if Seal Report was available. It seems that Seal Report is available on Docker to pull, however, I found issues. This is the command that Docker says to use:
sudo docker pull eesysite/seal-report
So, when you look at eesy/seal-report in Docker, there are no pulls. When I tried:
Considering there are no pulls, I am wondering if something was set up wrong, or if it just simply does not work.
To download normally, you are directed to the GitHub code. From there, you can directly download the source code. You can then run the executable file on the computer. From there, you can compile using Visual Studio when you open the Seal.sln solution file from the root directory of the tool.
While trying to learn how to use Seal Report, there are tutorials right on the Seal Report website. It first teaches you how to generate a report from a SQL Select statement. This is used to prepare a report in a few quick and easy steps. Once executed, you can save the report to the repository.
The next set of instructions shows how to create the first Data Source. It also instructs how to create, execute, and store the report. Once you have the source and report set up and ready, you can then publish.
There are two sets of instructions for publication, depending on where you want the report to be. The first is on Linux (Ubuntu). That would be applicable for me as that is what I use. The other is on Azure. With Azure, there are also instructions on how to Audit the database.
The final set of instructions is to set up the Seal Report Scheduler. This way, you will not have to manually create the reports each time. Instead, you can set up the scheduler to automatically generate a report at a particular time.
QueryTree
QueryTree is an open-source solution written in C#, ASP.NET, and JavaScript. The tool is targeted for ad hoc reporting and visualization. Found on GitHub, it can be run using the Source, or it can be run using Binaries or even Docker. QueryTree is geared to work with Microsoft SQL Server, MySQL, or a PostgreSQL database. This tool is geared for both technical and non-technical users. QueryTree makes it easy for non-technical users to select, filter, group, aggregate, and visualize data from the tables in the database. It can even create interactive charts to visualize the data without writing any code to do so.
QueryTree is a form of a drag-and-drop builder, which allows for non-technical users a variety of visualization options without writing any code. These reports can also be scheduled to generate for viewing on either the web or on mobile. The drag-and-drop builder includes and powerful and flexible interface that allows the queries to generate reports based on what the user selects. This also means that data sets can be joined, transformed, or simply viewed using QueryTree’s easy-to-use visualization tools.
When viewing the data, QueryTree includes a Sort tool and a Select tool, which can be used to organize the data or to remove any information that may not be consistent. There are also a few different chart options, so the user can select which chart they would like to view the data on. QueryTree also allows the charts to be exported as opposed to only being able to save the chart. This way, the data may be represented in other tools such as Excel or Word.
As reports are scheduled and generated, QueryTree also gives the ability to invite teammates to view those scheduled reports. QueryTree also allows secure encrypted connections to access the database and connects with read-only access, so the data would be safe. This way, reports can be shared with teammates for a better experience.
For more complex options, Query Tree offers an Advanced Report Builder. This includes the same functionality as the Simple Report Builder, but with more tools and options for customization. These reports are more complex, so may dig deeper into the database. Along with the standard drag-and-drop option, the Advanced Report Builder also utilizes a simple wizard to comprehensively visualize the desired data. Like the others we have discussed, QueryTree is open-source and free to use, but also comes with a customizable support plan for enterprise customers. For non-enterprise users, Github has community support on the QueryTree project.
As previously mentioned, QueryTree is available with Docker:
sudo docker pull d4software/querytree
QueryTree is another open-source ad-hoc reporting tool that I think would be interesting to use, so later down the road we’ll attempt using it further with Docker.
FineReport
FineReport is an open-source BI Reporting and Dashboard Software. Unlike some of the others, FineReport is a web-based tool. The design of it is modeled after Excel, so it is easy to work with for beginners. FineReport can be deployed locally or can be connected to corporate databases. Almost all database types are supported by FineReport. It is written in Java and free for personal use but looks like there may be fees when using FineReport for corporate purposes.
The detail for the reports and dashboard aims for innovative design patterns, fast data integration, cool data visualization (with dynamic and even 3D effects), small data entry, powerful decision-making platforms, and both easy deployment and integration. FineReport is written in Java, which means it can be implemented with different systems either through independent or embedded deployment.
FineReport can be used to visualize reports, dashboards, financial statements, developing purchase, sales, inventory systems, and more. The tool also has different use cases. One cause is business users, in which they may need to display reports of data, or FineReport can be used for fast and easy data entry. The next user case is middle-level managers. Supervisors such as this would need the ability to generate and display reports, export that analysis (for presentations such as in a PDF format or in Excel), or even for mandatory data attention in scenarios where certain data needs to be monitored and reviewed in a timely manner. This is where FineReport allows a scheduled report to be generated which can push the reports to the users through emails, or by other selected means. The final user case considered is senior management. In this case, managers need to be able to view data, such as with a dashboard, but they must also be able to visualize data anywhere, such as on mobile, and they must also be able to analyze data, such as with linkage or drilling.
FineReport was created as more of a professional big data BI and analytics platform. It specializes in analytics, so it is, therefore, more IT-centric. Although business users can use FineReport, the full functionality is centered for IT individuals. This is also because most users have basic SQL knowledge when using the reports. FineReport does have several different versions which are geared towards different individuals. As stated before, FineReport is centered around the typical IT user. FineBI is positioned to be used by more business users or data analysts. JDY is a no-code aPaaS (Application Platform as a Service) solution which can be used by both business users and IT to enhance productivity. However, JDY can be used by the entire staff, as there is no code involved. However, we are only looking at FineReport for now.
Like the others, there is a version of FineReport that can be found on Docker:
Now that we have that ready, maybe we’ll take a deeper dive into FineReport in the future.
ReportLab
ReportLab is an open-source engine used to create complex PDF documents and customized vector graphs. It is part of the standard Linux distributions, is embedded in a variety of different products, and even was selected to function as the print/export feature for Wikipedia. ReportLab is free to use and was also written in Python.
ReportLab is broken into three main layers. The first layer a graphics canvas API that “draws” PDF pages. The second layer is a charts and widgets library that can be used to create reusable data graphics. The final layer is the page layout engine, which is used to build documents from different elements such as headlines, paragraphs, fonts, tables, and vector graphs. The page layout engine is PLATYPUS (Page Layout and Typography Using Scripts). ReportLab also has a PLUS commercial product, which generates PDFs at a higher speed and also allows the use of ReportLab’s XML-based templating language RML. ReportLab PLUS also includes upgrades to the open-source library that enable a faster development cycle.
With just the standard ReportLab open-source engine, it is a free PDF toolkit, can automate document production, generate multiple PDFs quickly, has a Diagra charting toolkit, and reduce paperwork and print costs. The ReportLab Toolkit, which is the free version, is a library used to programmatically create PDF documents. The features of the toolkit are to create professional portable documents, use the real document layout engine (Platypus), flowable objects such as headlines or paragraphs, but ReportLab Toolkit also supports embedded Type-1 or TIF fonts, Asian, Hebrew, and Arabic characters, bitmap images in any popular format, vector graphics, it includes a library of reusable primitive shapes, an extensible widget library, a layered architecture written in Python, it also includes simple demos and more complex tools, allows for any data sources, fully available source code, strong community support, and is also platform-independent.
Because it is written in Python, you can install using the source code, or using pip from PYPI. Although available on Linux, ReportLab is cross-platform and is available on Windows, Mac OSX, Solaris, AIX, FreeBSD, and so on.
Unlike the other open-source tools on this list, ReportLab is not found on Docker. But because it can be installed using Pip from PYPI, we will install it that way:
sudo pip3 install reportlab
Even though ReportLab wasn’t found on Docker, you know I have a soft spot for my Python projects. So. expect to see more from me on using ReportLab in the future. It seems like a powerful toolkit, but I’m also enjoying the fact that it was written in Python.
Conclusion
In this article, we reviewed five different open-source engines/toolkits for reporting. Of the five, four of them had versions available on Docker. As I had stated in the beginning, this was not a breakdown of the “best” open-source engines. Instead, this was more of an educational breakdown to appease my own curiosity. The inspiration was just wondering if there were any open-source reporting tools, so I was pleasantly surprised to see that there were so many.
We learned about SpagoBI, Seal Report, QueryTree, FineReport, and ReportLab. Of all, only ReportLab was not found on Docker. However, ReportLab was also the only Python-driven toolkit and was available by installing with Pip, so don’t count that out just yet.
In our research, we only got general background information for each of the reporting tools. However, we didn’t get a chance to attempt generating reports with any of them yet. This is something I would be interested in doing. Now as a note, there are several “best open-source reporting tools” on the web, and although there is overlap for many, there are still many others that I did not list in this overview. This by no means is implying that these are the best five, they were just the five that I found a little bit more interest in learning more about. In the future, I plan to use at least a few of these reporting tools and to learn a little more about how to use them. What may be interesting is, after they have all been tried, revisit all tools I chose in a comparison format. If you use any open-source reporting tools that you think would be worth looking into, feel free to drop them in the comments and I’d be rather interested in looking. Overall, I thought it was interesting to see how similar and yet different these open-source reporting services can be, where some do seek to earn a profit through advanced features, yet while others remain free for use by all users including for company use.
Later on, we will be taking deeper dives into each on the list, but until then, cheers!
Read all my articles for free with my weekly newsletter, thanks!
Want to read all articles on Medium? Become a Medium member today!
Check out my recent articles: