The client was using multiple reports for gaming analytics
● The reports had different but similar columns
● The reports needed to be linked manually by Pivot Table in Excel
● They include manually generated graphs.
● Separate instances were being used for filtering and grouping
A unified dashboard was mandatory
● The user should be able to apply filters, groupings and variables only once;
● A catalog of data would extract info from the reports
● A visual engine would plot graphs on screen
● The underlying reports should be left unchanged
Tell us about your company needs and
get a quote or our professional opinion.
The first challenge was the variety of data storage. Some reports were pre-aggregated as structured table data. For example, in the case of the number of visits per
country, per affiliate campaign and per browser, each dimension had its own SQL column. Some other reports were aggregated in a serialized format, the data being saved as a long
JSON variable. Another set of reports were generated spontaneously on the fly from noSQL datastores.
The second challenge was the variety of data aggregation. Some information was only held by the country, some other information was saved by country and browser, individual events held some other information, and all variables were available: country, browser, affiliated campaign etc.
The third challenge was the variety of timing granularity. Some data was computed each minute, some each hour and most of the information came from daily aggregations.
The solution was to catalog all the available information by data store, date granularity, accesible groupings and facets, and possible combination of filters it supports.
The report display reads the data catalog and checks and unchecks available variables (dimensions) based on the chosen filters or groupings;
The data is extracted from the various data stores and aggregated programmatically before being sent to the display;
Since the data from separate data sources are now merged and standardized, it can be displayed both as table and as graphical data;
The programming language used for cataloging and grouping the data is PHP. The underlying data stores include SQL databases, noSQL and text-based (JSON) data stores. The display of the report was done using JS libraries (ChartJS and DataTable)
Grouping and aggregation
Trendlines and graph types
Raw data display
Results - graphical side