Any semantic layer is only useful if it delivers consistent metrics to data consumers, preferably more than just a single BI tool or data application.

Semantic Layer in the data stack

Many aspects matter here:

  • Technical feasibility. Is there an API or integrations with existing BI tools?
  • Usability. How easy is it to query data for a data engineer or an end user?
  • Learning curve. How much ramp-up time is needed to become productive?

At Cube, we know for sure that there’s a design decision that checks all the boxes above and makes our semantic layer unmatched. Cube’s connectivity to BI tools is powered by the SQL API that implements a Postgres-compatible protocol. That is, if your BI tool connects to Postgres, it will work with Cube.

Consequently, the learning curve is flat because you don’t need to study a new language or syntax to work with Cube. Good ol’ ANSI SQL works perfectly, and BI tools will generate SQL for your end users just fine.

SELECT
DATE_TRUNC('DAY', timestamp) AS day,
MEASURE(weekly_active)
FROM active_users
WHERE timestamp >= '2023-01-01'
GROUP BY 1

We always thought about ways to improve the experience with the SQL API and take using Cube with BI tools to the next level. Let's take a closer look at them.

Every BI tool has a relatively thin data model inside with datasets, tables, columns, etc. However, keeping your semantic layer data model (i.e., cubes, views, measures, and dimensions exposed as tables and columns through the SQL API) in sync with your BI data model is a thankless job. Of course, every BI tool would inspect your data source and generate initial datasets upon first connection, and there’s a “Scan again” button somewhere in the settings. But do you, as a data engineer, wake up in the morning wishing to click that button every time you add a new measure, dimension, cube, or view to the semantic layer?

Today, we are introducing Semantic Layer Sync, which completely bridges the gap between semantic layers and BI tools and enables instantaneous, zero-friction self-serve analytics. With Semantic Layer Sync, you can develop the data model and surface metrics from Cube to one or many BI tools in seconds while still having the benefit of never, ever breaking dashboards in a BI tool by untested changes.

Semantic Layer Sync

Semantic layer Sync automatically synchronizes the data model from the semantic layer to Bl tools, making Cube-specific entities (e.g., cubes, views, measures, dimensions) match Bi-specific ones (e.g., datasets, tables, columns).

SLS

An updated data model will automatically propagate to configured BI tools within seconds. In case you’re actively working on the data model in the development mode, you can manually trigger a sync to a separate, private dataset that would keep your production intact while allowing you to test your changes in a BI tool in addition to testing them in Playground.

See Semantic Layer Sync in action:

Here’s some advice from Tony Kau, Partner Solutions Architect at Cube:

Cube insulates your BI tools from breaking upstream changes, but with great power of Semantic Layer Sync comes great responsibility.

It is best practice to default to additive-only or versioned changes to the data model and be careful not to wreak havoc in downstream applications.

Tony KauTony KauPartner Solutions Architect at Cube

Next steps

We’re releasing Semantic Layer Sync in preview. Currently, you can set up synchronization with Apache Superset (self-hosted), Preset (managed), and Metabase (self-hosted and managed). We’re working with design partners on synchronization with Power BI, Tableau, and other BI tools. If you’d like to use Semantic Layer Sync with any BI tool, please let us know.

Here’s what Juan Muñoz, Data Strategy and Innovation Lead at Breakthrough and an early adopter of Semantic Layer Sync, thinks:

We are just in the initial phase of testing Semantic Layer Sync. So far, having the ability to sync our dimensions and our measures to Preset is going to save us a bunch of time and eliminate any errors in trying to keep them in sync.

The semantic sync adds a lot of value for use cases like ours, where we need an analytical API that is consumed by an application as well as a BI tool.

Juan MuñozJuan MuñozData Strategy and Innovation Lead at Breakthrough

Next week, we’re hosting a webinar on Semantic Layer Sync with Preset. Please join this webinar to see how Cube and Preset work together and hear from Evan Rusackas (PMC member of Apache Superset), Tony Kau, and me.

Semantic Layer Sync is available in Cube Cloud on all tiers, and you can try it today. Join our Slack community at slack.cube.dev to share your thoughts and opinions about this update.