A semantic layer imported from a Snowflake semantic view remembers which view it came from and which element of the view each table, field, join, dimension, and measure was imported from. When the view changes in Snowflake, the Semantic Layer Editor tells you what changed and lets you take each change one element at a time. Nothing changes in your semantic layer until you choose to apply a change.
What Astrato checks
When you open the semantic layer, Astrato reads the Snowflake semantic view again as part of the same background source check described in When your database schema changes. The semantic view is read again each time you open the semantic layer, even when the rest of the check is reused. Click the source status icon in the header to run a fresh check at any time.
Each imported element is compared with its counterpart in the semantic view:
Result | Meaning | What you can do |
Changed in Snowflake | The element's definition in the semantic view is different from the one you last accepted. | Use Snowflake version |
Removed from Snowflake | The semantic view no longer contains the element. | Remove |
No longer importable | The semantic view still contains the element, but Astrato can no longer import it — for example, it became private or uses an expression Astrato does not support. | Remove |
New in Snowflake | The semantic view contains an element your semantic layer does not have. | Import |
Renamed in Snowflake | A dimension or measure has a new name in the semantic view, and its definition is otherwise unchanged. | Use Snowflake name |
Elements you created in Astrato are never compared, changed, or removed by this check.
If Astrato cannot read the semantic view — because your Snowflake role cannot see it, or the connection is unavailable — the result is Snowflake semantic view not checked. Nothing is reported as removed until the view can be read again.
Review the changes
When a change is found, a banner at the top of the editor summarizes how many elements changed, were removed, or are new. Click Review changes to open Issues, where each change is listed under its table, join, measure, or dimension. The same change and its action also appear in the affected element's own panel.
Use Snowflake version replaces the element's definition with the one in Snowflake. The element keeps its Astrato name, so anything that refers to it keeps working. Other changes you made to that element in Astrato are replaced.
Remove deletes the element. The issue lists the dimensions, measures, joins, and business questions that use it; repair those afterwards.
Import adds the new element. When it depends on another new element — for example, a new dimension on a new column — import that one first. The button stays disabled until the dependency is in your semantic layer.
Applying a change creates an ordinary draft edit. Review it, validate the draft, and publish when you are ready. You can undo it or restore an earlier version like any other edit.
If you keep your own version of an element instead of taking the Snowflake version, the change stays listed on later checks, so it is not forgotten.
Renamed elements
You can rename imported elements in Astrato. The link to the semantic view is kept, so a later change in Snowflake is still matched to the renamed element, and applying it keeps your name.
When a dimension or measure is renamed in Snowflake and nothing else about it changed, it is listed as Renamed in Snowflake. Use Snowflake name sets its label to the new name and keeps its Astrato name, so anything that uses it keeps working. If the definition changed as well, or the rename cannot be matched to exactly one element, it appears as one element removed and one new element instead, so check what uses the old element before removing it.
Semantic layers imported earlier
Semantic layers imported before Astrato began recording this link are not checked. To detect changes for one of them, import the semantic view into a new semantic layer.
