Courseiva

SnowPro Advanced: Data Engineer (DEA-C02) — Questions 1–75

229 questions total · 4pages · All types, answers revealed

Page 1 of 4

Page 2
1
MCQeasy

A data engineer is converting a column of strings into integers. Some rows contain non-numeric characters that would normally cause the query to fail. Which function should be used to return a NULL value instead of an error when a conversion is impossible?

A.AS_INTEGER()
B.TO_DECIMAL()
C.TRY_CAST()
D.COALESCE()
AnswerC

TRY_CAST is the safest choice for transformations where data quality is uncertain. It attempts to convert the value to the specified data type, but if the conversion fails, it returns NULL instead of raising an exception. This ensures that a few bad records do not crash an entire batch processing job.

Why this answer

Data quality issues are common during transformation. Standard casting functions like CAST() or TO_NUMBER() are strict and will terminate a query if they encounter invalid input. To build resilient pipelines, engineers use 'try' variants of these functions, which gracefully handle errors by returning a NULL, allowing the rest of the dataset to be processed without interruption.

Exam trap

Candidates rely on standard CAST() or TO_NUMBER() functions, which abort the entire query execution upon encountering unexpected non-numeric character strings.

2
MCQmedium

A data engineer needs to unload a large table to an external stage in Parquet format. The table contains a column with sensitive data that must be masked in the unloaded files. The engineer wants to use a secure view that applies a masking policy, and then unload from that view. Which statement accurately describes the behavior when unloading from a secure view?

A.Unloading from a secure view is allowed, but the masking policies are not applied; the underlying data is unloaded unmasked.
B.Unloading from a secure view is allowed, and the masking policies defined in the view are applied to the unloaded data.
C.Unloading from a secure view is not supported; COPY INTO <location> requires a base table or a regular view.
D.Unloading from a secure view requires the ACCOUNTADMIN role and the masking policies are ignored.
AnswerB

Snowflake supports unloading from secure views, and the policies (masking, row access) defined in the view are enforced during the unload. This allows sensitive data to be masked in the output files. The unload operation executes the view's query, so the policies are applied. This is the correct and secure approach for the scenario.

Why this answer

COPY INTO <location> supports unloading from secure views, and the secure view's definition, including masking and row access policies, is enforced during the unload. This means sensitive columns can be masked in the output files. The other options either deny support, claim masking is bypassed, or impose unnecessary role requirements.

The correct behavior is that policies are applied, ensuring data security.

Exam trap

The trap here is assuming that unloading from a secure view bypasses masking policies, when in fact the policies are enforced.

3
MCQmedium

A data engineer needs to perform a complex transformation that involves reading from a source table and writing to multiple target tables in a single transaction. What is the recommended strategy?

A.Use an asynchronous task for each target table to run in parallel.
B.Wrap the multiple INSERT statements in a single BEGIN...COMMIT transaction block.
C.Create a separate stored procedure for each insert to reduce complexity.
D.Use a series of independent views to union the data instead of writing to tables.
AnswerB

Wrapping multiple DML operations in a BEGIN/COMMIT block guarantees atomicity. If any statement fails, the entire transaction can be rolled back, ensuring that either all target tables are updated correctly or none are, maintaining the integrity of the data across the whole schema.

Why this answer

Using an explicit transaction block (BEGIN...COMMIT) ensures that multiple DML statements are treated as a single atomic unit. This is critical for data consistency, particularly when updating related tables simultaneously. If any part of the transformation fails, the transaction can be rolled back, ensuring the system remains in a valid, predictable state, which is a core requirement for reliable enterprise data pipelines.

Exam trap

Candidates often confuse individual SQL statement execution with atomic transactions. They forget that without an explicit BEGIN/COMMIT block, each statement executes independently, risking partial updates if a failure occurs.

4
Multi-Selectmedium

A data engineer needs to protect a set of permanent tables in a Snowflake Enterprise Edition account. The requirement is to allow querying of historical versions for up to 30 days and to allow recovery of dropped tables within that same window. Which two actions should the engineer take to meet these requirements? (Choose two.)

Select 2 answers
A.Convert the permanent tables to transient tables to increase the maximum allowed retention window.
B.Confirm the account is on Enterprise Edition, which supports retention windows longer than the Standard Edition one-day maximum.
C.Set DATA_RETENTION_TIME_IN_DAYS to 30 on each permanent table using ALTER TABLE.
D.Rely on Fail-safe to provide the 30-day queryable history window for dropped tables.
E.Enable Fail-safe on the tables by setting FAILSAFE_DAYS to 30 using ALTER TABLE.
AnswersB, C

Enterprise Edition raises the maximum Time Travel retention for permanent tables from one day to ninety days, enabling the 30-day window. Without Enterprise Edition, a 30-day retention setting would not be permitted, so verifying the edition is a prerequisite for meeting the requirement.

Why this answer

Meeting a 30-day queryable-history requirement on permanent tables requires Enterprise Edition, which raises the maximum retention from one day to ninety days, and an explicit DATA_RETENTION_TIME_IN_DAYS setting of 30 on each table. Transient tables cap retention at one day, Fail-safe is non-queryable and fixed at seven days, and there is no configurable FAILSAFE_DAYS parameter.

Exam trap

The trap here is assuming Fail-safe is configurable per table or provides queryable history, when it is actually a fixed seven-day, non-queryable layer managed by Snowflake.

5
MCQhard

A data engineer needs to create a development copy of a 5 TB production table named FACT_SALES for query testing. The team wants the copy to share the same underlying micro-partitions as the source so no additional storage is consumed at creation time. Which command should the engineer use?

A.CREATE TABLE dev_db.public.fact_sales_clone AS SELECT * FROM prod_db.public.fact_sales;
B.CREATE TABLE dev_db.public.fact_sales_clone CLONE prod_db.public.fact_sales;
C.ALTER TABLE prod_db.public.fact_sales SET CLONE dev_db.public.fact_sales_clone;
D.CREATE TABLE dev_db.public.fact_sales_clone LIKE prod_db.public.fact_sales;
AnswerB

Zero-copy cloning creates a new table that initially references the same micro-partitions as the source, so no data is physically duplicated at creation. This satisfies the requirement of no additional storage up front. Storage diverges only when either table is modified, at which point new micro-partitions are written and the clone stops sharing those changed partitions.

Why this answer

Zero-copy cloning with CREATE TABLE ... CLONE creates a new table that references the same micro-partitions as the source, so no storage is duplicated at creation. CTAS would physically copy the data, CREATE TABLE ...

LIKE would only copy the schema, and ALTER TABLE ... SET CLONE is not valid syntax. Only the CLONE form meets the no-extra-storage requirement.

Exam trap

The trap here is confusing CREATE TABLE ... LIKE (schema only) or CTAS (physical copy) with zero-copy cloning, which shares micro-partitions and defers storage cost until data diverges.

6
MCQhard

A data engineer is designing a transformation that requires unpivoting a wide table with columns `q1_sales`, `q2_sales`, `q3_sales`, and `q4_sales` into a long format with columns `quarter` and `sales`. The table has millions of rows. Which Snowflake construct should be used to achieve this efficiently?

A.Use the `PIVOT` clause in a SELECT statement.
B.Use a `LATERAL FLATTEN` on an array constructed from the quarter columns.
C.Use the `UNPIVOT` clause in a SELECT statement.
D.Use a series of `UNION ALL` SELECT statements, one for each quarter column.
AnswerC

UNPIVOT is a built-in Snowflake clause that rotates columns into rows. It is optimized for this operation and can handle millions of rows efficiently. By specifying the columns to unpivot and the output column names, the engineer can transform the wide table into a long format in a single statement.

Why this answer

The UNPIVOT clause is specifically designed to transform columns into rows. It is a native Snowflake feature that is optimized for performance on large tables. Using UNION ALL or LATERAL FLATTEN can achieve similar results but with more complexity and potentially less efficiency.

PIVOT does the reverse and is not appropriate here.

Exam trap

The trap here is confusing PIVOT and UNPIVOT, or assuming that manual UNION ALL is the only way to unpivot.

7
MCQhard

A data engineer is auditing storage consumption in a Snowflake account. A large permanent table named SALES_FACT has DATA_RETENTION_TIME_IN_DAYS set to 60. Over the past month, ETL jobs have performed several full-table UPDATE operations that rewrote most micro-partitions. The engineer notices that the table's Time Travel storage has grown significantly even though the visible row count is unchanged. What is the most likely cause of the increased Time Travel storage?

A.Time Travel storage grows because the 60-day retention forces Snowflake to store a full compressed copy of the table in Fail-safe.
B.Time Travel storage grows because each UPDATE creates new micro-partitions while prior versions are retained for the 60-day retention window.
C.Time Travel storage grows because Snowflake copies the entire table into a separate Time Travel schema on each UPDATE.
D.Time Travel storage grows because the account has exceeded its storage quota, causing Snowflake to duplicate micro-partitions as a redundancy measure.
AnswerB

When UPDATE operations rewrite micro-partitions, Snowflake writes new versions and retains the prior versions for the duration of the Time Travel retention period. With a 60-day window and repeated full-table updates, many historical versions accumulate, driving up Time Travel storage even though the current row count is unchanged.

Why this answer

Time Travel storage reflects historical micro-partition versions retained for the configured window. Each UPDATE that rewrites micro-partitions creates new versions, and the prior versions are stored for 60 days. Repeated full-table updates therefore accumulate substantial historical data, increasing Time Travel storage even when the visible row count is stable.

Exam trap

The trap here is assuming that unchanged row counts imply unchanged storage, when in fact Time Travel storage is driven by the volume of historical micro-partition versions retained, not by the current row count.

8
MCQmedium

A warehouse is being used for both ETL processes and ad-hoc BI reporting. Users report that BI reports are slow during ETL runs. What is the best optimization?

A.Increase the size of the existing warehouse.
B.Separate workloads into two distinct warehouses.
C.Use the 'Economy' scaling policy for the warehouse.
D.Enable search optimization for the BI reporting tables.
AnswerB

Workload isolation is critical in Snowflake. By dedicating one warehouse to ETL and another to BI reporting, you prevent contention. This allows you to optimize each warehouse for its specific workload pattern, ensuring consistent performance for BI users regardless of how heavy the ETL jobs are.

Why this answer

The most effective way to address contention between different workload types is to isolate them into separate virtual warehouses. ETL processes are typically compute-intensive, while BI reporting requires low latency. By separating these into two warehouses, the ETL process cannot starve the BI reports of resources, and you can size each warehouse appropriately for its specific task, ensuring both workloads run efficiently without competing for the same compute resources.

Exam trap

Candidates frequently suggest modifying warehouse scaling policies or query timeouts instead of the simplest architectural fix for workload contention: separation.

9
MCQmedium

A data engineer manages a transient table named STG_EVENTS in a Snowflake Enterprise Edition account. The table has a DATA_RETENTION_TIME_IN_DAYS setting of 1. The engineer wants Time Travel to retain data for 30 days for this table. What will happen if the engineer executes ALTER TABLE STG_EVENTS SET DATA_RETENTION_TIME_IN_DAYS = 30?

A.The retention period will be set to 30 days, but only if the table has not been cloned previously.
B.The retention period will be set to 30 days but Fail-safe will still be disabled for the table.
C.The statement will fail with an error because transient tables support a maximum Time Travel retention of 1 day.
D.The retention period will be set to 30 days, and Time Travel will retain data for 30 days.
AnswerC

