SnowPro Advanced: Architect · 30% of the exam

Design: free practice questions

5 sample questions from our 75-question bank for this domain — answers and explanations included. These are the same scenario-based style as the real Snowflake exam.

1. A Snowflake architect is designing the clustering strategy for a TRANSACTIONS fact table containing 4 billion rows. The table is primarily queried by analysts who filter on TRANSACTION_DATE (a DATE column with ~1,000 distinct values) and occasionally filter on MERCHANT_CATEGORY (a VARCHAR column with 25 distinct values). The architect wants to maximize micro-partition pruning for the most common query pattern. Which clustering key definition should the architect choose?

  • A. CLUSTER BY (TRANSACTION_DATE)✓ Correct
  • B. CLUSTER BY (MERCHANT_CATEGORY, TRANSACTION_DATE)
  • C. CLUSTER BY (TRANSACTION_DATE, MERCHANT_CATEGORY)
  • D. CLUSTER BY (TRANSACTION_ID) — the primary key always provides the best pruning
Explanation

Option A is correct. For maximum micro-partition pruning, the leading column of the clustering key should be the highest-cardinality column that appears most frequently in WHERE clause filters — TRANSACTION_DATE with ~1,000 distinct values fits perfectly as the sole key for the dominant query pattern. Option B is wrong: placing MERCHANT_CATEGORY (only 25 distinct values, low cardinality) first means Snowflake sorts data by that column first, resulting in poor pruning for date-range queries. Option C adds MERCHANT_CATEGORY as a secondary key, which is not harmful but adds unnecessary reclustering cost because the column has very low cardinality and queries rarely filter on it exclusively. Option D is incorrect: clustering on a high-cardinality synthetic primary key like TRANSACTION_ID creates extremely fine-grained micro-partitions with almost no rows per unique value, providing no pruning benefit for range or categorical filters and wasting significant credits.

2. A financial analytics company maintains a star schema in Snowflake with a central TRADES fact table (3 billion rows) and several dimension tables. Analysts report that queries filtering on TRADE_DATE and INSTRUMENT_TYPE together account for 90% of all workload. A Snowflake architect is asked to recommend a clustering strategy. Which approach provides the BEST balance of query performance and cost efficiency?

  • A. Define a clustering key on (TRADE_DATE, INSTRUMENT_TYPE) and enable automatic reclustering so Snowflake continuously maintains micro-partition order.✓ Correct
  • B. Define a clustering key on (INSTRUMENT_TYPE, TRADE_DATE) ordering the high-cardinality column first to maximize micro-partition pruning.
  • C. Create a materialized view that pre-aggregates data by TRADE_DATE and INSTRUMENT_TYPE, eliminating the need for a clustering key entirely.
  • D. Enable the Search Optimization Service on TRADE_DATE and INSTRUMENT_TYPE instead of clustering, because SOS is more cost-effective for range predicates on fact tables.
Explanation

Defining a clustering key on (TRADE_DATE, INSTRUMENT_TYPE) and enabling automatic reclustering is correct because the leading column should be the one most frequently used as the primary filter (TRADE_DATE is typically a high-cardinality date column that drives range pruning), and automatic reclustering keeps the table well-clustered as new data arrives. Option B is wrong because placing low-cardinality INSTRUMENT_TYPE first reduces pruning effectiveness for date-range queries, which dominate the workload. Option C is wrong because a materialized view cannot fully replace clustering on a 3-billion-row fact table; it adds refresh cost and only helps pre-defined aggregation patterns, not ad-hoc filters. Option D is wrong because Search Optimization Service excels at equality predicates and point lookups, not range predicates on high-cardinality columns in large fact tables — its cost would be disproportionate compared to clustering.

3. A company uses Snowflake to power a customer-facing analytics portal. The portal backend queries a set of heavily used summary tables. The architect wants to use materialized views to pre-compute these summaries. Which of the following is a TRUE limitation of Snowflake materialized views that the architect must account for in the design?

  • A. Materialized views cannot be queried directly; results must be accessed through the base table.
  • B. Materialized views do not support joins between multiple base tables in their defining query.✓ Correct
  • C. Materialized views are refreshed only when explicitly triggered by a user command.
  • D. Materialized views cannot be created on base tables that have an active clustering key.
Explanation

