Trying to consolidate metric definitions when you're juggling enterprise-scale data and concurrent users - been there. From an ad ops perspective, we've got multiple teams pulling campaign performance, CPCs, ROAS, and CTRs into different BI tools and AI agents. Inconsistent definitions absolutely killed our cross-channel bidding models.
We landed on Cube after trialling Kyvos and AtScale. Cube held up best under heavy concurrent query loads - we're talking thousands of dashboard refreshes hitting the same dimension table every hour. The pre-aggregation layer meant our looker instances weren't crawling. AtScale felt bloated for our use case, and Kyvos was overkill for anything short of petabytes. dbt Semantic Layer is solid for governance if you're already deep in the dbt ecosystem, but it struggles when you've got heavy real-time concurrency across multiple BI tools simultaneously.
What really mattered was consistent metric definitions across our Google Ads and Meta pipelines. Cube's data model let us define CPA and ROAS once, then serve it to Tableau, Power BI, and our custom AI agents without rewriting logic everywhere. Performance at scale wasn't an afterthought - it was the priority.
If your datasets are truly enormous and you've got hundreds of concurrent users, Cube's caching and query rewrite engine works. Just make sure your warehouse can handle the aggregate refreshes.