Join paths enable seamless connections between tables, allowing data from multiple tables to be combined into a single metric. These connections also support drill-downs from a metric to an entity built on different tables. They also enable dynamic querying so only necessary tables are used, making fetching data time- and cost-efficient.
Admins only
Semantic graph is available for admins only
Get an overview
The semantic graph displays all schemas, tables and views from your connected database. When you select a table from the list, a detailed panel opens, offering more information and options. This allows you to manage join paths and view a complete list of all available columns for the selected table.
Create a join path
Join paths connect one table to another by a shared data point.
- Go to Settings → Semantic graph
- Select a table
- Click
+
next to Join path to create a connection - Choose a column you want to join from.
- Specify the relationship type: one-to-one, one-to-many or many-to-one
- Select the table and the column to join to
This will create a two-way connection between the tables. Steep can traverse the semantic graph to find tables two steps away from each other.
Remove a join path
Please note
Removing a join may break metrics that rely on the connection, as well as drill-downs between metrics and entities.
Delete join
- Go to Settings → Semantic graph
- Select the table containing the join you want to remove.
- Find the join in the list and click Delete.
This action removes the join from both connected tables.
Check and repair broken metrics
When a join is removed, any metrics built on columns from the disconnected table may break. All broken metrics will be highlighted in the metric catalog, making it easy for you to find and repair any issues caused by a removed join.
Upgrade old joins to semantic graph
Workspaces containing metrics that are built with the old version of joins can be upgraded to the new join paths in the semantic graph.
Here’s a simple guide for setting up new join paths:
Dimensions
Dimensions give context to your metrics. They let you slice, group, and explore your data in meaningful ways — like breaking sales down by region.
For each table in the semantic graph, dimensions are automatically created if a column is used when defining a metric. You can also add new dimensions for any column that hasn’t been used yet.
Add or edit a dimension:
To add or edit a dimension:
- Click on the table that contains dimension
- Select or create the dimension using that column
Dimension properties
Type
Each dimension must have a type. Choosing the right type ensures your data behaves as expected in Steep.
- Categorical – for text, numbers, or dates. Use this for grouping, filtering, or breaking down metrics. This type is automatically applied when a column is used when defining a metric.
- H3 cell index – for spatial data using the H3 standard. Each precision level should be set up as a separate dimension. For city-level exploration, we recommend starting with levels 8–10.
- City or Country – for location-based columns like
city_name
orcountry_code
. Setting these types allows users to quickly filter and explore data by location when using maps.
Label
The label is the dimension name shown in Steep. By default, it matches the column name in your table, but you can update it to be more user-friendly (e.g. “Customer country” instead of cust_cntry
). Dimensions with the same label are only treated as the same if their underlying column names also match.
Description
You can add a description to clarify what a dimension represents. Right now, descriptions are visible only in the semantic graph, but in the future, they will be more accessible throughout the workspace.
Limitations
If you use dbt Cloud or Cube, the semantic graph does not display underlying tables or support join creation.
However, if your setup includes another database in combination with dbt Cloud or Cube, you can view and create joins for tables in the supported database.