For transient tables, the DATA_RETENTION_TIME_IN_DAYS parameter is capped at 1. Snowflake returns an error when you attempt to set a higher value. To get 30 days of Time Travel, the object must be a permanent table in an Enterprise Edition (or higher) account. The transient table type is the constraint here, not the account edition.

Why this answer

Transient tables are limited to a maximum Time Travel retention of 1 day. Attempting to set a higher value such as 30 days causes Snowflake to reject the ALTER TABLE statement with an error. To achieve 30 days of Time Travel, the table must be a permanent table in an account with Enterprise Edition or higher.

The table type is the deciding factor.

Exam trap

The trap here is assuming that because the account is Enterprise Edition, any table can be given a 30-day Time Travel retention, when transient tables are capped at 1 day.

10
MCQmedium

A data engineer is building a transformation pipeline that must parse semi-structured log data stored in a VARIANT column named log_data. The JSON structure contains a nested array under the key 'events', and each element in the array has a 'timestamp' field. The engineer needs to produce one row per event with the timestamp extracted as a TIMESTAMP_NTZ value. Which SQL construct should be used to achieve this transformation efficiently?

A.Use the FLATTEN function with the LATERAL keyword to explode the 'events' array, and access the 'timestamp' field using the colon notation, casting it to TIMESTAMP_NTZ.
B.Use the GET_PATH function to directly extract the 'timestamp' field from the array without exploding it, relying on implicit casting to TIMESTAMP_NTZ.
C.Use the OBJECT_CONSTRUCT function to rebuild the JSON, then use a JavaScript UDF to iterate over the array and return each timestamp.
D.Use the PARSE_JSON function to convert the VARIANT to a string, then use SPLIT_TO_TABLE to separate the array elements, and finally extract the timestamp with regular expressions.
AnswerA

FLATTEN with LATERAL is designed to explode nested arrays in VARIANT data, producing one row per element. The colon notation accesses nested fields, and casting ensures the correct data type. This approach is efficient and standard for transforming semi-structured data in Snowflake.

Why this answer

The FLATTEN function with LATERAL is the standard Snowflake construct for exploding nested arrays in VARIANT columns. It produces one row per array element, and the colon notation allows direct access to nested fields. Casting the extracted value to TIMESTAMP_NTZ ensures the correct data type for downstream processing.

This method is efficient and leverages Snowflake's native semi-structured data handling.

Exam trap

The trap here is assuming that GET_PATH or PARSE_JSON can directly explode arrays into rows, but they cannot; only FLATTEN with LATERAL performs that row multiplication.

11
MCQeasy

A user runs the same complex analytical query twice within 5 minutes and notices the second execution is nearly instantaneous. Which Snowflake feature is primarily responsible for this performance improvement?

A.Metadata Caching
B.Warehouse Local Disk Caching
C.Query Acceleration Service
D.Result Cache
AnswerD

The Result Cache is the only feature that can provide near-instantaneous results for identical queries by skipping all compute processing. It remains valid for 24 hours as long as the underlying data remains unchanged, making it perfect for repeated dashboard queries or frequent analytical tasks.

Why this answer

Snowflake's Result Cache stores the results of queries for 24 hours. If a user executes the exact same query and the underlying data in the table has not changed, Snowflake will return the results directly from the cache, bypassing the compute warehouse entirely and providing sub-second response times.

Exam trap

Candidates often confuse the Result Cache with the Warehouse Cache (Local Disk). They fail to distinguish that the Result Cache returns results without using any compute resources at all.

12
MCQhard

A data engineer is loading data from an external stage into a Snowflake table using a COPY INTO command. The source files are compressed with gzip and contain a header row. The engineer wants to skip the first row of each file and load the remaining data. Which COPY INTO option should be used?

A.FIELD_OPTIONALLY_ENCLOSED_BY = '"'
B.SKIP_FILE = '1'
C.SKIP_HEADER = 1
D.HEADER = TRUE
AnswerC

The SKIP_HEADER option specifies the number of header rows to skip at the beginning of each file. Setting it to 1 will skip the first row, which is the header. This is the correct way to handle CSV files with a single header row, ensuring that column names are not loaded as data.

Why this answer

SKIP_HEADER = 1 is the correct COPY INTO option to skip the first row of each file during loading. It tells Snowflake to ignore the specified number of lines at the start of the file, which is typically the header. Other options control different aspects of file parsing and error handling.

Exam trap

The trap here is confusing SKIP_HEADER with SKIP_FILE, or assuming a HEADER option exists. SKIP_FILE skips entire files based on errors, while SKIP_HEADER skips rows within each file.

13
MCQmedium

Which of the following is the best practice for using the query profile to identify performance bottlenecks?

A.Only analyze queries that take longer than one hour.
B.Start by identifying the operator with the highest time contribution.
C.Ignore spilling metrics if the query eventually finishes.
D.Focus primarily on the number of partitions scanned.
AnswerB

The operator with the highest time contribution is the most significant bottleneck. By focusing on this node first, you address the primary source of latency. This approach ensures that your optimization efforts have the greatest possible impact on the total query duration and overall warehouse credit consumption.

Why this answer

The most effective approach is to focus on the 'heavy' operators, which are the parts of the query plan consuming the most time or resources. By analyzing the Query Profile from the top-down, an engineer can isolate where the processing is stalling. This targeted analysis is crucial for performance tuning, as it prevents wasting time on minor optimizations and ensures that efforts are directed toward the root causes of latency, such as spilling or high I/O.

Exam trap

Candidates often waste time optimizing low-impact operators or early-stage filtering instead of focusing on the 'heavy' operators that actually contribute the highest percentage to the overall query execution time.

14
MCQhard

A data engineer is implementing a data classification process using Snowflake's Data Classification feature. The engineer wants to automatically classify columns containing sensitive data and then use the results to apply masking policies. After running the classification, the engineer notices that some columns that should be classified as 'EMAIL' are not being tagged. The engineer has verified that the data contains valid email addresses. What is the most likely reason for the missing classification?

A.The Data Classification feature requires that the column name contains the word 'EMAIL' to classify it as EMAIL.
B.The Data Classification feature only samples a subset of rows, and the sample did not include enough email addresses to meet the threshold.
C.The Data Classification feature cannot classify columns that contain NULL values.
D.The Data Classification feature is only available for columns in the PUBLIC schema.
AnswerB

Data Classification samples a limited number of rows to infer the semantic category. If the sample does not contain a sufficient number of email addresses (e.g., due to low frequency or sampling randomness), the column may not be classified as EMAIL. This is a common reason for missed classifications. The engineer can adjust the sampling or manually tag the column. This option correctly identifies the sampling limitation as the likely cause.

Why this answer

Data Classification uses sampling to analyze column data. If the sample does not contain a sufficient number of email addresses, the column may not be classified as EMAIL. This is a known limitation.

The other options are incorrect because classification does not depend on column names, can handle NULLs, and is not restricted to a specific schema.

Exam trap

The trap here is assuming that Data Classification scans all rows or relies on column names, when it actually samples data and uses pattern recognition.

15
MCQmedium

An analyst needs to unload a 4 TB table from Snowflake to an external Amazon S3 stage for archival. The team wants maximum write throughput and wants the output organized so downstream tools can read subsets without scanning everything. Which combination of COPY INTO options best achieves this?

A.Add a FILE_FORMAT option of TYPE = CSV with COMPRESSION = NONE
B.Use OVERWRITE = TRUE and leave MAX_FILE_SIZE at its default
C.Set SINGLE = TRUE so the output is one large file
D.Set MAX_FILE_SIZE to a moderate value and use a partition-like folder path in the stage prefix
AnswerD

Controlling MAX_FILE_SIZE splits the unload into many files, which increases parallel write throughput and keeps individual objects manageable. Writing into a structured prefix lets downstream readers prune by folder rather than scanning the whole export. Together these options satisfy both the throughput and the organization goals without requiring post-processing of the unloaded data.

Why this answer

Unload throughput scales with the number of files written in parallel, which is governed by MAX_FILE_SIZE and the warehouse size. Organizing output under a meaningful prefix lets downstream consumers prune by path instead of reading the entire export. Single-file output, overwrite semantics, and uncompressed CSV do not advance either goal and in some cases actively harm performance or safety.

Exam trap

The trap here is treating OVERWRITE or file format settings as throughput levers, when parallelism and path organization are what actually matter for a large unload.

16
MCQmedium

In a data transformation pipeline, what is the primary benefit of using 'Zero-Copy Cloning' for creating a development environment from production data?

A.It ensures that any changes made in the clone are immediately reflected in the production source.
B.It provides a metadata-only copy that does not incur additional storage costs until the data is modified.
C.It automatically transforms the data into a more efficient format for testing.
D.It encrypts the data using a different key to ensure developer privacy.
AnswerB

Zero-copy cloning simply points to the existing micro-partitions of the source table. Because no data is moved, the operation is nearly instantaneous and free. Only when the data in the clone is modified (e.g., through a transformation) are new micro-partitions created, incurring incremental storage costs.

Why this answer

Zero-copy cloning is a unique Snowflake feature that allows for the creation of identical copies of tables, schemas, or databases without duplicating the underlying data. This is a game-changer for data engineers, as it enables safe, isolated testing of transformations using real-world data volumes without the time or cost associated with traditional data movement.

Exam trap

Candidates often think zero-copy clones duplicate physical blocks right away, leading them to miscalculate storage implications when answering questions about development best practices.

17
MCQeasy

Which feature allows a Data Engineer to define a transformation pipeline where the target table automatically updates when the source table changes, without needing to manually define a schedule?

A.Tasks with Streams
B.Dynamic Tables
C.Materialized Views
D.Stored Procedures
AnswerB

Dynamic Tables are designed for declarative pipelines. You define the transformation query, and Snowflake automates the materialization and incremental updates. This eliminates the need for manual scheduling or monitoring of complex task chains, greatly simplifying the data engineering workflow for continuous transformation tasks.

Why this answer

Dynamic Tables provide a declarative approach to data engineering. By defining the target table based on a SQL query, Snowflake manages the dependency graph and incrementally updates the data. This abstracts away the complexity of managing tasks, streams, and manual refresh schedules, making it the most modern and efficient way to handle continuous data transformation in a pipeline.

Exam trap

Test-takers often confuse Dynamic Tables with traditional Tasks or Streams, failing to recognize that Dynamic Tables automatically manage schedules and dependencies declaratively.

18
MCQeasy

A data engineer is reviewing a query profile for a query that performs a large join. The profile shows a high percentage of time spent in the 'Join' node with significant 'Bytes spilled to local storage'. The engineer wants to reduce local spilling without changing the query. Which action is most appropriate?

A.Reduce the size of the smaller table in the join by filtering it.
B.Add a clustering key on the join column of the larger table.
C.Change the join type from a hash join to a sort-merge join.
D.Increase the warehouse size to provide more memory for the join operation.
AnswerD

Local spilling occurs when the join operation's intermediate results exceed the memory available on a warehouse node. Increasing the warehouse size allocates more memory per node, allowing the join to process larger datasets in memory and reducing or eliminating local spilling. This directly addresses the memory constraint without altering the query. Other options like filtering or clustering might reduce data volume but do not directly increase the memory available to the join operation.

Why this answer

Local spilling during a join indicates that the join operation is exceeding the memory available on a warehouse node. Increasing the warehouse size provides more memory per node, which can accommodate larger intermediate results and reduce spilling. Filtering, clustering, or changing join types may have indirect benefits but do not directly resolve the memory pressure.

Therefore, scaling up the warehouse is the most appropriate action.

Exam trap

