Lineage
Lineage tracks how data flows through your transformation project — from raw source tables through staging, dimensions, facts, hubs, links, satellites, and marts. Rime provides an interactive graph that makes these relationships visible, helping you understand dependencies, plan changes, and debug issues.
What the graph shows
The lineage graph is a directed acyclic graph (DAG) where each node represents a data object and each edge represents a dependency. Node types include:
| Node type | Colour | Description |
|---|---|---|
| Source | Grey | Raw tables in Snowflake that feed your transformation project |
| Staging | Blue | Cleaned and typed versions of source tables |
| Dimension | Green | Descriptive reference tables (Kimball) |
| Fact | Orange | Measurable event tables (Kimball) |
| Hub | Green | Business key tables (Data Vault) |
| Link | Orange | Relationship tables (Data Vault) |
| Satellite | Purple | Descriptive attribute tables (Data Vault) |
| Business Vault | Teal | Derived models (Data Vault) |
| Mart | Gold | Aggregated business-facing tables |
| Test | Red (if failed) | Data quality checks attached to models |
| Hierarchy | Indigo | Hierarchy models |
Edges flow left to right, from sources on the left to marts on the right. The graph lays out automatically, grouping nodes by layer.
Navigating the graph
Zoom and pan
- Scroll to zoom in and out
- Click and drag on empty space to pan
- Double-click a node to centre and zoom to it
- Fit to screen button (top-right) resets the view to show all nodes
Filtering by layer
Use the layer filter buttons above the graph to show or hide specific layers:
- Sources — toggle raw source table nodes
- Staging — toggle staging model nodes
- Warehouse — toggle dimension, fact, hub, link, and satellite nodes
- Marts — toggle mart nodes
- Tests — toggle test nodes
Filtering is useful in large projects where the full graph is too dense to read. For example, hide sources and staging to focus on the warehouse and mart layers.
Searching
The search bar above the graph filters nodes by name. Type a table name or partial match to highlight matching nodes and dim everything else. Press Escape or clear the search to restore the full graph.
Selecting a node
Click a node to select it. The detail panel on the right shows:
- Name — the table or model name
- Type — source, staging, dimension, fact, hub, link, satellite, mart, or test
- Status — last run result (succeeded, failed, skipped)
- Row count — number of rows produced in the last run
- Last run time — when the model was last executed
- Columns — list of columns with types (for table nodes)
- SQL preview — the generated SQL for this model (read-only, for debugging)
Selecting a node also highlights its immediate upstream and downstream connections in the graph.
Impact analysis
Impact analysis answers the question: “If I change this model, what else is affected?”
To perform impact analysis:
- Click a node in the graph
- Click Show Downstream in the detail panel
- Rime highlights every node that depends on the selected node, directly or transitively
This is critical before modifying a staging model or dimension. If you change a column name in a staging table, impact analysis shows you every downstream model that references that column — before you break anything.
The downstream highlight includes:
- Direct dependants (models that reference this table)
- Transitive dependants (models that reference those models, and so on)
- Tests attached to any affected model
Upstream tracing
Upstream tracing is the reverse: “Where does the data in this mart come from?”
- Click a mart or any other node
- Click Show Upstream in the detail panel
- Rime highlights every node that feeds into the selected node
This helps you trace data quality issues. If a mart shows unexpected values, upstream tracing reveals the full chain of transformations from source to mart, letting you identify where the problem was introduced.
Lineage updates
The lineage graph is refreshed after each transformation run. When a run completes, Rime parses the generated model metadata to extract dependency information and updates the graph accordingly.
This means:
- Adding a new model and running the transformation adds it to the graph
- Removing a model and running the transformation removes it from the graph
- Changing a model’s dependencies updates the edges
If you have not run a transformation since making changes, the graph reflects the last successful run’s state. A banner at the top of the lineage page indicates whether the graph is current or stale.
Column-level lineage
Where available, Rime tracks lineage at the column level in addition to the table level. Column-level lineage shows which specific columns in a downstream model come from which specific columns in upstream models.
To view column-level lineage:
- Click a node in the graph
- In the detail panel, expand the Columns section
- Click a column name
- The graph highlights the upstream columns that feed into the selected column, and the downstream columns that consume it
Column-level lineage is generated from the transformation SQL and is available for most model types. It may not be available for models that use complex expressions, dynamic SQL, or wildcard selects.
Use cases for column-level lineage
- PII tracking — trace where a sensitive column (e.g., email, phone number) flows to ensure it is masked in all downstream tables. This complements Rime’s governance features.
- Debugging — when a column in a mart has unexpected values, trace it back to the specific source column to find where the issue originates.
- Change planning — before renaming or removing a column in a staging model, see exactly which downstream columns depend on it.
Lineage across transformation projects
If you have multiple transformation projects within a single Rime project, the lineage graph shows cross-project dependencies when they exist. For example, if a Kimball mart in one project reads from a staging table defined in another project, the edge appears in both graphs.
Exporting lineage
The lineage graph can be exported in two formats:
- PNG image — a static snapshot of the current view, including any active filters or highlights. Useful for documentation or presentations.
- JSON — the full graph structure as nodes and edges, suitable for programmatic analysis or integration with external cataloguing tools.
Click the Export button in the top-right corner of the lineage page to choose a format.
Next steps
- Review the Transformation Overview for the full transformation flow
- Build automated transformation pipelines in Building Pipelines
- Set up alerts for transformation failures in Monitoring