My company is still evaluating if flexmonster is a good fit for us.
I like that when exploring data/building a report visualization, we can load all data into the client through csv/json and explore which fields to use for rows / columns / values / aggregations and pick a grid or chart type that makes sense. Being all in the client makes that really fast.
But then we want users to build a dashboard with a combination of maybe half a dozen or a dozen such charts and pivot tables and grids.
Ideally, if the slice/aggregations are known already, could we create a server nodejs function and “use” the data slicing that flexmonster has already implemented to get the chart data and only give the client what it needs. For instance if we use flexmonster + high charts integration (our most likely path forward)… then for a pie chart can I create a server nodejs component with flexmonster to parse a huge csv and get just the data for highcharts? I guess at my lowest level i’m really asking, can i use flexmonster’s data APIs without a DOM? i’m assuming with headless chrome i could probably hack together a solution, but seems cleaner in plain ol nodejs.
Do you already, or are you willing to support something like a nodejs library of flexmonster’s data layer without a browser DOM for exporting data?
I plan to do some prototyping with your trial + compressor to see how the performance is out of the box. But i feel pretty confident the browser charts would render much faster if we could get just the sliced data from a server component. And it would save my team a bit of effort re-implementing in nodejs what you have already done. And keep 100% parity with the first use case i mentioned where all the data is in the client and i want to explore/build a pivot table or chart.
We’re also evaluating if elastic search can meet our needs, in which case i like your beta connecting to that. But not yet sure if we can move forward on that front, so trying to identify alternatives
Thank you for posting your question here.
Flexmonster is a client-side application. That means that all the operations are performed in the browser. Currently, we do not have a serverside alternative which supports Flexmonster’s API calls.
As you have already mentioned, the recommended approach here is to use PhantomJS or headless Chrome to make the things work the way you need. You can just launch such instance on the server side and send the getData() response to the client. Such an approach should give a better performance on the client side.
As for the Elasticsearch data source, that seems more promising for your use case. The JSON/CSV data is analyzed in the browser and stored in the browser. For a large data source, it takes more time to analyze the data and allocates more RAM to store the data. In such circumstances, Elasticsearch is better for the large data sets since the component does not store all the data. It stores only the exact data slice which is necessary for displaying the current state. When the state is changed a new data query is performed.
Please let us know in case you need more guidance from us.