The trap here is assuming that reducing data volume through filtering or clustering will automatically fix spilling, when the issue is often insufficient memory for the operation.

19
MCQmedium

A data engineer needs to move a large table from an on-premises Oracle database into Snowflake on a recurring nightly basis. The source system allows outbound connections to cloud endpoints but does not permit installing third-party agents on the database host. Which Snowflake-native approach best fits these constraints?

A.Create an external table directly over the Oracle database
B.Mount the Oracle data files as a network share and query them with a directory table
C.Stage the extracted files in cloud storage and use COPY INTO with a storage integration
D.Use Snowpipe Streaming with the Snowflake Kafka connector pointed at Oracle
AnswerC

Extracting to cloud storage and then using COPY INTO with a storage integration is the standard Snowflake-native pattern when agents cannot be installed on the source. The storage integration avoids embedding long-lived cloud credentials in SQL, and COPY INTO provides parallel, resumable loading with load metadata tracking. It also keeps the Oracle host limited to outbound file transfers, which matches the stated network constraint.

Why this answer

When agents cannot be installed on a source database, the practical Snowflake-native pattern is to extract to cloud storage and load with COPY INTO. A storage integration keeps credentials out of SQL, and COPY INTO handles parallelism, error handling, and load history. Streaming connectors and external tables assume different source technologies and would not work against a plain Oracle host under these constraints.

Exam trap

The trap here is reaching for a streaming connector or external table when the source is a batch database and the host cannot run additional agents.

20
MCQhard

Refer to the exhibit. A data engineer applies search optimization to a table to speed up point lookups. How does this transformation impact the storage and maintenance costs for the table?

A.It has no impact on storage as it uses the existing metadata of the micro-partitions.
B.It increases storage costs and uses serverless compute for maintenance.
C.It only increases compute costs during the initial build phase, with no ongoing costs.
D.It reduces storage costs by compressing the base table micro-partitions more efficiently.
AnswerB

When search optimization is enabled, Snowflake builds a search access path. Maintaining this path as the table is updated requires serverless compute resources, which are billed to the account. Additionally, the search access path itself occupies storage, adding to the monthly storage bill for that specific database object.

Why this answer

The Search Optimization Service is a background process that creates a persistent search access path (index-like structure). It significantly improves performance for point lookups but comes at a cost. The service consumes both storage for the search access path and serverless compute for the background maintenance as data in the base table is modified over time.

Exam trap

Many candidates incorrectly believe that the search optimization service only incurs standard table storage costs without utilizing background serverless compute resources for ongoing maintenance.

21
MCQhard

Refer to the exhibit. A data engineer is analyzing a Query Profile for a long-running join operation. Based on the provided JSON statistics, what is the most effective action to improve the performance of this specific query?

A.Enable the Search Optimization Service on the join columns.
B.Apply a clustering key to the tables involved in the join.
C.Rewrite the query to use a Common Table Expression (CTE).
D.Scale up the virtual warehouse to a larger size.
AnswerD

Scaling up to a larger warehouse increases the available RAM and local SSD space for each compute node. This allows the join operation to be processed entirely in memory or reduces spillage to local disk, completely avoiding the highly latent remote disk spillage that is currently degrading the query performance.

Why this answer

The exhibit shows significant spillage to both local and remote disk, with 1.2TB reaching remote storage. Remote spillage is a critical performance bottleneck because it involves network latency to S3/Azure Blob. Moving to a larger warehouse provides more memory and local storage per node, allowing the join to stay in-memory or on faster local SSDs.

Exam trap

Candidates often try to optimize the query SQL or add indexes. They fail to recognize that remote disk spillage is a hardware-capacity issue that requires more memory per node via scaling.

22
MCQmedium

Refer to the exhibit. A data engineer runs SYSTEM$CLUSTERING_INFORMATION on a table. Based on the output, what is the most accurate interpretation of the table's current state?

A.The table is perfectly clustered because the average depth is less than 10.
B.The clustering depth indicates that a significant number of micro-partitions overlap.
C.The table does not have a clustering key defined, so the depth is irrelevant.
D.The constant partition count of 100 means the table is mostly read-only.
AnswerB

High average overlaps and a depth of 8.4 indicate that the values for C1 and C2 are scattered across many different micro-partitions. This overlap prevents efficient partition pruning during query execution, as the warehouse must open multiple partitions to find all relevant records for a specific key range.

Why this answer

The clustering information provides metrics on how well data is grouped within micro-partitions. An average depth of 8.4 and high average overlaps (12.5) relative to the total partitions suggest that the table is not well-clustered for the specified keys. This indicates that queries filtering on C1 and C2 will likely scan more partitions than necessary.

Exam trap

Candidates often misinterpret high clustering depth as a good sign, failing to realize that high values indicate significant overlap and inefficient data pruning, which degrades query performance.

23
MCQhard

A data engineer has a permanent table ORDERS_FACT in an Enterprise Edition account with DATA_RETENTION_TIME_IN_DAYS set to 14. The table was dropped 20 days ago. The engineer now runs UNDROP TABLE ORDERS_FACT. What is the outcome?

A.The UNDROP succeeds because Fail-safe keeps dropped tables recoverable for up to 90 days.
B.The UNDROP succeeds and restores the table with its data intact.
C.The UNDROP fails because the table is beyond the 14-day Time Travel window and is now only recoverable through Snowflake Support from Fail-safe.
D.The UNDROP succeeds but only restores the table structure without any data.
AnswerC

Once a dropped table passes its Time Travel retention period, it enters Fail-safe for an additional 7 days. During Fail-safe, the table cannot be restored by the user with UNDROP; only Snowflake Support can recover it, and that recovery is not guaranteed. Since 20 days exceeds the 14-day retention, UNDROP is not possible.

Why this answer

UNDROP restores a dropped table only while it remains within its Time Travel retention window. With a 14-day retention and a drop 20 days ago, the table has left Time Travel and entered Fail-safe, which lasts 7 days and is accessible only through Snowflake Support. Therefore the UNDROP fails and user-level recovery is no longer available.

Exam trap

The trap here is believing UNDROP can reach into Fail-safe, when Fail-safe recovery is restricted to Snowflake Support and is not a user-accessible recovery path.

24
MCQmedium

A data engineer needs to continuously ingest JSON event files landing in an Amazon S3 bucket. The ingestion must be automatic, near real-time, and must reuse the same transformation logic already validated in a COPY INTO statement. The team wants the least administrative overhead. Which Snowflake feature should they configure?

A.A scheduled task that runs COPY INTO every five minutes against the S3 stage
B.An external table defined over the S3 stage with automatic refresh enabled
C.A materialized view created over an external table pointing at the S3 stage
D.A Snowpipe configured with COPY INTO from the S3 stage
AnswerD

Snowpipe loads files automatically as they arrive by executing a COPY INTO statement that can include transformations, column mappings, and error handling. It uses event notifications plus a queue with serverless compute, so no warehouse management is required. This matches the need for automatic, near real-time ingestion with minimal administrative overhead.

Why this answer

Snowpipe is the Snowflake service built for continuous, event-driven loading. It runs COPY INTO statements automatically when new files arrive and can embed transformation logic, so the validated COPY logic is reused. Because it uses serverless compute triggered by cloud event notifications, it provides near real-time ingestion with very little operational management, fitting the stated constraints.

Exam trap

The trap here is assuming that an external table with automatic refresh performs data ingestion into a table, when it only maintains file metadata for querying.

25
MCQmedium

A data engineer needs to move data from a Snowflake table in the 'US-WEST-2' region to another Snowflake table in the 'EU-CENTRAL-1' region. What is the most resilient and automated way to keep these tables synchronized?

A.Unload the data to an S3 bucket in US-WEST-2 and use Snowpipe to load it into EU-CENTRAL-1.
B.Use the Snowflake Database Replication feature to sync the database containing the table to the target region.
C.Create an External Function that calls a Python script to copy data via the Snowflake Connector.
D.Set up a Secure Data Share between the two regions and use a CREATE TABLE AS SELECT statement.
AnswerB

Database Replication is the native Snowflake solution for moving data between regions and accounts. It is highly automated, supports incremental updates, and ensures data consistency. It also provides the foundation for disaster recovery, making it the most robust choice for cross-region data movement requirements.

Why this answer

Snowflake's Database Replication and Failover features are designed specifically for cross-region data movement. By setting up a secondary database in the target region and enabling replication, Snowflake handles the secure transfer of data and metadata automatically. This is more resilient than manual export/import processes and leverages Snowflake's global backbone for data transfer.

Exam trap

Candidates frequently confuse manual zero-copy clones or standard table exports with cross-region replication, missing that automated database replication is built specifically for multi-region resilience.

26
MCQmedium

Which of the following is the most cost-effective way to handle massive concurrent read-only queries?

A.Increase the warehouse size.
B.Use a multi-cluster warehouse with economy scaling.
C.Enable query pruning.
D.Create materialized views for every user.
AnswerB

Multi-cluster warehouses scale horizontally to handle high concurrency. The 'Economy' policy specifically optimizes for cost by being more conservative about adding new clusters, which is ideal for read-only workloads where some queuing is acceptable to save credits compared to the 'Standard' policy.

Why this answer

Multi-cluster warehouses are designed specifically to handle high concurrency. By setting the scaling policy to 'Economy', Snowflake adds clusters only when the queue grows, prioritizing cost over immediate startup. This allows the system to scale horizontally to meet demand without requiring manual intervention, effectively balancing user experience with credit consumption.

It is the standard solution for environments where dashboard traffic spikes and performance must be maintained without over-provisioning compute resources.

Exam trap

Candidates often select 'Maximizing' scaling policy, thinking it is the best for performance, but it ignores the cost-effectiveness requirement specified in the question for handling massive read-only concurrency.

27
Multi-Selecthard

A data engineer is designing a pipeline that loads semi-structured data from an external stage into a Snowflake table with a VARIANT column. The files contain nested arrays and keys that vary between records. Which TWO configuration choices should the engineer make to handle the variability and preserve the structure? (Choose two.)

Select 2 answers
A.Set the file format TYPE to CSV with a delimiter that matches the JSON structure.
B.Define a fixed relational schema for every possible key before loading.
C.Enable STRIP_OUTER_ARRAY so a top-level JSON array is loaded as individual rows.
D.Use MATCH_BY_COLUMN_NAME = CASE_SENSITIVE to map JSON keys to columns.
E.Set the file format TYPE to JSON and load into a single VARIANT column.
AnswersC, E

When a file contains a single top-level array of objects, STRIP_OUTER_ARRAY removes that outer array and loads each element as a separate row. This is essential for making the nested records queryable as individual rows rather than one giant array value.

Why this answer

Loading JSON into a VARIANT column preserves nested arrays and varying keys without a fixed schema, and STRIP_OUTER_ARRAY turns a top-level array into individual rows. Together they handle the semi-structured variability. CSV cannot represent nesting, a fixed schema cannot accommodate unknown keys, and column-name matching requires pre-defined columns.

Exam trap

The trap here is treating semi-structured data like relational data; forcing a fixed schema or CSV mapping breaks nested arrays and varying keys that VARIANT is designed to hold.

28
Multi-Selectmedium

A data engineer is using Snowpark for Python to perform transformations on a Snowflake table. The engineer wants to leverage Snowpark's capabilities for data transformation. Which two statements accurately describe Snowpark's features for transformation? (Choose two.)

