Separating the model from the object
The ability to instantly scale up warehouses gives Snowflake users easy control over query performance and duration. However, increased warehouse size comes at the price of compute credits. Even keeping the warehouse size constant, changes in data volume and query patterns can cause performant and cost-effective data sources to degrade. To mitigate performance degradation, a view may need to be materialized as a table, or a table may need to become a materialized view.
However, even when converting from a view to a table, the transformational logic stays constant. While traditional modeling advice advocates differentiating views and other objects through suffixes (e.g., CUSTOMER_V
), Snowflake users are encouraged to avoid such conventions. Orienting object names to their contents (e.g., CUSTOMER
, DIM_DATE
) rather than their object type allows modelers to easily pivot between them without breaking downstream dependencies.