Symmetric Aggregates support

Hello,

I’m evaluating whether or not CubeJS could do be used as the analytics layer of my SaaS. So far, I’m pretty impressed by what you built :+1:

When joining tables, I would like to offer the same experience that Looker is doing with its explores and their “Symmetric Aggregates”.

See:
The description of the root problem (join fan out effect)

The description of how they tackled the issue

I wonder how Cube.js is different from Looker on this point?

I see here: https://cube.dev/docs/joins#setting-a-primary-key that you seem to solve the issue as well, but with a different implementation if I understand correctly.

Is there any rationale/things to know when comparing Looker and CubeJS on this feature?

2 Likes

Hey @poulpi!

That’s really great question! The short answer is yes, we support row deduplication in case one-to-many joins row multiplication.

The way Cube.js does it is different. Cube.js will use the primary key to select unique records first and then do aggregation over it. This is generated as part of one SQL query. The performance part of things is solved using pre-aggregations here.

Hello Pavel,

Thanks for the answer!

Looking forward to trying myself in the coming days =)

1 Like