Select 2 answers
A.Snowpark automatically caches all intermediate transformation results in memory on the client side to speed up iterative development.
B.Snowpark requires data to be extracted to a local Python environment for any transformation that uses third-party libraries.
C.Snowpark allows you to write transformations using a DataFrame API that is lazily evaluated and executed on the Snowflake compute engine.
D.Snowpark provides a built-in visual interface for designing transformation pipelines without writing code.
E.Snowpark supports user-defined functions (UDFs) written in Python, Java, and Scala, which can be used within transformations.
AnswersC, E

Snowpark's DataFrame API is designed for lazy evaluation, meaning transformations are not executed until an action is triggered. The operations are pushed down to Snowflake's engine for execution, leveraging its scalability. This is a core feature that enables efficient processing of large datasets without pulling data to the client.

Why this answer

Snowpark's DataFrame API enables lazy evaluation and pushdown to Snowflake, and it supports UDFs in multiple languages. These two features are fundamental for performing transformations efficiently. The other options incorrectly describe Snowpark as caching client-side, requiring data extraction, or providing a visual interface, which are not accurate.

Exam trap

The trap here is assuming Snowpark caches data locally or requires data extraction for third-party libraries, when in fact it pushes computation to Snowflake and supports dependencies within UDFs.

29
MCQmedium

A user complains that a dashboard query is slow during peak hours. The warehouse is configured with auto-suspend and auto-resume. What is the most likely cause of the latency observed during the initial execution?

A.The query result cache is full.
B.Warehouse provisioning time.
C.The warehouse size is too small.
D.The metadata cache is invalidated.
AnswerB

When a warehouse is suspended, the first query triggers the provisioning of compute resources. This latency is inherent to the cloud-native architecture of Snowflake. Once the resources are active, subsequent queries will run faster because the compute is already 'warm' and ready to process incoming execution requests.

Why this answer

When a warehouse is in a suspended state, the first query submitted triggers a 'cold start' as Snowflake provisions compute resources. This process involves allocating virtual nodes, which takes a few seconds, leading to latency. This is a common occurrence in environments using auto-suspend to save costs.

Understanding this behavior is vital for performance tuning, as engineers often confuse this infrastructure provisioning time with actual query execution performance issues.

Exam trap

Candidates often incorrectly attribute the latency to network congestion or result cache misses, failing to realize that a suspended warehouse must provision resources before it can process any query.

30
MCQeasy

A data engineer needs to prevent any future column additions to a critical ORDERS table from containing unprotected PII. The goal is to automatically classify new columns and receive alerts when sensitive data is detected. Which Snowflake feature should be configured to achieve this?

A.Data Classification with automatic tagging and notifications
B.Object Tagging with manual tag assignment
C.Dynamic Data Masking policies on the table
D.Row Access Policies on the table
AnswerA

Data Classification scans tables and views to identify PII and other sensitive data. When enabled on a table, it automatically tags columns and can send notifications via email or integration when new sensitive columns are detected, ensuring ongoing protection.

Why this answer

Data Classification is designed to automatically scan and classify columns containing sensitive data, including PII. It can be configured to send notifications when new sensitive columns are detected, providing ongoing governance without manual effort. This directly addresses the need to protect future column additions.

Exam trap

The trap here is assuming that masking policies or tags alone provide automatic detection of new sensitive columns, when only Data Classification offers that capability.

31
MCQeasy

What is the primary purpose of a 'Secure View' in Snowflake from a governance perspective?

A.To increase the performance of complex joins.
B.To hide the underlying view definition and schema metadata.
C.To automatically mask PII in the output.
D.To allow users to modify the base tables.
AnswerB

Secure views provide a layer of obfuscation where the view definition and internal query structure are hidden from all users except those with specific ownership privileges. This prevents users from reverse-engineering the logic used to create the view, which is a key requirement for secure multi-tenant or external data sharing.

Why this answer

A Secure View is designed to prevent users from seeing the underlying logic or source data of the view, even if they have been granted select access. By hiding the view definition and internal metadata, organizations can expose specific data subsets to external partners or internal teams without risking the disclosure of proprietary business rules or underlying table structures that might contain sensitive information.

Exam trap

Candidates often think Secure Views improve query performance through caching, whereas their primary purpose is strictly security and obfuscating underlying view definitions.

32
MCQeasy

A query is slow because it is scanning a massive table. The filters are on columns that are not currently clustered. What is the most immediate step to improve performance?

A.Use the SEARCH OPTIMIZATION service.
B.Add a clustering key on the filter columns.
C.Rewrite the query to use an INNER JOIN.
D.Scale down the warehouse to a smaller size.
AnswerB

Clustering keys align the physical data storage with the query filter patterns. This allows Snowflake to skip micro-partitions that do not contain the data matching the filter criteria. This reduces I/O significantly, which is the primary bottleneck for massive table scans, leading to immediate performance improvements.

Why this answer

When dealing with massive table scans, the most immediate improvement comes from reducing the volume of data read. If the filter columns aren't clustered, adding a clustering key is the most direct way to inform the engine which partitions can be skipped. This is a foundational performance technique in Snowflake, allowing the database to prune partitions based on the filter criteria, thereby reducing I/O and accelerating query execution without needing to change existing query SQL code.

Exam trap

Candidates often suggest scaling up the warehouse size immediately to speed up the scan, missing that clustering is the most effective way to avoid reading irrelevant data entirely.

33
MCQmedium

Refer to the exhibit. Why can the user not change the retention time of the table 'SENSITIVE_DATA' to 30 days?

A.The table is transient, which limits retention to one day.
B.The user lacks the OWNERSHIP privilege on the table.
C.The table is currently locked by a running query.
D.The table has change tracking enabled.
AnswerA

Transient tables in Snowflake are designed for temporary data and support a maximum retention period of only one day. This architectural constraint prevents users from extending the Time Travel window beyond 24 hours, regardless of the Snowflake edition or account settings, ensuring efficient storage for short-lived, transient datasets.

Why this answer

The exhibit shows the table is a TRANSIENT table. Snowflake limits the retention period for transient tables to a maximum of one day. Because the table was created with the TRANSIENT keyword, it does not support long-term Time Travel, and the DATA_RETENTION_TIME_IN_DAYS parameter cannot be set to a value higher than 1.

To support 30 days, the table must be recreated as a permanent table.

Exam trap

Candidates overlook table properties like transient status and attempt to configure retention periods that exceed the strict limits imposed by Snowflake.

34
Multi-Selecthard

A data engineer is using Snowpipe to load data from an external stage. The pipe is configured with AUTO_INGEST = TRUE. Which two statements are true regarding the behavior of Snowpipe in this configuration? (Choose two.)

Select 2 answers
A.Snowpipe periodically polls the external stage for new files based on a defined schedule.
B.Snowpipe relies on cloud storage event notifications to trigger the load process.
C.AUTO_INGEST = TRUE requires the stage to be an internal stage.
D.The pipe's load history is used to prevent re-ingestion of files that have already been processed.
E.Snowpipe automatically creates a notification integration if one does not exist.
AnswersB, D

When AUTO_INGEST is set to TRUE, Snowpipe uses event notifications from the cloud storage service (e.g., S3, Azure Blob Storage, GCS) to detect new files. These notifications are sent to a queue that Snowflake monitors, triggering the pipe to load the new files. This enables near real-time ingestion.

Why this answer

Snowpipe with AUTO_INGEST uses cloud storage event notifications to trigger loads and maintains a load history to avoid duplicates. It does not poll the stage, does not auto-create integrations, and is not compatible with internal stages.

Exam trap

The trap here is assuming Snowpipe polls the stage or that it automatically sets up notification integrations, when in fact it requires manual configuration and is event-driven.

35
MCQhard

A data engineer needs to transform a large fact table by adding a column that contains the previous row's `sale_amount` partitioned by `customer_id` and ordered by `sale_date`. The table has billions of rows, and the transformation must run efficiently without shuffling data unnecessarily. Which Snowflake feature should be used to achieve this?

A.Use a correlated subquery that selects the maximum `sale_amount` from the same table where `sale_date` is less than the current row's `sale_date`.
B.Use the `LAG` window function with a `PARTITION BY customer_id ORDER BY sale_date` clause.
C.Use the `LEAD` window function with a `PARTITION BY customer_id ORDER BY sale_date` clause and then reverse the order.
D.Use a self-join on `customer_id` where the right table's `sale_date` is less than the left table's `sale_date`, then filter to the maximum right `sale_date`.
AnswerB

LAG is designed to access a previous row within a window. Partitioning by customer_id and ordering by sale_date ensures the previous sale for each customer is correctly identified, and Snowflake's optimizer can leverage clustering or partitioning to reduce data movement, making it efficient for large tables.

Why this answer

The LAG window function is specifically designed to return a value from a preceding row within a partition. Partitioning by customer_id and ordering by sale_date ensures the immediate previous sale for each customer is correctly identified. Snowflake's optimizer can handle large datasets efficiently with window functions, avoiding the costly shuffles typical of self-joins or correlated subqueries.

Exam trap

The trap here is thinking that a self-join or correlated subquery is necessary to access a previous row, when a window function like LAG is the optimized, correct tool.

36
MCQmedium

A data engineer is configuring Snowpipe to ingest files from an S3 bucket. The bucket contains files with different schemas. Which approach allows the engineer to handle these variations without creating separate pipes?

A.Define multiple pipes pointing to the same stage with different pattern matching.
B.Use a schema-on-read approach by configuring the pipe to cast columns explicitly.
C.Load the files into a table with a VARIANT column to store the semi-structured data.
D.Configure the pipe to use an external table instead of loading data into an internal table.
AnswerC

Loading into a VARIANT column provides the most flexibility for varied schemas. Snowflake automatically parses JSON, Avro, or Parquet structures into the variant type. This allows the ingestion process to proceed regardless of column additions or removals, deferring the structural parsing to the transformation layer.

Why this answer

Using a single Snowpipe with a variant column is the most scalable pattern for schema drift or varied structures. By loading raw data into a VARIANT column, the engineer avoids the overhead of managing multiple pipe definitions. This allows downstream transformations using SQL views or dynamic tables to parse the specific keys as needed, ensuring the ingestion process remains decoupled from schema changes while maintaining a low-latency data pipeline architecture.

Exam trap

Candidates often suggest creating multiple pipes for different file structures. This is an anti-pattern that increases management overhead and complexity unnecessarily.

37
MCQmedium

A data engineer notices that a query performing a large GROUP BY on a high-cardinality column is slow. The Query Profile shows that the aggregation step is spilling to local disk. The engineer wants to reduce local spilling without changing the query logic. Which action is most appropriate?

A.Add an ORDER BY clause on the grouping column to sort data before aggregation.
B.Reduce the warehouse size to decrease contention among nodes.
C.Increase the warehouse size to provide more memory for the aggregation.
D.Set the MAX_CONCURRENCY_LEVEL parameter to 1 to give the query more resources.
AnswerC

A larger warehouse provides more memory per node and more nodes, allowing the aggregation to process higher-cardinality groups without exceeding memory limits. This directly reduces local spilling because the hash table can fit in memory. Scaling up is a standard response when the Query Profile shows local disk spilling in an aggregation step and the query logic cannot be changed.

Why this answer

Local disk spilling in a high-cardinality GROUP BY means the aggregation's hash table exceeds available memory on the nodes. Increasing the warehouse size adds memory and compute nodes, allowing the hash table to remain in memory and eliminating the spill. This is the most direct fix when the query logic cannot be changed and the profile clearly points to the aggregation step as the spill location.

Exam trap

The trap here is thinking that sorting or reducing warehouse size can fix spilling, when the real issue is insufficient memory per node for a high-cardinality aggregation.

38
Multi-Selectmedium