Snowflake materialized views have a well-documented limitation: the defining query cannot reference more than one table — joins between multiple base tables are not supported. The architect must design summaries that can be computed from a single base table, or use alternative patterns (e.g., dynamic tables or pre-aggregated staging tables) for multi-table joins. Option A is false: materialized views are first-class queryable objects; Snowflake's query optimizer can transparently rewrite queries against the base table to use the materialized view, and users can also query the materialized view directly. Option C is false: materialized views in Snowflake are refreshed automatically and incrementally by Snowflake's background service whenever the base table changes — no manual trigger is required. Option D is false: materialized views can coexist with clustering keys on the base table; in fact, clustering can improve materialized view refresh efficiency.

4. A company wants to monetize its anonymized clickstream dataset by making it available to external paying customers. Some customers use Snowflake; others do not. The architect must choose the right data sharing architecture. Which approach correctly maps to the right consumer type? (Select TWO.)

  • A. For Snowflake customers: create a Private Listing in the Snowflake Marketplace, allowing the consumer account to mount the share and query live data without any data movement.✓ Correct
  • B. For Snowflake customers: replicate the full dataset to each consumer's account nightly so they can query it locally without needing a Data Share.
  • C. For non-Snowflake customers: provision a Snowflake Reader Account, load the shared data into it, and grant the external customer credentials to query it via the Reader Account's Snowflake interface.✓ Correct
  • D. For non-Snowflake customers: use Snowflake External Tables pointing to a public S3 bucket so non-Snowflake consumers can read files directly from S3.
  • E. For Snowflake customers: use Snowflake Streams on the source table and push incremental changes to each consumer's account via a Snowpipe integration.
  • F. For non-Snowflake customers: create a Secure Data Share and assign it directly to the non-Snowflake consumer's AWS account ID.
Explanation

Correct answers (A) and (C): (A) Private Listings (or direct Data Shares) are the correct mechanism for Snowflake-to-Snowflake sharing. The consumer account mounts the share and queries live, provider-managed data with zero data movement — this is the core value proposition of Snowflake's data sharing. (C) Reader Accounts (formerly 'managed accounts') allow the data provider to create a Snowflake sub-account on behalf of a non-Snowflake consumer. The provider loads or shares data into the Reader Account, and the external customer queries it using Snowflake's interface without needing their own Snowflake account. (B) is incorrect — full nightly replication creates data copies, increases storage cost, and defeats the purpose of live sharing; it is not the recommended pattern. (D) is incorrect — external tables on a public S3 bucket expose raw files without access control, billing tracking, or governance — not appropriate for a monetization use case. (E) is incorrect — Streams + Snowpipe is an ETL/CDC pattern, not a data sharing architecture; it requires the consumer to have significant integration infrastructure and involves data movement. (F) is incorrect — Data Shares are assigned to Snowflake account identifiers, not AWS account IDs; a non-Snowflake customer has no Snowflake account to receive a share.

5. An architect is evaluating Snowflake table types for a new ETL pipeline. Intermediate staging tables hold data for only a few hours between pipeline steps and do not need to be recovered after a pipeline failure — the pipeline can simply re-run. The company wants to minimize Snowflake storage costs. Which table type is MOST appropriate for these staging tables?

  • A. Permanent tables with Time Travel set to 0 days.
  • B. Transient tables.✓ Correct
  • C. Temporary tables.
  • D. External tables pointing to the cloud object store.
Explanation

Transient tables eliminate both Time Travel (beyond 0 days) and Fail-safe storage costs, making them the lowest-cost option for data that is intentionally ephemeral and not worth recovering. Because multiple pipeline steps in the same session or across sessions need to read these tables, transient tables are the correct choice over temporary tables, which are session-scoped and invisible to other sessions. Option A (permanent tables with Time Travel=0) still incurs 7-day Fail-safe storage charges, making them costlier than transient tables. Option C (temporary tables) are session-scoped; if a downstream step runs in a different session or a different task, the table would not be visible, making them impractical for multi-step pipelines unless all steps share a single session. Option D (external tables) require data to live in cloud object storage, add I/O overhead, and do not eliminate compute or storage management concerns — they are designed for querying data that already resides outside Snowflake, not for intermediate pipeline staging.

70 more questions in this domain

Practice the full bank with instant grading, flashcards, and a timed mock exam.

Start practicing free
Design — Free SnowPro Advanced: Architect Practice Questions | DataCertPrep — Certification Prep