DAA-C01 Question 211
Single answerCollect related dataA retail analytics team stores sales facts in SALES_FACT and customer details in CUSTOMER_DIM. Analysts frequently explore customer purchase behavior in Snowsight and need a fast way to identify groups of related customers based on shared attributes such as region, loyalty tier, and age band, then compare those groups to product category performance. The team wants a solution that keeps the relationship logic centralized in Snowflake and can be queried directly in SQL without exporting data to another tool. Which approach best meets this requirement?
- A
Create a semantic view that defines reusable business relationships between SALES_FACT and CUSTOMER_DIM so analysts can query related customer groups consistently.
- B
Use SQL grouping sets on SALES_FACT and CUSTOMER_DIM each time analysts run a query, because grouping sets persist relationship metadata for later reuse.
- C
Build a dynamic table that materializes daily aggregates by customer attributes, because dynamic tables automatically create reusable semantic relationships for ad hoc exploration.
- D
Train a classification model in Snowflake ML to assign customers to groups, because classification models are the primary Snowflake feature for collecting related data for SQL analysis.
Show answer and explanation
Correct answer: A
Explanation
The key requirement is to collect related data in a governed, reusable way inside Snowflake so analysts can explore it directly with SQL and Snowsight. Semantic views are intended to provide a business-oriented semantic layer over Snowflake data, defining consistent relationships, dimensions, and measures for analysis. By contrast, GROUPING SETS are query-time aggregation constructs, dynamic tables are pipeline/materialization features, and ML classification is for predictive modeling rather than relationship modeling. Best practice is to centralize reusable analytical logic in a semantic layer rather than duplicating joins and business definitions across ad hoc queries.
- A. Correct.
Correct. Semantic views are designed to centralize and standardize business logic for analytics, including measures, dimensions, and relationships across related data. In this scenario, analysts need governed, reusable relationship definitions between fact and dimension data that can be queried directly in SQL and used consistently in Snowsight. A semantic view is the best fit for collecting related data in a reusable way for analysis.
- B. Incorrect.
Incorrect. GROUPING SETS help generate multiple aggregation levels in a single query, but they do not persist reusable relationship metadata or define a governed semantic layer. An analyst could use them to summarize related data in one query, but they would need to rebuild the logic repeatedly, which does not meet the requirement to centralize relationship logic.
- C. Incorrect.
Incorrect. Dynamic tables can automate transformation pipelines and maintain derived tables, but they do not inherently define semantic relationships for reusable analytical exploration. They are useful for precomputed datasets, not for expressing and governing business relationships in the way described.
- D. Incorrect.
Incorrect. A classification model predicts labels based on training data; it is not the core Snowflake feature for defining reusable relationships among business entities for SQL-based analytics. This option confuses machine learning-based segmentation with semantic modeling of related data.