A data engineer is responsible for implementing data governance in Snowflake. The organization requires that all access to sensitive data be auditable and that data usage can be attributed to specific users and roles. Which two Snowflake features should the engineer use to meet these requirements? (Choose two.)

Select 2 answers
A.Query History in the ACCOUNT_USAGE schema to see all queries executed in the account.
B.Tag-based masking policies to enforce access controls based on tags.
C.Access History in the ACCOUNT_USAGE schema to track read and write access to columns.
D.Data Classification to automatically tag sensitive columns and track their usage.
E.Object Dependencies in the ACCOUNT_USAGE schema to map relationships between tables and views.
AnswersA, C

Query History captures all queries executed, including the user, role, and SQL text. It can be used to attribute data usage to specific users and roles. While it does not directly record column-level access, it provides a comprehensive audit trail of query activity. Combined with other features, it helps meet the requirement for auditable access.

Why this answer

Access History and Query History in the ACCOUNT_USAGE schema both provide detailed audit trails of data access. Access History records column-level read and write access, while Query History captures all queries with user and role information. Together, they enable comprehensive auditing and attribution of data usage to specific users and roles, meeting the governance requirements.

Exam trap

The trap here is assuming that data classification or masking policies provide auditing; they enforce controls but do not record access events.

39
MCQeasy

A data engineer is analyzing a query that filters on a column named 'status' which has only 5 distinct values. The table has 10 billion rows. The query is running slowly, and the query profile shows a full table scan. Which action is most likely to improve performance?

A.Use a materialized view that pre-filters on the 'status' column.
B.Add a search optimization service on the 'status' column.
C.Create a clustering key on the 'status' column.
D.There is no effective optimization for this query; full scan is expected.
AnswerD

When filtering on a low-cardinality column with only 5 distinct values, the query will typically return a large percentage of the table (e.g., 20% per value). Snowflake's micro-partition pruning is ineffective because most partitions contain all statuses. Thus, a full table scan is unavoidable and is the expected behavior. Other optimizations like clustering or search optimization do not help. The engineer should accept that the scan is necessary unless the query can be rewritten to filter on a more selective column.

Why this answer

Filtering on a low-cardinality column such as 'status' with only 5 values means the query will likely retrieve a large fraction of the table. Snowflake's pruning relies on micro-partition metadata, but with so few distinct values, each micro-partition will contain multiple statuses, so pruning cannot eliminate many partitions. Clustering or search optimization on such a column is ineffective.

Therefore, a full table scan is the expected and necessary operation, and there is no effective optimization for this specific filter.

Exam trap

The trap here is assuming that any filter can benefit from clustering or search optimization, when low-cardinality columns are inherently poor candidates for pruning.

40
MCQmedium

To comply with privacy regulations, a data engineer must ensure that certain columns in a table are masked for unauthorized users during transformation. Which Snowflake feature provides a way to define re-usable masking logic that is automatically applied at query time?

A.Row Access Policies
B.External Tables with encrypted files
C.Dynamic Data Masking Policies
D.Secure Views with hardcoded filters
AnswerC

Dynamic Data Masking allows for the creation of policies that use SQL logic (like CASE statements) to determine how data should appear. When assigned to a column, the policy transforms the output for unauthorized roles (e.g., replacing a social security number with 'XXX-XX-XXXX') while keeping the raw data intact.

Why this answer

Dynamic Data Masking is a security-focused transformation feature that allows engineers to protect sensitive data without changing the underlying stored values. By creating Masking Policies and applying them to columns, Snowflake ensures that the transformation (masking) happens dynamically based on the role and context of the user executing the query.

Exam trap

Candidates often confuse static table views or hardcoded column transformations with dynamic masking, missing that masking policies apply automatically based on user roles at query time.

41
Multi-Selecthard

A data engineer is designing a data protection strategy for a set of permanent tables in a Snowflake Enterprise Edition account. The engineer needs to ensure that accidental data modifications can be reversed and that dropped tables can be restored by the team without opening a support ticket. Which two configuration choices support these goals? (Choose two.)

Select 2 answers
A.Create zero-copy clones of critical tables on a schedule to maintain independent point-in-time copies.
B.Disable Time Travel on critical tables to avoid storage charges and rely solely on external backups.
C.Rely on Fail-safe to restore dropped tables without involving Snowflake Support.
D.Use transient tables for all critical data to reduce storage costs while keeping recovery options.
E.Set DATA_RETENTION_TIME_IN_DAYS to a value greater than 1 on the critical tables.
AnswersA, E

Scheduled zero-copy clones provide independent copies that reference shared micro-partitions initially, costing little until data diverges. If the source is modified or dropped, a clone can serve as a recovery point. This complements Time Travel by giving the team a self-service restoration option that does not depend on Snowflake Support, supporting the stated goals.

Why this answer

Extending Time Travel retention beyond the default gives the team a longer window to query historical states and run UNDROP without support involvement. Scheduled zero-copy clones add independent recovery points that share storage until data diverges. Together these provide self-service reversal of modifications and restoration of dropped tables, whereas Fail-safe, transient tables, and disabling Time Travel all fail to meet the stated recovery objectives.

Exam trap

The trap here is treating Fail-safe as a user-accessible recovery option and believing transient tables preserve long recovery windows, when both limit self-service restoration.

42
MCQhard

A data engineer is analyzing a Query Profile for a query that joins a large fact table to a small dimension table. The profile shows a significant amount of time spent in the 'Join' operator, and the 'Bytes spilled to remote storage' metric is high. The engineer has already confirmed that the small table is used as the build side. Which optimization should the engineer try next to reduce remote spilling?

A.Increase the warehouse size to provide more memory per node.
B.Change the join type from inner join to left join to reduce data shuffling.
C.Use a clustering key on the join column of the large table to reduce the build side size.
D.Add a filter to the small table to reduce its size further.
AnswerA

Even with the small table as the build side, the probe side or other concurrent operations may exceed memory, causing remote spilling. Increasing warehouse size adds memory per node, which can eliminate the spill by allowing the join to process more data in memory. This is a direct way to address memory pressure without changing the query.

Why this answer

Remote spilling indicates that the join operator exceeded its memory budget. Even with a small build side, the probe side or concurrent operations can cause memory pressure. Increasing the warehouse size provides more memory per node, allowing the join to complete without spilling.

Other options either do not address memory or change semantics.

Exam trap

The trap here is assuming that remote spilling is always due to a large build side, when the probe side or overall memory pressure can also be the cause.

43
MCQhard

A data engineer is troubleshooting a Snowpipe that is not loading new files from an external Amazon S3 stage. The pipe definition is valid and manual ALTER PIPE ... REFRESH loads the files successfully, but automatic ingestion never triggers. Which cause is most consistent with these symptoms?

A.The pipe's COPY INTO statement is missing the PATTERN clause
B.The S3 bucket's event notification is not configured to publish to the pipe's notification channel
C.The storage integration is missing the USAGE grant to the role that owns the pipe
D.The target table has a stream attached that is blocking inserts
AnswerB

Manual refresh working while auto-ingest fails points squarely at the event notification path. Snowflake exposes a notification channel for the pipe, and the S3 bucket must be configured to send object-created events to it. If that wiring is absent or points to the wrong channel, files arrive in the bucket but Snowflake is never told, which matches the observed behavior exactly.

Why this answer

When manual pipe refresh succeeds but automatic ingestion never fires, the COPY logic and permissions are proven correct, leaving the event delivery path as the culprit. The S3 bucket must be configured to publish object-created notifications to the pipe's notification channel. Without that subscription, Snowflake has no signal that new files exist, so the pipe stays idle despite valid files and a valid definition.

Exam trap

The trap here is blaming permissions or the COPY statement when a successful manual refresh already proves those layers are working.

44
MCQeasy

Which feature should be used to automate the loading of files from an S3 bucket into Snowflake as soon as they are uploaded, without manual intervention?

A.A scheduled task using the EXECUTE TASK command.
B.Snowpipe using event-based notifications.
C.An external function that writes directly to the table.
D.A recurring COPY INTO command inside a stored procedure.
AnswerB

Snowpipe is purpose-built for continuous, event-driven data loading. By integrating with cloud provider event notifications, it automatically detects new files and queues them for ingestion, providing near-real-time data availability for Snowflake users without requiring manual intervention or complex infrastructure monitoring to track file arrival times.

Why this answer

Snowpipe is the native Snowflake service for continuous data ingestion. It leverages event notifications (such as S3 Event Notifications) to trigger the ingestion process immediately when new files arrive in cloud storage. This automation is vital for real-time reporting and analytics, ensuring that downstream data consumers have access to the freshest data without needing a developer to manually trigger batch processes or schedule cron jobs.

Exam trap

Candidates often confuse Snowpipe with scheduled tasks or manual COPY INTO commands. They mistakenly believe that standard batch loading can be 'automated' without using the specific event-based notification mechanism.

45
MCQmedium

A data engineer runs the following statement on a permanent table in a Snowflake account: ALTER TABLE SALES_ARCHIVE SET DATA_RETENTION_TIME_IN_DAYS = 14; The table previously had a retention of 1 day, and the account is on Enterprise Edition. Which statement accurately describes the effect?

A.The change is rejected because retention can only be increased at table creation time.
B.The table retains historical data for 14 days going forward, but data older than the prior 1-day window is not recovered.
C.The table's storage usage doubles because Snowflake clones all existing micro-partitions to extend retention.
D.Existing historical data older than 1 day becomes immediately available for Time Travel queries.
AnswerB

Raising DATA_RETENTION_TIME_IN_DAYS extends the window for future changes. Historical versions already purged under the previous 1-day setting are not restored. This accurately reflects how the retention parameter applies going forward without retroactively recovering expired data, which is the correct behavior for SALES_ARCHIVE.

Why this answer

Increasing DATA_RETENTION_TIME_IN_DAYS extends the Time Travel window for future data changes. It does not retroactively recover historical versions that were already purged under the shorter retention period. The engineer should expect protection for new modifications over the next 14 days, not restoration of previously expired history.

Exam trap

The trap here is believing that lengthening the retention period retroactively restores data that was already purged.

46
MCQmedium

What is the result of increasing the DATA_RETENTION_TIME_IN_DAYS from 1 to 5 days on an existing table?

A.All data from the last 5 days becomes immediately accessible.
B.The table begins retaining historical data for 5 days moving forward.
C.The storage cost remains the same as it was.
D.The change takes effect only after the next vacuum process.
AnswerB

Increasing the retention setting tells Snowflake to hold onto data versions for the new, longer period starting from the time the parameter is updated. This allows for a longer Time Travel window for future data states, supporting the requirement to access historical data for analysis or recovery operations.

Why this answer

Increasing the retention period immediately updates the table's metadata. Going forward, Snowflake will begin retaining the historical data for 5 days instead of 1. This change does not retroactively 'create' historical data that has already been purged from the 1-day window; it only applies to the data state from the moment of the change onwards.

This distinction is vital for planning data recovery and compliance audits.

Exam trap

Candidates frequently assume that increasing the retention period will retroactively 'recover' or make previously purged data available, which is incorrect as the change only applies to future data states.

47
MCQmedium

Which Snowflake feature helps in managing data transformation pipelines by providing a visual and programmatic way to handle task dependencies and state management?

A.Streams
B.Stored Procedures
C.Tasks with dependencies (DAG)
D.External Tables
AnswerC

Defining tasks with an 'AFTER' clause creates a DAG, allowing Snowflake to manage the execution order and dependencies automatically. This is the recommended approach for orchestrating complex transformation pipelines within the database, providing native support for success/failure triggers and clear visibility into the entire workflow.

