DAA-C01 Question 222
Single answerMake predictions based on dataA retail analytics team stores three years of daily sales data in Snowflake, including DATE, STORE_ID, PRODUCT_ID, UNITS_SOLD, PROMO_FLAG, and HOLIDAY_FLAG. The team wants to generate short-term forecasts for UNITS_SOLD directly in Snowflake so planners can compare expected demand with current inventory. They need a solution that minimizes data movement, supports SQL-based analysis, and can produce forecasts for many product-store combinations over time. Which approach should the data analyst recommend?
- A
Use the built-in forecasting capabilities in Snowflake Cortex Analyst to train a forecast on UNITS_SOLD and return future predictions for each product-store series.
- B
Export the data to an external Python notebook, build custom models there, and reload only the final predictions because Snowflake cannot generate forecasts from SQL workflows.
- C
Use Snowflake ML forecasting functionality on the historical sales data, partitioning by PRODUCT_ID and STORE_ID as needed, then query the generated forecasts from within Snowflake.
- D
Create a materialized view that computes moving averages by PRODUCT_ID and STORE_ID, because materialized views in Snowflake automatically provide future-value predictions.
Show answer and explanation
Correct answer: C
Explanation
The best answer is to use Snowflake ML forecasting functionality directly in Snowflake. This is the most appropriate solution when an organization wants to make predictions based on historical data while minimizing data movement and supporting scalable, in-platform analytics. In realistic demand-planning scenarios, analysts often need forecasts for many independent time series, such as each PRODUCT_ID and STORE_ID combination. Snowflake ML forecasting is designed for this type of use case and integrates with Snowflake data and SQL-centric workflows. By contrast, Cortex Analyst focuses on question-answering and analysis over semantic models rather than predictive model training, and materialized views do not provide true forecasting. Snowflake best practices generally emphasize keeping data in Snowflake when possible to reduce operational complexity, improve governance, and avoid unnecessary data movement.
- A. Incorrect.
Incorrect. Cortex Analyst is designed for natural language analytics over semantic models, not for training time-series forecasting models that generate future demand predictions. A candidate might choose this because the word 'Analyst' suggests general analytical intelligence, but it is not the Snowflake feature intended for predictive forecasting workloads.
- B. Incorrect.
Incorrect. Although exporting data to external tools is possible, it does not meet the requirement to minimize data movement and keep forecasting directly in Snowflake. Also, Snowflake does support in-platform forecasting workflows through Snowflake ML capabilities, so the statement that Snowflake cannot generate forecasts from SQL workflows is inaccurate.
- C. Correct.
Correct. Snowflake ML includes forecasting capabilities that allow analysts to build forecasts on historical time-series data directly in Snowflake. This approach aligns with the stated requirements: minimal data movement, support for SQL-based workflows, and forecasting across many independent series by partitioning on dimensions such as PRODUCT_ID and STORE_ID.
- D. Incorrect.
Incorrect. Materialized views improve performance for repeated query patterns, but they do not create predictive models or generate future forecasts automatically. Moving averages can be useful as descriptive or naive baseline calculations, but a materialized view itself is not a forecasting feature.