Get Free Trial

Performance : best way to serve data ?

bernard dradeou asked on April 20, 2021

Hi everybody,
            for having the best performance possible how should i serve data from the server ? Format CSV or JSON ? Use some sort of compressing algorithm between server and Flexmonster ? My back-end can be whatever i want : postgresql, elasticsearch, REST API, java, GO, etc…

3 answers

Vera Didenko Vera Didenko Flexmonster April 22, 2021

Hello, Bernard,
Thank you for your question.
Being a client-side component, Flexmonster relies on resources available to the browser, which affects the loading time and the maximum size of the data that can be handled on every particular machine. This means that the client machine’s RAM determines how much data can be loaded at once, and CPU capabilities affect how much time is spent on the data analysis. 
Aside from loading a JSON/CSV data set, Flexmonster provides the possibility to delegate data aggregation to the server-side, allowing to manage larder data volumes and use fewer browser resources. With this approach, a new query is formed on every change in the report (for example, expand, filter, etc.). This means that only the part of the data needed for the requested representation (expand, filter, etc.) is loaded at a time. You have the ability to load just part of the data necessary for the specified report. Depending on your data source type and use case, Flexmonster provides several options:

  1. Built-in support for Elasticsearch and MS Analysis Services data sources:
    When Elasticsearch or MS Analysis Services is being used, Flexmonster delegates data aggregation to Elasticsearch or MS Analysis Services automatically. Moreover, Flexmonster provides built-in support for connecting to Elasticsearch and MS Analysis Services, allowing you to get started with just a quick configuration of the pivot table. 
    Please see the following guides for more details: Connecting to Elasticsearch and Connecting to MS Analysis Services.
    You are welcome to check out our Elasticsearch and MS Analysis Services interactive demos on our website. 

  2. Flexmonster Data Server for CSV, JSON, and SQL Databases:
    For these data sources, we provide a special tool allowing to delegate data aggregation to the server-side – Flexmonster Data Server.  
    Flexmonster Data Server is based on the custom data source API – our custom communication protocol that lets you retrieve already aggregated data from the server and pass it to the Flexmonster pivot table.
  3. Flexmonster MongoDB Connector for MongoDB:
    Flexmonster provides a special tool to simplify working with MongoDB – Flexmonster MongoDB Connector. The MongoDB Connector is also built on the custom data source API, meaning data aggregation is delegated to the server-side.
  4. Custom data source API for any data source type or if a more custom data processing approach is needed:
    Also, it is possible to implement your own data processing logic by implementing the custom data source API protocol. At the core of the custom data source API lies the idea of assigning the heavy lifting of fetching, processing, and aggregating the data to the server. Only the necessary parts of the data are transferred to the client-side. With this protocol, it is possible to implement your own server-side connector to the data source of your choice and feed the data into Flexmonster already in the aggregated form. For more details, please see our implementing the custom data source guide.

Please let us know if this helps, and if further questions arise – we will be happy to help.
Kind regards,

bernard dradeou April 28, 2021

As ElasticSearch is fast as hell i will choose JSON as format and ElasticSearch as database. I will use the datasource “subquery” property to select subsets of data from an index

Vera Didenko Vera Didenko Flexmonster April 29, 2021

Hello, Bernard,
Thank you for the update.
We are happy to hear that Elasticsearch works fine for you.
Should further questions arise, feel free to reach out.
Kind regards,

Please login or Register to Submit Answer