Why this answer

A Directed Acyclic Graph (DAG) of tasks allows for complex, multi-step transformation sequences where each task can have dependencies on the success of prior tasks. This structure provides a clear, manageable workflow for production ELT. By centralizing the orchestration logic within Snowflake, engineers avoid the need for external workflow schedulers, simplifying the architecture and improving observability through standard Snowflake monitoring views and query history tools.

Exam trap

Test-takers often confuse DAG tasks with simple streams or dynamic tables, missing the specific orchestration structure provided by parent-child task dependencies.

48
MCQmedium

A data engineer is analyzing a slow-running query that performs a large aggregation over a table with many columns. The query profile shows that most time is spent in the 'Aggregate' operator, and there is significant data spilling to local disk. Which action is most likely to reduce the spilling and improve performance?

A.Rewrite the query to use a window function instead of a GROUP BY aggregation.
B.Increase the warehouse size to provide more memory for the aggregation.
C.Add a clustering key on the column used in the GROUP BY clause.
D.Enable the USE_CACHED_RESULT parameter to reuse previous aggregation results.
AnswerB

Increasing the warehouse size provides more memory and compute resources per node, which can reduce or eliminate local disk spilling during aggregation. Spilling occurs when the aggregation's working set exceeds available memory. A larger warehouse has more memory, allowing the aggregation to be processed in-memory. This directly addresses the spilling issue and is a straightforward optimization.

Why this answer

Local disk spilling during aggregation indicates that the aggregation's working set exceeds the available memory on the warehouse nodes. Scaling up the warehouse provides more memory per node, which can allow the aggregation to be performed in-memory, reducing spilling and improving performance. This is a direct and effective solution for memory-bound operations.

Exam trap

The trap here is assuming that clustering or query rewriting will fix spilling, when the root cause is insufficient memory and scaling up is the most direct remedy.

49
MCQhard

Refer to the exhibit. A security administrator executes this query to audit access to a sensitive table. What specific information is captured in the 'base_objects_accessed' column regarding the data lineage of this query?

A.It lists only the immediate view name that the user referenced in their SELECT statement.
B.It displays the metadata of the warehouse used to execute the query for the table.
C.It identifies the specific columns and rows that were filtered out by the query optimizer.
D.It identifies the underlying tables that provided the data, even if the user queried a view.
AnswerD

The 'base_objects_accessed' column performs a recursive look-through of views to identify the original source tables. This ensures that even if sensitive data is hidden behind multiple layers of views, the security administrator can still track exactly which underlying physical tables were accessed by the user.

Why this answer

The ACCESS_HISTORY view is a powerful tool for tracking data movement and consumption. The 'base_objects_accessed' field specifically records the underlying source tables (the 'base' objects) that provided the data, even if the user queried a view or a series of nested views. This is vital for accurate compliance reporting and understanding the ultimate source of truth.

Exam trap

Candidates mistakenly believe 'base_objects_accessed' refers to the view itself, failing to realize it specifically tracks the underlying physical tables that actually contain the queried data.

50
MCQeasy

A data engineer is configuring a new permanent table in a Snowflake Standard Edition account. The engineer needs to ensure that the table can be recovered if it is accidentally dropped, but wants to minimize storage costs. The table will be updated frequently. Which DATA_RETENTION_TIME_IN_DAYS setting should the engineer choose to meet these requirements?

A.0
B.7
C.1
D.90
AnswerC

In Snowflake Standard Edition, the maximum Time Travel retention for permanent tables is 1 day. Setting DATA_RETENTION_TIME_IN_DAYS to 1 enables recovery of the table if it is dropped within that 1-day period. This is the minimum setting that provides recovery capability while keeping storage costs low. It meets the requirement to recover the table and minimizes storage overhead.

Why this answer

In Snowflake Standard Edition, permanent tables can have a maximum Time Travel retention of 1 day. To enable recovery of a dropped table while minimizing storage costs, the engineer should set DATA_RETENTION_TIME_IN_DAYS to 1. This provides a 1-day window for recovery and keeps Time Travel storage overhead to a minimum.

Exam trap

The trap here is assuming that longer retention periods are available in Standard Edition, when in fact they are limited to 1 day for permanent tables.

51
MCQhard

A financial services firm stores account balances in a Snowflake table ACCOUNTS. A row access policy is defined so that analysts see only rows where REGION = CURRENT_REGION(). The firm also attaches a masking policy to the BALANCE column that returns NULL for users without the FINANCE role. An analyst with the ANALYST role queries SELECT REGION, BALANCE FROM ACCOUNTS. What will the analyst see?

A.An error is raised because a table cannot have both a row access policy and a masking policy attached.
B.Only rows matching the analyst's region, with BALANCE values returned as NULL because the analyst lacks the FINANCE role.
C.All rows in ACCOUNTS, but BALANCE values are NULL for every row.
D.Only rows matching the analyst's region, with actual BALANCE values visible because row access policies take precedence.
AnswerB

Row access policies and masking policies operate independently and both are enforced. The row access policy filters the result set to rows where REGION matches CURRENT_REGION(), while the masking policy on BALANCE transforms the value to NULL for roles outside FINANCE. The analyst therefore sees only their region's rows, and every BALANCE in those rows is NULL. This is the expected combined behavior when both policy types are attached.

Why this answer

Row access policies and masking policies are complementary and both are enforced at query time. The row access policy constrains which rows are visible based on the region predicate, while the masking policy rewrites the BALANCE value for roles not granted the FINANCE role. The analyst therefore sees a region-filtered result set in which BALANCE is NULL, demonstrating defense in depth.

Exam trap

The trap here is believing that one policy type overrides the other, when in fact row filtering and column masking are applied independently and combine in the result.

52
MCQhard

Refer to the exhibit. The 'sales' table is very large and not clustered. Which action will provide the most significant performance improvement for this query?

A.Enable the Search Optimization Service on the sales table.
B.Increase the warehouse size.
C.Define a clustering key on (region, sale_date).
D.Materialize the query result in a view.
AnswerC

Clustering the table on these two columns will physically organize the micro-partitions. This enables excellent partition pruning, ensuring that the system only reads the partitions containing data for the specified region and date range, significantly reducing the I/O cost and improving the query execution speed.

Why this answer

Since the query filters by 'region' and 'sale_date', performance is bottlenecked by the need to scan large amounts of irrelevant data. By clustering the table on 'region' and 'sale_date', Snowflake will organize the micro-partitions so that they are logically grouped by these columns. This allows the query engine to ignore huge swaths of data, drastically reducing the I/O requirement and accelerating the scan portion of the query.

Exam trap

Test-takers often suggest scaling up the warehouse for filtered queries on large unclustered tables, ignoring that clustering keys are needed to fundamentally reduce unnecessary data scans.

53
Multi-Selectmedium

A data engineer is using Snowpark for Python to transform data. The engineer needs to perform a join between two DataFrames and then apply a filter based on a column from the joined result. Which TWO methods are appropriate for this transformation? (Choose two.)

Select 2 answers
A.Use `DataFrame.union()` to combine the DataFrames, then `DataFrame.filter()` to apply the condition.
B.Use `DataFrame.join()` to combine the DataFrames, then `DataFrame.where()` to apply the condition.
C.Use `DataFrame.join()` to combine the DataFrames, then `DataFrame.filter()` to apply the condition.
D.Use `DataFrame.join()` to combine the DataFrames, then `DataFrame.select()` to apply the condition.
E.Use `DataFrame.merge()` to combine the DataFrames, then `DataFrame.filter()` to apply the condition.
AnswersB, C

DataFrame.where() is an alias for filter() in Snowpark. After joining with DataFrame.join(), calling where() applies the filter condition to the joined DataFrame. This is functionally equivalent to using filter() and is a valid method for applying conditions in a Snowpark transformation pipeline.

Why this answer

In Snowpark, join() combines two DataFrames, and filter() or its alias where() applies a row-wise condition. These methods build a lazy query plan that executes on Snowflake. Other methods like merge(), union(), or select() do not perform a join followed by a row filter, so they are not appropriate for this transformation.

Exam trap

The trap here is confusing Snowpark DataFrame methods with SQL statements or other DataFrame libraries, such as assuming merge() performs a join.

54
MCQmedium

A data engineer is tasked with migrating a 10TB historical dataset from an on-premise HDFS cluster to Snowflake. The data is currently stored in compressed CSV files. What is the most efficient strategy to ensure optimal performance during the initial bulk load into a Snowflake table?

A.Upload the files to an internal stage and use Snowpipe with auto-ingest enabled to process the backlog.
B.Execute a single COPY INTO command targeting the entire directory using an X-Small warehouse to minimize credit consumption.
C.Split the CSV files into sizes of 100-250 MB and use the COPY INTO command with a Large or X-Large warehouse.
D.Use the Snowflake Web Interface (Classic UI) to upload the files directly into the target table in 50MB chunks.
AnswerC

Dividing data into smaller files allows the virtual warehouse to utilize all available compute cores for parallel ingestion. Using a larger warehouse provides more nodes and threads, which significantly decreases the overall time required to load large datasets by distributing the I/O and processing load across the entire cluster.

Why this answer

For massive bulk loads, Snowflake recommends leveraging the COPY INTO command with a properly sized virtual warehouse to maximize parallel processing. Pre-splitting files into the 100-250MB range allows multiple threads across the warehouse nodes to ingest data concurrently. This approach avoids the overhead of serverless compute and provides more control over the ingestion window and resource utilization compared to continuous loading methods.

Exam trap

Candidates often believe that larger warehouses are always better, but they ignore the critical step of file-splitting. Parallelism depends on having enough individual files for the warehouse nodes.

55
MCQmedium

Which Snowflake feature should be used to move data from a private cloud network to Snowflake without traversing the public internet?

A.SnowSQL with VPN tunneling.
B.AWS PrivateLink or Azure Private Link.
C.Snowflake Data Exchange.
D.Snowpipe with an external stage.
AnswerB

PrivateLink enables a private connection between the customer's cloud network and Snowflake by using the cloud provider's backbone network. This avoids traversing the public internet, satisfying security and compliance requirements for sensitive data movement while providing stable, high-bandwidth connectivity for large-scale data ingestion and egress tasks.

Why this answer

For enterprises with strict security requirements, using AWS PrivateLink or Azure Private Link allows for a secure, private connection between the cloud network and Snowflake. This is vital for data movement in highly regulated industries. By eliminating the need for public internet exposure, organizations minimize their attack surface and comply with networking policies, ensuring that sensitive data remains within a controlled, private infrastructure environment throughout the entire transit process.

Exam trap

Candidates frequently confuse PrivateLink with standard VPC peering or simple firewall rules, missing that PrivateLink specifically provides a private, non-internet path directly to the Snowflake service endpoints.

56
MCQeasy

An organization wants to classify their data to identify PII. Which feature should they use to automatically tag columns containing sensitive information?

A.Row Access Policies.
B.Data Classification.
C.Dynamic Data Masking.
D.Query Profile.
AnswerB

Snowflake Data Classification is designed to discover and classify sensitive data like PII. It utilizes built-in system tags to label columns, which can then be used to trigger automated security controls, ensuring that sensitive data is protected according to organizational compliance standards without requiring extensive manual effort.

Why this answer

Object Tagging is the primary governance feature for metadata management. When combined with Snowflake's Data Classification capability, it can automatically scan and suggest tags for columns based on their content, such as PII or financial data. This automation reduces manual labor and ensures that governance policies are consistently applied across large, complex schemas, which is fundamental to maintaining a high-quality data catalog.

