Hacker News new | ask | show | jobs
by danielvaughn 1691 days ago
Last year my (former) team and I spent months evaluating BI solutions. Every week we were having meetings with companies like Tableau, Looker, etc.

In the end, my opinion was that we should just use CubeJS. Unfortunately it wasn’t mature enough at that time, as it had only recently begun to support Snowflake (our backend).

If I were a betting man, I’d say they’ve got a very bright future ahead of them. Really cool product and idea.

3 comments

I came to the same conclusion around the same timeframe. All the current solutions are not great but CubeJS just didn’t have enough maturity yet. I decided to just hold off on making any changes for a year or two and reevaluate.

Hopefully they are still going strong in the spring/summer and then maybe we will go all in.

Cube.js fills a need I've heard many times in ClickHouse work--how to build a clean data delivery API that mediates application access to analytic databases. There's a basic impedenance mismatch between highly concurrent apps that may have 10s of thousands of users and backend data warehouses that run massivley parallel queries in order to get predictably fast response.

Just as a shameless plug, Pavel Tiunov is going to be talking about design decisions on Cube Store at OSA Con on November 2. [0] We feel this type of technology is fundamental to scaling analytic apps, which is why we picked Pavel's session for inclusion.

[0] https://altinity.com/osa-con-2021/

Disclaimer: I work at Altinity on ClickHouse.

I am building a BI solution, with a different approach. What were you looking for in those solutions?
Nice! The space is pretty ripe for disruption because basically all of the tools are pretty old-school. Here are the things I really wanted:

1. Create dynamic schemas. Some of our clients had their own dimensions that they cared about.

2. Pick the level of integration. Imagine having an out-of-the-box integration available, but then offering fully customizable solutions for one-off scenarios.

Really it comes down to those two things, which basically means "flexibility". Like I said, we spent months evaluating products, and while we found several companies claim to offer the above, no one actually did.

One thing I did not like about CubeJS (not sure if they've changed this), is that their integration is its own standalone server. Like, if you have an existing server, it didn't seem possible to just integrate it into what you already have. That was kind of a bummer, but it wasn't a deal breaker.
Long time ago, it was possible to built Cube into a Node.js app. However, the team decided to deprecate it: https://github.com/cube-js/cube.js/blob/master/DEPRECATION.m...

The motivation is diverse but one of the reasons is that a Cube app should be scaled differently from a client-facing app. Noone probably wants their app to hang when Cube serves a ton of requests or refreshes cached data (and vice versa). That’s why it’s recommended to run Cube as microservices. I hope it’s not a big deal since a lot of cloud platforms provide container environments.

Also, just recently, we’ve launched Cube Cloud which provides serverless experience for Cube apps and has a free tier: https://cube.dev/cloud/

Have you evaluated PivotData Microservice (https://www.nrecosite.com/pivotdata_service.aspx) too? It supports dynamic schemas and beyond just API it comes with sample report builders (for end-users) and built-in pivot tables.
What do you mean by dynamic scheams ?
Hey! Igor from the Cube team here. Coincidentally, in a few days, we’re having a workshop on multitenancy where we’ll cover dynamic schemas: https://cube.dev/events/multitenancy. We’ll show how to customize schemas using pure JavaScript.
Do you have recordings or transcripts of the workshops? Multitenancy is huge for us and I’d love to see what CubeJS is offering now but I can’t make the workshop
we will, yes! here's our last workshop's recording, for pre-aggregations: https://www.youtube.com/watch?v=1_BP3B_wbec