Exam trap

Candidates often confuse 'Object Tagging' with 'Data Classification'. While related, tagging is the manual mechanism, whereas Classification is the automated service that scans and suggests those tags for PII.

57
MCQmedium

Which governance tool allows an administrator to audit who accessed a specific table and when?

A.QUERY_HISTORY.
B.ACCESS_HISTORY.
C.OBJECT_DEPENDENCIES.
D.The Security Dashboard.
AnswerB

ACCESS_HISTORY provides a detailed, audit-ready log of data access. It tracks which users accessed which tables, views, and columns. This is the standard tool for governance teams to verify compliance with data privacy regulations and ensure that only authorized roles are interacting with protected data assets.

Why this answer

The ACCESS_HISTORY view within the SNOWFLAKE.ACCOUNT_USAGE schema is the definitive source for auditing data access. It captures comprehensive details, including the query ID, the user, the objects queried, and the columns accessed. This level of granularity is essential for compliance reporting and security monitoring, enabling administrators to identify potential data breaches or unauthorized access patterns across the entire account.

Exam trap

Candidates often confuse ACCOUNT_USAGE views like ACCESS_HISTORY with INFORMATION_SCHEMA views, forgetting that ACCOUNT_USAGE has latency and records historical account-wide activity rather than current session metadata.

58
MCQmedium

During a data loading process using the COPY command, the data engineer notices that the same files are being processed multiple times, leading to duplicate records. Which Snowflake feature is likely being bypassed or misconfigured?

A.The Change Data Capture (CDC) mechanism in the Snowflake Stream.
B.The Load History metadata maintained by the COPY command.
C.The transactional integrity of the Snowflake Virtual Warehouse.
D.The automatic deduplication feature of the VARIANT data type.
AnswerB

Snowflake keeps a record of every file successfully loaded into a table. The COPY command checks this history by default and skips files that have already been processed. If this is bypassed (e.g., by changing file names or using FORCE=TRUE), the same data will be ingested again, resulting in duplicates.

Why this answer

Snowflake's COPY command and Snowpipe both utilize 'load history' metadata to ensure that each unique file is only loaded once into a specific table. This history is maintained for 64 days. If duplicates are appearing, it is often because the files were modified (changing their checksum) or the engineer is using a method that doesn't check the history, such as using a FORCE=TRUE parameter.

Exam trap

Candidates often suggest that Snowflake automatically detects duplicates based on primary keys. However, Snowflake does not enforce uniqueness, so duplicates occur if the 'FORCE' parameter is used.

59
MCQeasy

A data engineer needs to periodically copy incremental data from an on-premises database into Snowflake. The source system can export CSV files to a network share, and the engineer wants to use a Snowflake-managed stage that does not require configuring an external cloud storage bucket. Which stage type should be used?

A.A table stage referenced with @%table_name, which is shared across all users and databases.
B.A user stage referenced with the @~ prefix, which automatically ingests files from any network share.
C.An external stage pointing to an Amazon S3 bucket managed by the engineer.
D.An internal stage created with CREATE STAGE, then upload files using PUT.
AnswerD

An internal stage is storage managed by Snowflake and does not require an external cloud bucket. Files can be uploaded with the PUT command from a local filesystem or network share accessible to the client, then loaded with COPY INTO. This matches the requirement for a Snowflake-managed stage without external cloud storage configuration.

Why this answer

An internal stage is the correct choice because it is managed by Snowflake and does not require an external cloud storage bucket. Files from the network share can be uploaded with PUT and then loaded with COPY INTO. External stages and the various internal stage types do not provide automatic ingestion from network shares.

Exam trap

The trap here is assuming that user or table stages automatically ingest from network shares, when all internal stages require files to be uploaded with PUT first.

60
MCQmedium

A data engineer needs to audit all tag assignments across the account to ensure that no sensitive columns are missing required tags. Which Snowflake view should the engineer query to retrieve a list of all tags applied to columns, including the tag name, value, and the object it is applied to?

A.SNOWFLAKE.ACCOUNT_USAGE.TAGS
B.SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
C.SNOWFLAKE.ACCOUNT_USAGE.POLICY_REFERENCES
D.SNOWFLAKE.ACCOUNT_USAGE.COLUMNS
AnswerB

TAG_REFERENCES is the account usage view that lists all tag references, including the tag name, tag value, and the object (such as a column) to which the tag is applied. It is the correct source for auditing tag assignments across the account.

Why this answer

To audit tag assignments, the TAG_REFERENCES view is the correct choice. It provides a comprehensive list of all tag references, including the tag name, value, and the object (e.g., column) it is applied to. The TAGS view only provides tag metadata, while COLUMNS and POLICY_REFERENCES do not include tag assignments.

Exam trap

The trap here is confusing the TAGS view, which lists tag definitions, with TAG_REFERENCES, which lists where tags are applied.

61
Multi-Selectmedium

An organization is unloading data from a Snowflake table to an external S3 bucket for use in a machine learning pipeline. Which TWO practices will optimize the performance and manageability of the exported files? (Select TWO)

Select 2 answers
A.Set the SINGLE parameter to TRUE to ensure all data is consolidated into one large file.
B.Use the PARTITION BY clause in the COPY INTO <location> statement to organize files into subfolders.
C.Disable compression using the COMPRESSION = NONE parameter to reduce the CPU load on the warehouse.
D.Configure the MAX_FILE_SIZE parameter to generate files that are roughly 100MB to 250MB in size.
E.Always use the OVERWRITE = TRUE parameter to prevent the command from failing if files already exist.
AnswersB, D

The PARTITION BY clause allows engineers to dynamically create a directory structure in the external stage based on column values. This improves the performance of downstream applications that only need to read specific subsets of data and helps maintain a clean, navigable data lake environment for long-term storage.

Why this answer

Optimizing data unloading requires balancing file size and organizational structure. Using the PARTITION BY clause ensures that the exported files are organized into a logical folder hierarchy, which facilitates faster data discovery for downstream tools. Additionally, controlling the MAX_FILE_SIZE ensures that the files are not too large for the consuming application to process efficiently in memory while maintaining parallelism.

Exam trap

Candidates often choose 'file compression' or 'warehouse size' as the primary optimization for unloading. However, file size and folder structure are more critical for downstream read performance.

62
MCQeasy

When a large production table is cloned to a development environment using the CLONE keyword, how is the initial storage for the cloned table billed?

A.The clone is billed at 50% of the original table's storage rate until it is modified.
B.The storage cost is doubled immediately because a physical copy of the data is created.
C.No additional storage is billed until the cloned table or the source table is modified.
D.Only the metadata storage is billed, which is a flat fee of 1 credit per month per clone.
AnswerC

Initial cloning only creates new metadata entries. As long as the micro-partitions remain identical between the source and the clone, no new storage is consumed. Only when DML operations create new micro-partitions will the storage usage diverge, and Snowflake will bill for the unique data blocks.

Why this answer

Snowflake's zero-copy cloning feature works by duplicating the metadata of the source table without copying the underlying micro-partitions. Because both the source and the clone point to the same immutable data blocks initially, there is no additional storage cost until data in either table is modified or new data is added.

Exam trap

Candidates often assume that cloning a table instantly duplicates the physical storage and incurs immediate storage costs, forgetting that zero-copy cloning only shares metadata and micro-partitions until a modification occurs.

63
MCQmedium

A data engineer notices that a daily aggregation query scans 4 TB of a 5 TB table even though it only needs the last seven days of data. The table has a DATE column but no clustering key, and the query filters with DATE >= CURRENT_DATE - 7. Query Profile shows almost no partition pruning. What is the most effective change to reduce bytes scanned?

A.Enable search optimization service on the DATE column to improve range filter performance.
B.Create a materialized view that selects only the last seven days and refresh it on a schedule.
C.Replace the filter with a BETWEEN clause using explicit literal dates instead of CURRENT_DATE arithmetic.
D.Add a clustering key on the DATE column and let Automatic Clustering maintain it.
AnswerD

Without clustering, micro-partitions can contain rows spanning wide date ranges, so a seven-day filter cannot prune much. Clustering on DATE co-locates similar dates into the same micro-partitions, enabling the optimizer to skip partitions outside the range. Automatic Clustering keeps this ordering as new data arrives, directly reducing bytes scanned for the daily query.

Why this answer

Partition pruning depends on how well the filter column correlates with micro-partition boundaries. A DATE clustering key groups similar dates together, allowing the optimizer to skip most micro-partitions for a seven-day filter. Automatic Clustering preserves that layout over time.

Predicate rewrites, materialized views, and search optimization do not change the physical clustering that governs pruning in this scenario.

Exam trap

The trap here is believing that rewriting the date predicate or adding search optimization will improve pruning, when pruning is governed by the physical clustering of the filtered column.

64
MCQeasy

Which Snowflake feature is best suited for transforming data that is already loaded and requires periodic, complex SQL transformations without managing manual scheduling or streams?

A.Materialized Views
B.Dynamic Tables
C.Stored Procedures
D.External Tables
AnswerB

Dynamic tables allow for complex transformations involving joins, aggregations, and window functions. They automatically handle the incremental refresh logic, removing the need for manual task orchestration and stream tracking, making them the ideal choice for declarative data transformation pipelines within the Snowflake ecosystem.

Why this answer

Dynamic Tables provide a declarative approach to data transformation. Users define the query that represents the transformation, and Snowflake manages the refresh frequency, dependencies, and incremental updates automatically. This reduces the administrative burden compared to managing manual Tasks and Streams.

It is the modern standard for building ELT pipelines where the user describes the desired state, and the system ensures the target reflects the source over time.

Exam trap

Candidates often default to Tasks and Streams for simple pipelines. They miss that Dynamic Tables are specifically designed to abstract away the scheduling and incremental logic entirely.

65
MCQmedium

An engineer needs to ensure that a transformation pipeline handles 'late-arriving' data in a streaming context. Which feature is most effective?

A.Using a manual stored procedure to scan for missing data based on timestamps.
B.Using Dynamic Tables with a configured lag target.
C.Implementing a complex Python task to buffer all data in a queue before processing.
D.Overwriting the entire target table with every execution to ensure data integrity.
AnswerB

Dynamic Tables are specifically designed to handle incremental changes, including updates to existing records and late-arriving data. The system automatically manages the refreshes based on the lag target, ensuring that the target table remains consistent with the source data without manual intervention.

Why this answer

Snowflake's Dynamic Tables allow for declarative data transformation pipelines that automatically handle data state, including updates and late arrivals. By defining the lag, the engine manages the re-processing required to integrate new data into the final result set. This eliminates the need for manual handling of late data, which is historically a significant pain point in traditional ETL pipeline design.

Exam trap

Candidates often incorrectly suggest using Streams and Tasks for late-arriving data. While viable, Dynamic Tables are specifically designed to handle the state and refresh logic declaratively without manual orchestrations.

66
MCQmedium

A data engineer is tasked with migrating small, frequent batches of data into Snowflake. Which feature is most appropriate to keep costs low while ensuring the data is processed continuously?

A.A virtual warehouse running 24/7 with a scheduled task.
B.Using Snowpipe for serverless continuous ingestion.
C.Triggering a stored procedure every minute to check the storage stage.
D.Using a large multi-cluster warehouse to process the batches in parallel.
AnswerB

Snowpipe is a serverless feature that automatically scales compute resources based on incoming file volume. It is specifically designed to handle frequent, small batches without requiring an always-on warehouse, providing the most cost-effective and operationally efficient solution for continuous, real-time data movement requirements in a Snowflake environment.

Why this answer

Snowpipe is highly efficient for continuous ingestion because it only charges for the actual compute used during the load. For small, frequent batches, it avoids the cost of keeping a warehouse running 24/7. This cost-effectiveness makes it the ideal choice for real-time ingestion patterns, ensuring that the organization pays only for the resources consumed during data movement, rather than paying for idle compute cycles in a traditional, scheduled warehouse setup.

Exam trap

Candidates often select 'Bulk Loading' or 'Scheduled Tasks' for continuous ingestion. These require manual execution or warehouse uptime, failing the 'continuous' requirement and increasing costs unnecessarily.

67
MCQhard

A user is experiencing 'Data Spilling' in a query that performs a complex window function over a very large dataset. What is the most likely reason this is occurring and how should it be addressed?

A.The query is missing a filter, and scaling out will fix it.
B.The query requires a large sort buffer; scale up the warehouse.
C.The table is not clustered, which causes excessive scanning.
D.The query needs a dedicated 'Snowpark-optimized' warehouse.
AnswerB

Window functions perform memory-intensive operations like sorting. If the dataset exceeds the memory capacity of the current warehouse size, spilling occurs. Scaling up to a larger warehouse increases the memory available to the individual nodes, allowing the sort operation to complete in RAM without disk involvement.

Why this answer

Window functions require sorting data based on the partition and order keys specified in the query. If the dataset is too large for the memory assigned to the warehouse nodes, Snowflake will spill the sorting process to local disk or remote storage. Increasing the warehouse size allocates more memory per node, which can accommodate larger sort buffers, thereby reducing or eliminating the need for disk spilling during the window function operation.

Exam trap

Candidates often think that scaling out (adding clusters) fixes data spilling caused by large window functions, confusing concurrency handling with the need for more memory per node.

68
Multi-Selectmedium

A data engineer is setting up Snowflake Data Classification on a table containing customer feedback. The engineer wants to ensure that the classification process identifies columns with potentially sensitive information and tags them appropriately. Which two actions are required to enable Data Classification on the table? (Choose two.)

Select 2 answers
A.Grant the role used for classification the USAGE privilege on the database and schema containing the table.
B.Enable the ACCOUNTADMIN role to run the classification process.
C.Set the CLASSIFICATION_PROFILE parameter on the table to enable automatic classification.
D.Grant the role used for classification the SELECT privilege on the table to be classified.
E.Create a custom classifier that defines the patterns for sensitive data before running classification.
AnswersA, D

To run Data Classification, the role must have USAGE privileges on the database and schema, as well as SELECT on the table. Without USAGE, the role cannot access the objects to perform the classification. This privilege is a prerequisite and is typically granted to the role that will execute the classification process. Therefore, this action is required.

Why this answer

To perform Data Classification, the role must have USAGE on the database and schema, and SELECT on the table. These privileges allow the classification process to access and sample the data. Custom classifiers and specific roles like ACCOUNTADMIN are not required.

Thus, the two correct actions are granting USAGE and SELECT.

Exam trap

The trap here is assuming that ACCOUNTADMIN is required or that a custom classifier must be created, when basic privileges are sufficient.

69
MCQmedium

A Snowflake data engineer has been tasked with implementing dynamic data masking on a CUSTOMERS table so that the SSN column is fully redacted for all users except those with the role PII_ADMIN. The engineer wants the masking to apply automatically whenever the column is queried, without changing any application SQL. Which Snowflake object should the engineer create and attach to the SSN column?

A.A masking policy created with CREATE MASKING POLICY and applied to the SSN column using ALTER TABLE ... MODIFY COLUMN ... SET MASKING POLICY.
B.A row access policy created with CREATE ROW ACCESS POLICY and attached to the CUSTOMERS table.
C.A secure view that selects all columns from CUSTOMERS but replaces SSN with a constant for non-admins.
D.A tag-based classification using ALTER TABLE ... SET TAG on the SSN column.
AnswerA

A masking policy is the native Snowflake column-level security object designed for this exact scenario. Creating it with CREATE MASKING POLICY and attaching it via ALTER TABLE ... MODIFY COLUMN ... SET MASKING POLICY makes the policy evaluate on every query of the SSN column, returning the raw value only to roles listed in the policy body (such as PII_ADMIN) and a redacted value to everyone else. No application SQL changes are needed.

Why this answer

Dynamic column redaction in Snowflake is implemented with masking policies, which are schema-level objects attached directly to a column. Once attached, the policy expression evaluates on every query, returning the original value to authorized roles and a masked value to others, with no application changes required. This satisfies both the automatic enforcement requirement and the role-based exception for PII_ADMIN.

Exam trap

The trap here is assuming that tagging a sensitive column or building a secure view is equivalent to enforcing dynamic masking, when only an attached masking policy actually rewrites the value at query time.

70
MCQmedium

A data engineering team needs to create a set of tables for an ETL process that involves massive intermediate data transformations. These tables should persist across multiple sessions for 24 hours but do not require long-term disaster recovery protection. Which table type should be used to minimize storage costs while meeting these requirements?

A.Temporary Tables
B.External Tables
C.Transient Tables
D.Permanent Tables
AnswerC

Transient tables persist until explicitly dropped and can be seen by multiple users and sessions, fulfilling the requirement. They support Time Travel up to one day but lack the 7-day Fail-safe period, which significantly lowers storage costs for large-scale intermediate data that does not need disaster recovery.

Why this answer

Transient tables are designed specifically for data that needs to persist beyond a single session but does not require the 7-day Fail-safe protection offered by permanent tables. By excluding Fail-safe, Snowflake reduces the storage footprint and associated costs, making them ideal for intermediate ETL stages where data can be easily re-created if lost.

Exam trap

Candidates often suggest 'Temporary' tables, failing to realize that Temporary tables are session-scoped and would not persist for the required 24-hour duration across multiple sessions.

71
MCQhard

A data engineer accidentally drops a permanent table named CUSTOMER_DIM that had DATA_RETENTION_TIME_IN_DAYS set to 5. Six days after the drop, the engineer runs UNDROP TABLE CUSTOMER_DIM; and it fails. What is the most likely explanation?

A.UNDROP only works within 24 hours of a drop regardless of the retention setting.
B.A new table with the same name was created, which permanently blocked the UNDROP operation.
C.The table entered Fail-safe immediately upon being dropped, making UNDROP unavailable.
D.The 5-day Time Travel window for the dropped table has expired, so the table can no longer be undropped.
AnswerD

UNDROP relies on Time Travel to restore a dropped table, and the recovery window equals the table's retention setting. With 5 days of retention, the table was recoverable for 5 days after the drop. At 6 days, that window has closed, so UNDROP fails. This is why timely recovery action matters.

Why this answer

UNDROP depends on the dropped table's Time Travel retention to locate and restore it. With a 5-day retention setting, the table could only be recovered during those 5 days. At 6 days the window had closed, so the UNDROP statement failed because the historical version was no longer available for restoration.

Exam trap

The trap here is assuming UNDROP has a fixed recovery window rather than one bounded by the dropped table's DATA_RETENTION_TIME_IN_DAYS setting.

72
MCQmedium

A production team uses a permanent table with DATA_RETENTION_TIME_IN_DAYS set to 14. After an accidental DELETE, the team successfully runs a Time Travel query to recover the rows. Two days later, the same team needs to recover a different set of rows that were deleted 20 days ago. What will happen when they attempt Time Travel for the 20-day-old deletion?

A.The Time Travel query will succeed because Fail-safe retains data for 7 days after the Time Travel period.
B.The Time Travel query will succeed only if the table was cloned before the deletion.
C.The Time Travel query will fail because the 20-day-old deletion is beyond the 14-day retention period.
D.The Time Travel query will succeed because permanent tables always retain 90 days of history regardless of the configured setting.
AnswerC

The table has a 14-day Time Travel retention. A deletion that occurred 20 days ago is outside that window, so historical data for that point is no longer available to Time Travel. The earlier successful recovery does not extend the retention period. The team would need a longer retention setting or an external backup strategy.

Why this answer

Time Travel availability is determined by the table's DATA_RETENTION_TIME_IN_DAYS setting. With a 14-day retention, a deletion 20 days in the past is outside the window, so the query cannot return that historical state. A previous successful recovery does not reset or extend the retention period; each recovery must fall within the configured window.

Exam trap

The trap here is confusing Fail-safe with Time Travel, assuming Fail-safe can be queried by users for older data.

73
MCQmedium

A data engineer is optimizing a query that joins a very large fact table to a small dimension table. The Query Profile shows the small table being redistributed across all nodes before the join. Which action is most likely to improve performance?

A.Broadcast the small dimension table so it is replicated to all nodes and the large fact table is not redistributed.
B.Increase the warehouse size so the redistribution of the small table completes faster across more nodes.
C.Rewrite the query to use a correlated subquery instead of a join so the small table is not redistributed.
D.Add a clustering key to the small dimension table so its rows are stored contiguously.
AnswerA

When one side of a join is small, broadcasting it to every node lets each node join its local fact rows without shuffling the large table. This converts a costly redistribution of the large input into a cheap replication of the small input, which is exactly the pattern the profile is hinting at as the bottleneck.

Why this answer

The profile shows the small relation being shuffled, which is the expensive but avoidable side of the join. Broadcasting the small table replicates it to every node so the large fact table stays in place, eliminating the shuffle of the big input. This is the standard remedy when a join's redistribution targets the wrong relation.

Exam trap

The trap here is assuming that any redistribution in a join is unavoidable and must simply be run faster with a larger warehouse, when the distribution strategy itself can be changed.

74
MCQmedium

When analyzing a Query Profile, which indicator most strongly suggests that 'Partition Pruning' is performing effectively?

A.High bytes scanned relative to bytes total.
B.Low partitions scanned compared to total partitions.
C.High network transfer metrics in the profile.
D.The presence of a 'Join' operator in the query profile.
AnswerB

Effective partition pruning means the query engine can identify and ignore irrelevant micro-partitions. Seeing a low number of partitions scanned compared to the total available count in the table is the primary metric indicating that the filtering logic is successfully narrowing the data access scope.

Why this answer

Partition pruning is the process where Snowflake skips scanning micro-partitions that cannot possibly contain the data requested by the query. A low 'Partitions scanned' count relative to the total 'Partitions total' is the most direct indicator that the pruning process is working. This is highly efficient as it avoids I/O operations for data that is not relevant to the query's filters, leading to faster execution times.

Exam trap

Many students mistakenly look at query duration or bytes spilled instead of micro-partition metrics when specifically asked to evaluate the effectiveness of partition pruning.

75
MCQeasy

A data engineer creates a table in a Snowflake database that resides on a standard (non-replicated) storage. The engineer wants to confirm that Fail-safe will protect the table after Time Travel expires. Which table type should the engineer use?

A.External table
B.Transient table
C.Temporary table
D.Permanent table
AnswerD

Permanent tables are the only table type covered by Fail-safe. After the Time Travel retention period elapses, a 7-day Fail-safe window applies, during which Snowflake Support can assist with recovery. This matches the engineer's requirement for post-retention protection, making a permanent table the correct choice.

Why this answer

Fail-safe is exclusive to permanent tables. It provides a non-configurable 7-day window after Time Travel expires, during which Snowflake Support can recover data. Transient, temporary, and external tables do not receive Fail-safe coverage, so only a permanent table satisfies the requirement described in the scenario.

Exam trap

The trap here is assuming all table types share the same protection model, when Fail-safe applies only to permanent tables.

Page 1 of 4

Page 2

All pages