Courseiva

SnowPro Advanced: Data Engineer (DEA-C02) — Questions 76–150

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

Page 1

Page 2 of 4

Page 3
76
MCQmedium

When using the COPY INTO command to load data from an S3 bucket, which of the following best describes how Snowflake handles file partitioning?

A.Snowflake only processes one file at a time, regardless of the warehouse size.
B.The files must be manually split by the engineer before the COPY INTO command is executed.
C.Snowflake automatically parallelizes the load by distributing files across the nodes of the virtual warehouse.
D.Partitioning is only supported when loading data from internal stages.
AnswerC

Snowflake automatically detects the number of files in the specified path and distributes them across available nodes in the virtual warehouse. This parallel processing capability is fundamental to Snowflake's architecture, enabling rapid ingestion of large datasets without the need for complex, manual partitioning logic on the part of the engineer.

Why this answer

Snowflake can load files in parallel if they are partitioned or if multiple files are present. By default, the COPY INTO command leverages the compute power of the warehouse to process multiple files concurrently. This parallelization is a key driver of Snowflake's performance in data movement, allowing massive datasets to be ingested in a fraction of the time required by traditional serial loading methods.

Exam trap

Candidates often mistakenly believe that the data engineer must manually split files to achieve parallelism, not realizing that Snowflake handles this distribution automatically across warehouse nodes.

77
MCQhard

A data engineer has a permanent table named ORDERS with DATA_RETENTION_TIME_IN_DAYS set to 5. The table is dropped accidentally. The engineer executes UNDROP TABLE ORDERS 2 days later, successfully restoring the table. What is the DATA_RETENTION_TIME_IN_DAYS setting for the restored table?

A.The retention period is set to 0 days because the table was dropped and restored.
B.The retention period remains 5 days, as it was before the drop.
C.The retention period is extended to 7 days to account for the time the table was dropped.
D.The retention period is reset to the default for the account, which is 1 day.
AnswerB

UNDROP TABLE restores the table with its original properties, including the DATA_RETENTION_TIME_IN_DAYS setting. The retention period is not changed by the drop or undrop operation. The restored table will continue to have a 5-day Time Travel retention, allowing further recovery if needed. This is the correct behavior.

Why this answer

When a dropped table is restored using UNDROP, it retains its original DATA_RETENTION_TIME_IN_DAYS setting. The drop and undrop operations do not modify the retention period. Therefore, the table will continue to have a 5-day Time Travel retention, allowing historical data to be accessed within that period.

Exam trap

The trap here is assuming that the retention period is reset or altered during the drop and undrop process, when in fact it is preserved.

78
MCQhard

A data engineer needs to restore a specific version of a permanent table named FINANCE_LEDGER as it existed 40 hours ago, but the table is currently 2 TB and has DATA_RETENTION_TIME_IN_DAYS set to 1. The engineer wants to recover the historical data without affecting the current table. Which approach correctly recovers the data?

A.The data cannot be recovered because the 40-hour-old version is beyond the 1-day Time Travel window and Fail-safe is not directly queryable.
B.Use Fail-safe to restore the table to the 40-hour-old state, then query it.
C.Query the table using AT (OFFSET => -144000) and insert the results into a new table.
D.Increase DATA_RETENTION_TIME_IN_DAYS to 90, then query 40 hours ago using Time Travel.
AnswerA

With DATA_RETENTION_TIME_IN_DAYS set to 1, only the most recent 24 hours are queryable through Time Travel. A 40-hour-old version is outside that window, and Fail-safe cannot be queried by users at all. Because retention cannot be extended retroactively, the historical version is effectively unrecoverable without Snowflake Support intervention in a genuine disaster case.

Why this answer

Time Travel access is bounded by the table's current retention setting, and changing that setting only applies going forward. A 40-hour-old version exceeds the 1-day window, and Fail-safe cannot be queried by users. Therefore the historical version is not retrievable through normal means, which is why the engineer's goal cannot be met in this configuration.

Exam trap

The trap here is believing that raising DATA_RETENTION_TIME_IN_DAYS retroactively extends access to versions that already aged out of the previous window.

79
Multi-Selecthard

A data engineer is designing a storage strategy for a Snowflake account that uses Enterprise Edition. The engineer needs to ensure that critical tables can be recovered for up to 90 days, while non-critical staging tables should minimize storage costs. Which two statements accurately describe Snowflake Time Travel and Fail-safe behavior for permanent tables? (Choose two.)

Select 2 answers
A.Fail-safe can be configured to extend beyond 7 days for permanent tables in Enterprise Edition.
B.Transient tables can have a Time Travel retention period of up to 90 days if the account is Enterprise Edition.
C.Permanent tables in Enterprise Edition can have a Time Travel retention period of up to 90 days.
D.Time Travel retention for permanent tables can be set to 0 days to disable it, but Fail-safe still applies.
E.Fail-safe provides an additional 7 days of recovery beyond the Time Travel retention period for permanent tables.
AnswersC, E

In Snowflake Enterprise Edition, permanent tables support a maximum Time Travel retention of 90 days, configurable via DATA_RETENTION_TIME_IN_DAYS. This allows recovery of historical data for up to 90 days using AT or BEFORE clauses. This setting is ideal for critical tables requiring long recovery windows, but it increases storage costs because historical versions are retained.

Why this answer

Permanent tables in Enterprise Edition support up to 90 days of Time Travel retention, and Fail-safe adds a fixed 7-day period after Time Travel expires. These two features together provide a comprehensive recovery strategy for critical data. Transient tables are limited to 1 day of Time Travel and have no Fail-safe, making them unsuitable for long-term recovery needs.

Exam trap

The trap here is confusing the retention limits and Fail-safe applicability between permanent and transient tables, especially assuming transient tables can use extended retention.

80
MCQmedium

Which transformation technique should be used when you need to pivot data from a long-form format (rows) to a wide-form format (columns) for reporting?

A.Using a series of CASE statements within a GROUP BY clause.
B.Using the PIVOT clause.
C.Using a self-join to correlate rows.
D.Using a stored procedure to iterate through rows.
AnswerB

The `PIVOT` clause is the native Snowflake operator for rotating data rows into columns. It is highly optimized and significantly more readable and maintainable than manual aggregation methods. It allows for flexible reporting by easily transforming datasets to meet the specific requirements of various business intelligence tools.

Why this answer

The `PIVOT` clause is designed specifically to rotate data from a row-based structure into a column-based format. By specifying the column to aggregate and the values to pivot, Snowflake transforms the data set, making it easier for BI tools to consume metrics directly. This is a common requirement when generating reports that represent time-series data or categorical breakdowns where metrics are required side-by-side rather than in long, narrow tables.

Exam trap

Candidates sometimes confuse PIVOT with UNPIVOT or manual conditional aggregation (CASE WHEN), forgetting that the PIVOT clause is the dedicated native syntax for this specific transformation.

81
MCQmedium

A data engineer wants to load data from an S3 bucket and perform a transformation during the load. Which method is the most appropriate for this task?

A.Load the raw data into a temporary table, then run a task to transform it.
B.Use a COPY INTO command with a subquery that includes transformations.
C.Create a stream on the S3 bucket to trigger a transformation procedure.
D.Use an external function to transform the data before it reaches the stage.
AnswerB

Transforming data directly in the COPY INTO statement via a SELECT query allows for data casting, filtering, and column reordering before the data hits the target table. This ELT approach is the most efficient pattern in Snowflake, saving compute resources by reducing the number of write operations to disk.

Why this answer

Performing transformations during the load process using a COPY INTO command is highly efficient. By selecting, casting, or filtering data as it moves from the stage into the target table, the engineer avoids the need for a separate staging table and subsequent transformation job. This reduces compute costs and latency, demonstrating a deep understanding of Snowflake's ability to combine ingestion and transformation (ELT) into a single, high-performance operation.

Exam trap

Candidates incorrectly suggest using a separate 'Stored Procedure' or 'Task' for simple transformations. The COPY command supports basic transformations directly, which is more efficient for most standard ingestion tasks.

82
MCQeasy

What is the primary purpose of the 'SNOWFLAKE.ACCOUNT_USAGE' schema in a governance context?

A.To store backup copies of sensitive data.
B.To provide audit-ready metadata on system and user activity.
C.To manage the deployment of data masking policies.
D.To increase the performance of analytical queries.
AnswerB

ACCOUNT_USAGE contains views that track every query, access event, and configuration change. This data is essential for governance audits, as it provides a transparent and immutable history of what happened in the account, allowing for detailed investigation and reporting required by modern data compliance standards.

Why this answer

The ACCOUNT_USAGE schema provides historical metadata about account activity, which is the backbone of governance and auditing. It allows organizations to query past actions to ensure compliance with internal security policies, track data usage, and identify potential risks. Without these views, administrators would lack the necessary visibility to satisfy external regulatory requirements like SOC2 or GDPR, which demand detailed accountability for data access.

Exam trap

Test-takers often confuse ACCOUNT_USAGE with INFORMATION_SCHEMA, incorrectly believing ACCOUNT_USAGE provides real-time, instantaneous metadata without any data latency.

83
MCQeasy

A data engineer is creating a new table to hold a large volume of raw clickstream events that are loaded continuously and only retained for reporting within the same day. The team wants to minimize storage costs while still allowing recovery of rows modified within the last 24 hours. Which table type best fits these requirements?

A.An external table over a cloud storage stage with a 1-day retention policy
B.A temporary table with DATA_RETENTION_TIME_IN_DAYS set to 1
C.A transient table with DATA_RETENTION_TIME_IN_DAYS set to 1
D.A permanent table with DATA_RETENTION_TIME_IN_DAYS set to 1
AnswerC

Transient tables support up to 1 day of Time Travel on Enterprise Edition, which satisfies the 24-hour recovery need, and they do not incur Fail-safe storage. This makes them well suited for high-volume, short-lived data such as raw clickstream events. The absence of Fail-safe directly reduces storage cost, matching the team's objective.

Why this answer

Transient tables are the right choice for large, short-lived datasets because they support up to 1 day of Time Travel for recent-change recovery while avoiding Fail-safe storage entirely. Permanent tables would add unnecessary Fail-safe cost, temporary tables are session-scoped, and external tables do not provide Snowflake-managed Time Travel over their files.

Exam trap

The trap here is choosing a permanent table because it also supports 1-day Time Travel, overlooking that permanent tables additionally incur 7-day Fail-safe storage that transient tables avoid.

84
MCQhard

A data engineer wants to optimize a query that performs a point lookup on a value nested deep within a VARIANT column in a 50TB table. Which approach is the most effective for optimizing this lookup?

A.Flatten the VARIANT column into a Materialized View.
B.Enable Search Optimization on the VARIANT column's specific paths.
C.Cluster the table based on the extracted value from the VARIANT column.
D.Use a standard VIEW to pre-parse the VARIANT data for all users.
AnswerB

Snowflake's Search Optimization Service can be configured to index specific fields within a VARIANT column. This allows the engine to quickly identify which micro-partitions contain the specific nested value, avoiding a full scan of the semi-structured data and providing high-performance lookups on very large datasets.

Why this answer

The Search Optimization Service in Snowflake supports semi-structured data, including fields within VARIANT, OBJECT, and ARRAY types. By enabling search optimization on these specific paths, Snowflake creates a specialized index that allows for efficient point lookups of nested values, significantly reducing the amount of data scanned from the 50TB table.

Exam trap

Candidates mistakenly believe traditional clustering keys or standard indexes work on semi-structured VARIANT data to optimize deep path lookups, missing the specialized nature of search optimization.

85
MCQmedium

A data engineer is implementing a data governance strategy and needs to ensure that all tables containing sensitive data are automatically identified and tagged. The engineer wants to use Snowflake's native classification capabilities and then apply masking policies based on those tags. Which sequence of steps should the engineer follow?

A.Manually apply tags, then create masking policies that reference those tags.
B.Create masking policies first, then run Data Classification to tag columns.
C.Use Access History to identify sensitive columns, then manually tag them.
D.Run Data Classification, review results, then create and attach masking policies to tagged columns.
AnswerD

Data Classification automatically scans tables and identifies sensitive columns, applying system tags. After reviewing the results, the engineer can create masking policies and attach them to the tagged columns. This sequence leverages automation and ensures policies are applied where needed.

Why this answer

Data Classification is the native feature that automatically scans and tags sensitive columns. Once tagged, the engineer can review the tags and then create masking policies attached to those columns. This ensures that policies are applied to the correct columns without manual discovery.

Exam trap

The trap here is assuming that masking policies can be applied based on tags automatically, or that tags themselves enforce masking, when in fact policies must be manually attached to columns after classification.

86
MCQmedium

A data engineer is building a transformation pipeline that processes semi-structured event logs stored in a VARIANT column named `event_data`. The logs contain a nested array under the key `items`. The engineer needs to produce one output row per element in the array, preserving all other columns from the source table. Which Snowflake construct should be used to achieve this transformation?

A.LATERAL FLATTEN(input => event_data:items)
B.ARRAY_AGG(event_data:items)
C.OBJECT_CONSTRUCT('items', event_data:items)
D.PARSE_JSON(event_data:items)
AnswerA

LATERAL FLATTEN is designed to expand a VARIANT array into multiple rows, one per element. Because it is a lateral join, it can reference the VARIANT column from the source table and preserve all other columns, making it ideal for this scenario.

Why this answer

To expand a nested array into multiple rows while keeping the original columns, a lateral join with FLATTEN is required. LATERAL FLATTEN allows the FLATTEN function to access the VARIANT column from the preceding table and returns one row per array element, which is exactly the needed behavior. The other functions either aggregate, construct objects, or parse strings, none of which achieve row expansion.

Exam trap

The trap here is assuming that any function that references the array will automatically expand it, when only FLATTEN (used laterally) produces multiple rows.

87
MCQmedium

A data engineer is unloading a large fact table to an external stage pointing at an Amazon S3 bucket. The downstream consumer requires many small files for parallel processing, and each file must be no larger than 64 MB. Which COPY INTO location options should the engineer use?

A.MAX_FILE_SIZE = 64 and SINGLE = FALSE
B.MAX_FILE_SIZE = 67108864 and SINGLE = TRUE
C.MAX_FILE_SIZE = 67108864 and SINGLE = FALSE
D.FILE_FORMAT = (TYPE = CSV COMPRESSION = GZIP) and SINGLE = FALSE
AnswerC

MAX_FILE_SIZE caps the size of each output file using a byte value, and 67108864 bytes equals 64 MB. SINGLE = FALSE allows Snowflake to produce multiple files across the available parallelism, which suits the consumer's need for many small files. This combination directly meets both stated requirements for the unload.

Why this answer

MAX_FILE_SIZE sets an upper bound on each unloaded file and takes a byte value, so 64 MB must be written as 67108864. SINGLE = FALSE lets the unload split output across multiple files. Used together, they produce many files each capped at the requested size, which is what the downstream parallel consumer requires.

Exam trap

The trap here is assuming MAX_FILE_SIZE accepts megabytes, when Snowflake interprets the value strictly as bytes.

88
Multi-Selecthard

A data engineer is investigating a query that reads a large table and returns only a few rows after filtering on a high-cardinality column. The Query Profile shows a high percentage of partitions scanned relative to partitions total. Which two actions should the engineer take to improve pruning? (Choose two.)

Select 2 answers
A.Increase the virtual warehouse size so more compute nodes are available to evaluate the filter predicate in parallel.
B.Convert the table to a view over the same data so the optimizer can push the filter predicate down into the view definition.
C.Define a clustering key on the frequently filtered high-cardinality column so related values are co-located in the same micro-partitions.
D.Ensure the filter predicate references the column directly with a constant or a value known at compile time rather than a non-deterministic expression.
E.Apply a filter transformation inside the query that wraps the filtered column in a function such as UPPER or CAST before comparing it to a literal.
AnswersC, D

Clustering physically orders rows by the chosen column so that a selective filter can skip micro-partitions whose value ranges fall outside the predicate. When the profile shows most partitions being scanned for a selective filter, clustering on that filter column is the direct way to raise the pruning ratio and cut the scanned data volume.

Why this answer

Effective pruning depends on two things: physical co-location of similar values and predicates the optimizer can translate into partition-value bounds. Clustering the filtered column groups similar values, while a direct comparison to a constant gives the optimizer the bounds it needs. Together they shrink the set of micro-partitions that must be read for a selective filter.

Exam trap

The trap here is assuming that a larger warehouse or a view wrapper improves pruning, when pruning is governed by micro-partition value ranges and predicate form, not by compute size.

89
MCQhard

A financial institution uses Snowflake to store customer transactions. A data engineer needs to implement a policy that restricts access to rows in the TRANSACTIONS table based on the department of the user. The department information is stored in a lookup table named USER_DEPARTMENT. The policy must be applied dynamically without modifying the TRANSACTIONS table. Which Snowflake feature should the engineer use?

A.Implement a Row Access Policy that uses a mapping table to determine the user's department and filters rows accordingly.
B.Create a secure view that joins TRANSACTIONS with USER_DEPARTMENT and filters rows based on the current user's department.
C.Use a Column-level Security policy with a masking policy that returns NULL for rows not belonging to the user's department.
D.Create a dynamic data masking policy that checks the user's department and masks the entire row if the department does not match.
AnswerA

A Row Access Policy is a schema-level object that can be added to a table to filter rows based on conditions evaluated at query time. It can reference a mapping table like USER_DEPARTMENT to dynamically determine the user's department and restrict rows. This meets the requirement of dynamic filtering without altering the table structure. It is the correct feature for row-level security in Snowflake.

Why this answer

Row Access Policies are designed to filter rows based on user attributes or mapping tables. They attach to tables and enforce filtering at query time, making them ideal for dynamic row-level security. Secure views can be bypassed if base table access is granted, and masking policies only affect column values, not row visibility.

Thus, a Row Access Policy is the correct solution.

Exam trap

The trap here is assuming that masking policies can filter rows, when they only mask column values, or that secure views are sufficient without revoking base table access.

90
MCQmedium

A data engineer maintains 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 accidentally truncates the table and immediately realizes the mistake. What is the most reliable way to recover the lost rows?

A.Use the Snowflake Time Travel REST API to request a point-in-time restore of the table to the previous hour.
B.Run UNDROP TABLE STG_EVENTS, because TRUNCATE places the table in a recoverable dropped state.
C.Query the table with the AT (TIMESTAMP => ...) clause to read the rows as they existed before the truncate.
D.Restore the table from Fail-safe, because Fail-safe retains the pre-truncation micro-partitions for 7 days.
AnswerC

A transient table with a 1-day retention still supports Time Travel within that window, so the engineer can query the pre-truncation version using AT (TIMESTAMP => ...) and re-insert the rows. This is the reliable in-place recovery method. Note the retention window must not have elapsed, and the TIMESTAMP must fall inside the retention period.

Why this answer

Transient tables in Enterprise Edition support Time Travel up to a maximum of 1 day, which is exactly the configured retention here. Because the truncate just happened, the engineer can still read the historical version of the table with the AT clause and copy the rows back. Fail-safe does not cover transient tables, UNDROP only applies to dropped objects, and no REST API provides point-in-time table restoration.

Exam trap

The trap here is assuming Fail-safe protects transient tables or that TRUNCATE can be undone with UNDROP; in reality transient tables have no Fail-safe and TRUNCATE leaves the table in place, so only Time Travel applies.

91
MCQhard

A table experiences performance degradation over time due to frequent DML operations (INSERT/UPDATE/DELETE). What is the most likely cause?

A.The metadata cache is exceeding its capacity.
B.Micro-partition fragmentation.
C.The warehouse cache is becoming corrupted.
D.The result cache is being constantly invalidated.
AnswerB

Frequent DML operations break the physical ordering within micro-partitions. As data is changed, the original clustering becomes scattered across many partitions, reducing the effectiveness of partition pruning. This forces the engine to scan more data than necessary to satisfy the same query, leading to significant performance degradation.

Why this answer

Frequent DML operations lead to 'micro-partition fragmentation'. When rows are updated or deleted, the micro-partitions become sub-optimally filled or 'dirty'. This forces the query engine to scan more partitions than necessary because the data is no longer organized linearly.

This fragmentation is a common performance bottleneck in write-heavy environments, and it requires periodic table maintenance or clustering to restore the efficiency of the partition pruning process for subsequent reads.

Exam trap

Candidates often assume the issue is related to warehouse size or query complexity, failing to recognize that DML operations naturally degrade partition organization over time, necessitating maintenance or clustering.

92
MCQhard

When performing a MERGE operation to update a large table, which factor most significantly impacts the performance of the transformation?

A.The number of columns included in the SELECT list of the source query.
B.The clustering of the target table on the join column used in the MERGE statement.
C.The size of the virtual warehouse, as larger warehouses always make MERGE operations faster.
D.The use of an explicit transaction block around the MERGE statement.
AnswerB

Clustering on the join column allows the query optimizer to prune partitions that do not contain matching keys. This significantly reduces the amount of data read from storage, which is the most expensive part of a MERGE operation on large datasets.

Why this answer

The performance of a MERGE operation is primarily constrained by the join condition, specifically if the join column is not clustered or indexed. Because Snowflake does not use traditional indexes, clustering by the join key allows for effective partition pruning. Ensuring that the join criteria align with the table's clustering key is the most effective way to minimize data scanning and optimize the merge process.

Exam trap

Candidates often believe overall table size or source file count dictates MERGE performance, ignoring the critical impact of target table clustering on join keys.

93
MCQeasy

What is the primary benefit of using `CLONE` for data transformation and testing?

A.It automatically updates the source table with new transformations.
B.It provides a cost-effective way to create isolated development environments.
C.It allows for the conversion of Parquet files to internal tables.
D.It enables multi-region replication of data.
AnswerB

Because cloning creates a metadata-only copy, it is nearly instantaneous and consumes no additional storage until data is modified. This makes it the most efficient way to test complex data transformations against production-like data without the cost and time associated with traditional physical data duplication.

Why this answer

Cloning (Zero-Copy Cloning) allows an engineer to create a full copy of a table or database instantly without duplicating the underlying data. This is invaluable for testing transformations in a sandbox environment without incurring storage costs or taking up time for massive data movement. Any changes made in the cloned object are isolated from the original, ensuring that production pipelines remain unaffected during the development and validation of new transformation logic.

Exam trap

Candidates often assume that cloning a large table duplicates the underlying data storage immediately, leading them to worry about high storage costs and slow creation times when answering questions about sandbox environments.

94
MCQmedium

What is the primary benefit of using a 'Materialized View' over a standard view in Snowflake?

A.It supports real-time data streaming updates.
B.It automatically updates based on all underlying table changes.
C.It reduces compute costs by pre-computing query results.
D.It is the only way to join two tables in Snowflake.
AnswerC

By storing the pre-computed output of a query, materialized views save compute resources for repetitive, complex queries. This reduces the need to run the underlying logic every time the view is accessed, significantly improving read performance and reducing the overall credit consumption for heavy analytical workloads.

Why this answer

Materialized views store the pre-computed results of a query, which avoids the overhead of re-calculating the results during each execution. This is extremely beneficial for queries that are complex, resource-intensive, and executed frequently. By contrast, a standard view computes its output every time it is called, consuming compute resources and potentially causing latency for end-users, whereas materialized views provide near-instant access to the computed dataset.

Exam trap

Many students confuse materialized views with result cache or standard views, forgetting that materialized views persistently store pre-computed results on disk to save compute costs.

95
MCQhard

A data engineer has a permanent table ORDERS_ARCHIVE with DATA_RETENTION_TIME_IN_DAYS set to 30. An analyst accidentally runs DELETE FROM ORDERS_ARCHIVE WHERE order_date < '2022-01-01' and commits the transaction. Twenty minutes later, the engineer wants to recover only the deleted rows without disturbing the current state of the table. Which approach is correct?

A.Run UNDROP TABLE ORDERS_ARCHIVE to restore the table to its pre-delete state.
B.Run ALTER TABLE ORDERS_ARCHIVE SET DATA_RETENTION_TIME_IN_DAYS = 30 to refresh the recovery window and then query the deleted rows.
C.Query the table with SELECT * FROM ORDERS_ARCHIVE BEFORE (STATEMENT => '<query_id>') and insert the missing rows back.
D.Run CREATE TABLE ORDERS_RESTORE CLONE ORDERS_ARCHIVE AT (TIMESTAMP => CURRENT_TIMESTAMP - INTERVAL '30 minutes') and swap the tables.
AnswerC

The BEFORE clause with a STATEMENT identifier reads the table as it existed immediately before the specified statement executed, which is exactly the pre-delete snapshot. Selecting from that snapshot and inserting the missing rows re-establishes the deleted data while preserving rows written after the delete. This works because the table's 30-day retention window still covers the twenty-minute-old delete, and the query ID can be retrieved from the Query History view.

Why this answer

Recovering deleted rows from a table that still exists requires reading its historical state with Time Travel and re-inserting the missing data. The BEFORE (STATEMENT => ...) clause targets the exact snapshot preceding the delete, so only the deleted rows are restored and post-delete changes are preserved. UNDROP applies to dropped tables, retention changes do not restore data, and cloning at an arbitrary timestamp does not precisely target the delete.

Exam trap

The trap here is reaching for UNDROP TABLE to reverse a DELETE, when UNDROP only recovers objects that were dropped and cannot restore rows removed by DML.

96
MCQhard

A data engineer needs to unload a large table from Snowflake to an external stage. The unloading process must produce a single compressed file. Which COPY INTO <location> option should be used to ensure the output is a single file?

A.SINGLE = TRUE
B.PARTITION_BY = <column>
C.DETAILED_OUTPUT = TRUE
D.MAX_FILE_SIZE = <size>
AnswerA

The SINGLE = TRUE option in a COPY INTO <location> command directs Snowflake to unload the data into a single file, rather than multiple files. This is useful when the target system expects a single file. However, it may impact performance for very large datasets because the unload is not parallelized.

Why this answer

To unload data into a single file, the COPY INTO <location> command must include the SINGLE = TRUE option. This forces Snowflake to write all data to one file, which can be necessary when the downstream system cannot handle multiple files. However, using SINGLE = TRUE may reduce performance for large datasets because the unload operation is not parallelized across multiple files.

Exam trap

The trap here is confusing MAX_FILE_SIZE with SINGLE, as MAX_FILE_SIZE only limits file size but does not guarantee a single file.

97
MCQhard

A data engineer needs to audit all grants of the 'SYSADMIN' role to users across the Snowflake account. The engineer has access to the ACCOUNTADMIN role and wants to retrieve this information efficiently. Which Snowflake view should be queried?

A.SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_USERS
B.SNOWFLAKE.ACCOUNT_USAGE.USERS
C.SNOWFLAKE.ACCOUNT_USAGE.ROLES
D.SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_ROLES
AnswerA

The GRANTS_TO_USERS view in the ACCOUNT_USAGE schema contains a record of all role grants to users, including the role name, grantee name, and grant date. Querying this view with a filter on the ROLE column for 'SYSADMIN' will return the required audit information. It is the correct and efficient source for this data.

Why this answer

To audit which users have been granted the SYSADMIN role, the GRANTS_TO_USERS view in the ACCOUNT_USAGE schema is the correct source. It records all role-to-user grants, including the role name and grantee. Filtering on the ROLE column for 'SYSADMIN' yields the required list.

Other views either lack grant information or focus on different objects.

Exam trap

The trap here is confusing grants to users with grants to roles, which track different relationships and are stored in separate views.

98
Multi-Selecthard

While reviewing a Query Profile, a data engineer notices a 'Join' operator where the number of output rows is significantly larger than the sum of the input rows. Which TWO steps should be taken to resolve this performance issue? (Select TWO)

Select 2 answers
A.Increase the size of the warehouse to handle the extra rows.
B.Verify if the join keys have a many-to-many relationship.
C.Check for missing join predicates that cause a Cartesian product.
D.Enable the Search Optimization Service on the join columns.
E.Replace the JOIN with a UNION ALL operation.
AnswersB, C

A many-to-many relationship on join keys causes each row in the first table to match multiple rows in the second, leading to an explosion of output rows. Identifying this allows the engineer to decide if the data should be aggregated before the join to ensure a one-to-many relationship.

Why this answer

An output row count significantly larger than input row counts indicates an 'exploding join' or Cartesian product, usually caused by many-to-many relationships or missing join conditions. Validating the join predicates and ensuring the join keys are unique or properly filtered can stop the exponential growth of the intermediate result set.

Exam trap

Candidates often assume the join is just slow because the warehouse is too small. They fail to spot the 'exploding join' symptom, which is a logic error rather than a resource issue.

99
MCQmedium

A data engineer is using a Snowpipe to load data from an external stage. The pipe has been running successfully, but the engineer notices that some files are being loaded multiple times, resulting in duplicate records. Which action should be taken to prevent future duplicate loads?

A.Set the pipe to use a file format that includes a unique key column and rely on Snowflake's automatic deduplication.
B.Recreate the pipe with a new name to reset the load history and start fresh.
C.Enable the PURGE = TRUE option in the pipe definition.
D.Ensure that the pipe's load history is properly maintained and that the cloud notification integration is configured to avoid duplicate event messages.
AnswerD

Duplicate loads in Snowpipe often occur when the same file triggers multiple events or when the load history is not correctly tracked. Snowflake maintains a load history for each pipe for 14 days; if a file is loaded within that period, it is skipped. However, if events are duplicated (e.g., due to at-least-once delivery from Pub/Sub or S3 event notifications), the pipe may attempt to load the same file again. Ensuring the notification integration is configured to minimize duplicates and that load history is not cleared can prevent this. Additionally, using the COPY_HISTORY function to monitor can help identify issues.

Why this answer

Duplicate loads in Snowpipe are typically caused by duplicate event notifications or by clearing the load history. Snowflake maintains a 14-day load history for each pipe, which prevents re-loading the same file if it hasn't changed. Ensuring the notification integration is configured correctly to avoid duplicate events, and not manually clearing the load history, are key to preventing duplicates.

Monitoring with COPY_HISTORY can help detect issues.

Exam trap

The trap here is assuming that PURGE = TRUE or file format options will prevent duplicates, when the real cause is often duplicate event messages or cleared load history.

100
MCQmedium

A Data Engineer needs to ensure that data in a target table is updated with changes from a source table while handling potential duplicate records. Which command should be used?

A.INSERT INTO ... SELECT DISTINCT
B.MERGE INTO target USING source ON ... WHEN MATCHED THEN UPDATE...
C.UPDATE target SET ... FROM source
D.CREATE OR REPLACE TABLE target AS SELECT ...
AnswerB

The MERGE command allows for conditional logic based on match status, which is ideal for deduplication and incremental updates. By defining specific matching criteria, it ensures that target table data remains accurate without creating duplicate rows, which is a common requirement in ETL/ELT pipelines.

Why this answer

The MERGE command is specifically designed for complex DML operations that combine insert, update, and delete actions in a single pass. By joining the source and target on a primary key, it ensures that new records are inserted while existing records are updated, preventing duplicates and ensuring data consistency. This is the standard method for slowly changing dimensions and incremental data synchronization in modern data warehousing pipelines.

Exam trap

Candidates often suggest using INSERT or UPDATE separately, failing to realize that MERGE is the only atomic way to handle both inserts and updates while avoiding duplicate records.

101
MCQmedium

A data engineer runs a query that joins a 5 TB fact table to a 200 GB dimension table. The query profile shows a broadcast operation for the dimension table and a local spilling node on the fact table. The engineer wants to reduce local spilling without changing the query results. The warehouse is a multi-cluster warehouse with sufficient memory. Which action is most likely to reduce local spilling?

A.Increase the warehouse size to provide more memory per node.
B.Add a clustering key on the join column of the fact table.
C.Reduce the size of the fact table by filtering out rows before the join.
D.Disable broadcast for the dimension table to force a shuffle join.
AnswerA

Local spilling happens when an operation exceeds the memory allocated to a warehouse node. Increasing the warehouse size adds more compute resources and memory per node, which can accommodate larger intermediate results and reduce or eliminate local spilling. This directly addresses the memory constraint without altering the query logic. Other options, such as changing join order or disabling broadcast, may not resolve the underlying memory issue if the data volume per node remains high.

Why this answer

Local spilling indicates that an operation is exceeding the memory available on a warehouse node. Increasing the warehouse size provides more memory per node, which can prevent or reduce spilling. While other actions like filtering or clustering might reduce data volume, they do not directly address the memory constraint of the operation.

Disabling broadcast could change the join strategy but may introduce other bottlenecks. Therefore, scaling up the warehouse is the most direct solution.

Exam trap

The trap here is assuming that any data reduction technique will fix spilling, when the root cause is often insufficient memory per node for the operation.

102
MCQeasy

A data engineer is transforming a table with a column `tags` stored as a VARIANT array of strings. The goal is to produce one row per tag for downstream aggregation. Which function should be used to expand the array into rows?

A.OBJECT_KEYS(tags)
B.ARRAY_TO_STRING(tags, ',')
C.FLATTEN(input => tags)
D.PARSE_JSON(tags)
AnswerC

FLATTEN is a table function that expands a VARIANT array into one row per element, exposing the value in a VALUE column. It is the standard Snowflake construct for unnesting arrays and is exactly what is needed to transform the `tags` array into rows for downstream aggregation.

Why this answer

FLATTEN is the Snowflake table function that unnests semi-structured arrays and objects into relational rows. When applied to a VARIANT array, it returns one row per element, making it the correct choice for expanding `tags` into individual rows. The other functions either concatenate, parse, or extract object keys, none of which achieve the required row-level expansion.

Exam trap

The trap here is confusing array-to-string conversion or JSON parsing with actual unnesting, which requires the FLATTEN table function.

103
MCQhard

A data engineer manages a Snowpipe that ingests files from an external stage. The pipe uses a file format with SKIP_HEADER = 1, and the source files are regenerated daily with the same names in the same stage path. The engineer notices that only the first day's files are loaded and subsequent regenerated files are ignored. What is the most likely cause?

A.The external stage has a file format that includes a PATTERN option matching only the original file names.
B.The pipe's AUTO_INGEST setting is disabled, so Snowpipe only polls for new files every 24 hours.
C.The pipe's file format has SKIP_HEADER set to 1, which causes Snowflake to skip all files after the first load.
D.Snowpipe tracks loaded files by name and path, and since the regenerated files have identical names and paths, they are skipped as already processed.
AnswerD

Snowpipe maintains a load history keyed on the file name and path. When a file with an identical name and path is seen again, it is treated as already loaded and ignored, even if its contents changed. Regenerating files with the same names in the same stage location will therefore not trigger a reload without manual intervention.

Why this answer

Snowpipe uses load history to avoid reprocessing files. Because the regenerated files keep identical names and paths, Snowpipe considers them already loaded and skips them. To ingest the new content, the engineer must either rename the files, move them to a new path, or clear the pipe's load history before the next load.

Exam trap

The trap here is blaming the file format or pattern options, when the actual behavior is driven by Snowpipe's name-and-path-based load history deduplication.

104
MCQmedium

A data engineer is loading 1TB of data from an S3 bucket into Snowflake using the COPY command. The data consists of 10,000 small files (approx. 100KB each). How will this file size affect the loading performance?

A.Loading will be slow due to the high overhead of processing many small files.
B.Performance will be optimal because many files allow for maximum parallelism.
C.The warehouse will automatically group the files into larger chunks before loading.
D.Snowflake will only use a single thread to maintain data integrity for small files.
AnswerA

Each file processed by the COPY command involves metadata overhead and network handshakes. With 10,000 tiny files, the warehouse spends more time managing the file list and opening connections than actually moving data, leading to very poor utilization of the compute resources and longer load times.

Why this answer

Snowflake performance is optimized when file sizes are between 100MB and 250MB compressed. Having 10,000 tiny files creates excessive overhead because each file requires a separate metadata operation and a separate request to the cloud storage. This prevents the warehouse from effectively parallelizing the load and saturating its compute nodes.

Exam trap

Candidates often assume that loading more files in parallel is always faster. They overlook the metadata overhead of thousands of tiny files, which prevents effective parallelization and saturates the compute nodes unnecessarily.

105
MCQmedium

During a bulk load from an S3 stage, a data engineer notices that the data is not being loaded despite the COPY INTO command executing successfully. What is the most likely cause?

A.The warehouse is too small to process the files.
B.The files in the stage do not match the 'PATTERN' specified in the COPY command.
C.The user lacks the 'INSERT' privilege on the target table.
D.The source S3 bucket was deleted before the load started.
AnswerB

The 'PATTERN' parameter acts as a filter for files in the stage. If the pattern is overly restrictive or incorrect, Snowflake may successfully read the stage but find zero files that match, resulting in a successful command execution that loads no data. This is a common configuration oversight in pipeline development.

Why this answer

Snowflake's COPY INTO command includes a 'VALIDATION_MODE' option, but if the command is executed normally and the files are empty or mis-filtered by the 'FILE_FORMAT' settings, no rows will be ingested. The 'LOAD_HISTORY' information can confirm if files were processed. Often, the issue stems from an incorrect 'PATTERN' argument or a misalignment between the file structure and the defined format, resulting in zero rows being accepted into the target table.

Exam trap

Candidates often assume a successful query execution guarantees data was loaded, missing that zero rows match the criteria due to strict pattern matching or file format mismatches.

106
MCQmedium

Refer to the exhibit. Based on the Query Profile, what is the most likely bottleneck for this query?

A.Insufficient warehouse memory.
B.Inefficient data filtering and large data scans.
C.Network congestion between nodes.
D.Excessive joins causing data shuffling.
AnswerB

Because the table scan dominates the query profile, the query is likely reading more data than necessary. Implementing clustering keys or using partition pruning can reduce the volume of data scanned, directly targeting the primary cause of the high execution time shown in the profile.

Why this answer

In this profile, the Table Scan accounts for the vast majority (85%) of the total query time. This indicates that the query is spending most of its duration reading data from storage rather than performing complex joins or aggregations. The lack of remote disk spilling suggests that memory is sufficient.

Therefore, improving the scan performance through clustering or partition pruning is the most logical step to reduce execution time.

Exam trap

Candidates often misinterpret high scan times as a need for more compute power, failing to realize that high scan percentages indicate data organization issues like poor clustering or missing filters.

107
MCQhard

Which TWO of the following are considered 'anti-patterns' for performance in Snowflake?

A.Using one large warehouse for all user workloads.
B.Specifying column names instead of SELECT *.
C.Utilizing multi-cluster warehouses for concurrency.
D.Using SELECT * in production application code.
E.Implementing materialized views for performance.
AnswerA, D

Consolidating all workloads into one warehouse prevents resource isolation. A single complex query can monopolize the warehouse, causing delays for other users. Separating workloads into different warehouses based on priority or type is a best practice to ensure predictable performance and effective resource management.

Why this answer

Using a single massive warehouse for all workloads leads to poor resource isolation and contention, as simple queries compete with heavy ones. Additionally, using SELECT * in production code is an anti-pattern because it retrieves unnecessary columns, forcing the system to read more data blocks than required. Both practices degrade performance and increase costs by wasting I/O and compute resources on operations that could be avoided.

Exam trap

Candidates often confuse anti-patterns with regular scaling best practices, assuming that using large compute resources or dynamic filtering always hurts performance, leading them to misidentify basic tuning options as harmful choices.

108
MCQeasy

Which of the following describes the purpose of a Snowflake storage integration object?

A.To cache frequently accessed data to improve query performance.
B.To provide a secure way to access cloud storage without hardcoding credentials.
C.To create a physical partition of data within the cloud storage bucket.
D.To convert data into a proprietary Snowflake format for faster loading.
AnswerB

Storage integrations allow Snowflake to use a secure trust relationship (e.g., AWS role) to access cloud storage. This avoids hardcoding sensitive credentials in stage definitions, improving security posture and simplifying credential management across different environments, which is essential for maintaining compliance and minimizing the risk of unauthorized credential exposure.

Why this answer

A storage integration is a secure object that stores the authentication credentials (like IAM roles) required for Snowflake to access cloud storage. It eliminates the need to include secret keys or passwords in the stage definition, which follows security best practices. By centralizing credential management, it simplifies administration and enhances security, ensuring that sensitive access keys are never exposed in SQL code, which is critical for enterprise data governance.

Exam trap

Candidates often mistake storage integrations for simply 'storing files'. The integration is specifically an authentication object, not the storage location itself.

109
MCQhard

A data engineer maintains a table that receives continuous small INSERT statements throughout the day. Query performance on this table has degraded even though total data volume is modest, and the Query Profile shows many very small micro-partitions being scanned. Which action best addresses the underlying cause?

A.Schedule periodic reclustering of the table using a clustering key on the most selective filter column.
B.Increase the warehouse size so the larger compute pool can scan the many small micro-partitions in parallel.
C.Batch the incoming rows and load them less frequently, or use a staging table and periodically merge into the target.
D.Convert the table to a transient table so Snowflake stops maintaining the metadata for the small micro-partitions.
AnswerC

Frequent single-row or tiny INSERT statements create many small micro-partitions, which inflates metadata overhead and forces the optimizer to scan numerous fragments. Accumulating rows and loading them in larger batches produces fewer, better-sized micro-partitions, directly reducing the fragmentation that the profile is revealing as the cause of the slowdown.

Why this answer

The profile evidence of many tiny micro-partitions points to ingestion pattern rather than query design or compute. Each small insert creates its own micro-partition, so the table becomes a patchwork of fragments that the optimizer must enumerate and scan. Batching or staging-then-merging reduces the number of partitions created, which lowers metadata and scan overhead at the source.

Exam trap

The trap here is reaching for reclustering or a larger warehouse when the real issue is that frequent small inserts are generating an excessive number of undersized micro-partitions.

110
MCQmedium

A data engineer needs to retain a point-in-time copy of a large permanent table SALES_HISTORY for regulatory purposes. The table is 5 TB. The engineer runs CREATE TABLE SALES_HISTORY_BACKUP CLONE SALES_HISTORY. What is the initial storage cost impact of this operation?

A.The clone consumes additional storage equal to the table's metadata size only.
B.The clone consumes additional storage only after the source table is dropped.
C.The clone consumes no additional storage initially because it shares the source table's micro-partitions.
D.The clone immediately consumes an additional 5 TB of storage because all micro-partitions are copied.
AnswerC

Snowflake zero-copy cloning creates a new table that shares the same micro-partitions as the source without copying data. Storage is only charged for new micro-partitions created when the source or clone is modified after cloning. This makes the initial storage impact effectively zero, which is the defining benefit of the CLONE keyword for large tables.

Why this answer

Zero-copy cloning creates a new table that references the same micro-partitions as the source, so no data is physically copied at clone time and initial storage impact is effectively zero. Additional storage is charged only when the source or the clone is modified, generating new micro-partitions. This behavior is central to using clones for backups and dev environments without doubling storage.

Exam trap

The trap here is assuming cloning a table duplicates its data and doubles storage, when clones share micro-partitions until data diverges.

111
Multi-Selecthard

A data engineer must validate a COPY INTO load from an external stage before promoting it to production. The team wants to confirm which files were loaded, how many rows each contained, and which rows were rejected, without leaving partial or duplicated data in the target table. (Choose two.)

Select 2 answers
A.Run VALIDATION_MODE = RETURN_ERRORS in a COPY INTO statement
B.Set ON_ERROR = CONTINUE and inspect the target table row counts
C.Use FORCE = TRUE to reload all files and compare checksums
D.Query the COPY_HISTORY table function for the load's file-level results
E.Create a stream on the target table and read the change records
AnswersA, D

VALIDATION_MODE = RETURN_ERRORS parses the staged files and returns the rejected rows with their error messages without loading anything into the target table. It is exactly the dry-run mechanism for inspecting bad rows and confirming data quality before a real load. Because nothing is committed, it also avoids polluting load metadata or creating duplicates, which fits the pre-production validation goal.

Why this answer

Pre-production validation combines a dry run that surfaces rejected rows without committing data and a post-attempt audit that reports per-file outcomes. VALIDATION_MODE = RETURN_ERRORS provides the dry run, and the COPY_HISTORY table function provides the file-level audit. Options that load partial data, force reloads, or observe changes after insertion either pollute the target or fail to expose the needed diagnostics.

Exam trap

The trap here is thinking ON_ERROR = CONTINUE is a validation technique, when it actually commits partial data and hides which rows were rejected.

112
MCQeasy

A data engineer notices that a query against a large table returns results quickly when filtering on one column but scans the entire table when filtering on another column. Both columns are used in equality predicates. What is the most likely explanation?

A.The fast column has a lower cardinality, so the optimizer can use metadata to skip partitions.
B.The fast column is a clustering key, so the optimizer can prune micro-partitions for that predicate.
C.The fast column is part of the table's primary key, which automatically prunes partitions.
D.The fast column is defined with a NOT NULL constraint, which enables partition skipping.
AnswerB

Clustering keys cause related rows to be co-located in the same micro-partitions, so equality predicates on the clustering column allow the optimizer to skip partitions that cannot contain matches. The other column lacks that physical ordering, so the scan must read all partitions. This explains the difference in performance between the two equality filters and is the most likely cause.

Why this answer

Micro-partition pruning depends on the physical ordering of data. A clustering key aligns the data so that equality filters on that column can skip irrelevant micro-partitions, while an unclustered column forces a full scan. This accounts for the difference in the observed query times.

Exam trap

The trap here is attributing pruning to constraints or cardinality when pruning actually depends on the physical clustering of data.

113
MCQmedium

An auditor requests proof of who has accessed a specific table containing sensitive data. Which Snowflake view in the ACCOUNT_USAGE schema provides this data?

A.QUERY_HISTORY.
B.ACCESS_HISTORY.
C.TABLE_STORAGE_METRICS.
D.OBJECT_PRIVILEGES.
AnswerB

ACCESS_HISTORY is specifically designed for auditing data access at the column level. It records the relationships between users, the queries they run, and the tables or columns those queries accessed. This is the primary tool for governance teams to generate compliance reports and prove data security.

Why this answer

The ACCESS_HISTORY view in the ACCOUNT_USAGE schema is the definitive source for auditing data access. It logs every query that touches a column in a table, providing a comprehensive trail that is crucial for regulatory compliance. Understanding how to query the ACCOUNT_USAGE schema is a core skill for data engineers responsible for maintaining an audit-ready environment and documenting data lineage for sensitive assets.

Exam trap

Test-takers frequently select METERING_HISTORY or QUERY_HISTORY, confusing warehouse cost tracking and general query logs with granular data access auditing.

114
MCQmedium

A data engineer is implementing a Python User-Defined Function (UDF) to perform complex string manipulation. To optimize performance for a large-scale transformation, the engineer wants to ensure the UDF processes multiple rows in a single call. Which type of UDF should be implemented?

A.A scalar Python UDF with a loop
B.A Vectorized Python UDF
C.A Python User-Defined Table Function (UDTF)
D.A JavaScript UDF using the 'async' keyword
AnswerB

Vectorized UDFs define a handler that receives a batch of input rows as a Pandas object. This allows the Python code to utilize highly optimized vectorized operations, which can be orders of magnitude faster than scalar processing. It minimizes the context switching between the SQL engine and the Python interpreter during the transformation.

Why this answer

Snowflake's Vectorized Python UDFs allow for high-performance processing by passing batches of rows as Pandas DataFrames or Series. This reduces the overhead associated with calling the function for every individual row. For data transformations involving heavy computational logic or libraries like NumPy, vectorized UDFs are significantly more efficient than standard scalar UDFs which process data row-by-row.

Exam trap

Candidates often confuse Vectorized UDFs with Standard UDFs, failing to realize that row-by-row processing is the default and significantly slower for large datasets.

115
MCQmedium

A data engineer is loading semi-structured JSON files from an external stage into a VARIANT column. Several files contain a field named 'event_time' formatted as an ISO-8601 string, but the ingestion team wants to automatically convert it to a TIMESTAMP_NTZ during the load without using a separate transformation step. Which COPY INTO feature should be used?

A.Define the column as TIMESTAMP_NTZ and rely on implicit casting during the COPY INTO operation.
B.Use a transformation in the COPY INTO statement with the TO_TIMESTAMP function on the JSON field.
C.Apply a masking policy on the VARIANT column to convert the string to a timestamp at query time.
D.Create a file format with the TIMESTAMP_FORMAT option set to 'YYYY-MM-DD"T"HH24:MI:SS'.
AnswerB

COPY INTO supports column-level transformations in the SELECT clause of the statement. Applying TO_TIMESTAMP($1:event_time::STRING) converts the ISO-8601 string to a TIMESTAMP_NTZ as the data is loaded, eliminating a separate post-load step. This is the intended mechanism for inline type conversion during ingestion of semi-structured files.

Why this answer

COPY INTO allows inline transformations in the SELECT list, which is the supported way to cast or convert semi-structured fields during load. Using TO_TIMESTAMP on the JSON field converts the ISO-8601 string to a TIMESTAMP_NTZ as it is ingested, avoiding a separate transformation step. File format options and masking policies do not change the type of a VARIANT field.

Exam trap

The trap here is assuming that file format options like TIMESTAMP_FORMAT apply to semi-structured fields inside a VARIANT column, when they only affect loads into typed columns.

116
MCQhard

A data engineer needs to join a large fact table to a small dimension table that changes slowly. The dimension has a `valid_from` and `valid_to` timestamp, and the fact rows have an `event_ts`. The engineer wants to avoid scanning the entire dimension for every fact row and must ensure the join uses the correct validity window. Which approach is most appropriate?

A.Use a LEFT OUTER JOIN on the dimension key and filter with `valid_to IS NULL` to get the current record.
B.Use an ASOF JOIN with `MATCH_CONDITION (event_ts >= valid_from)` and equality on the dimension key.
C.Use a non-equi join with `event_ts BETWEEN valid_from AND valid_to` and rely on the optimizer to prune partitions.
D.Use a CROSS JOIN with a WHERE clause that filters on the dimension key and timestamp range.
AnswerB

ASOF JOIN is designed for time-series lookups where the fact timestamp must fall on or after a dimension timestamp. By matching on the dimension key and using MATCH_CONDITION, it efficiently finds the most recent valid dimension row without scanning all validity windows, which is exactly the SCD lookup pattern needed here.

Why this answer

ASOF JOIN is purpose-built for joining time-series data to slowly changing dimensions by matching the closest preceding record. It uses MATCH_CONDITION to compare timestamps and equality predicates for the key, avoiding full scans and Cartesian products. The other options either ignore historical validity or rely on inefficient join types that do not scale for large fact tables.

Exam trap

The trap here is believing that a non-equi join or a simple NULL filter can efficiently handle SCD validity windows, when ASOF JOIN is the optimized construct for this pattern.

117
MCQmedium

If a permanent table in a Snowflake Enterprise edition account is dropped, and it had a 10-day Time Travel retention period, what is the total duration until the data is permanently unrecoverable by any means?

A.10 days, after which the data is purged from the storage layer.
B.7 days, as the Fail-safe period overrides the Time Travel period upon dropping.
C.17 days, including 10 days of Time Travel and 7 days of Fail-safe.
D.90 days, which is the maximum Time Travel limit for Enterprise accounts.
AnswerC

The total lifespan of the data after a drop is the sum of its configured Time Travel (10 days) and the system-defined Fail-safe (7 days). Only after this cumulative 17-day window does Snowflake release the storage and permanently delete the micro-partitions from the underlying cloud storage service.

Why this answer

For permanent tables, the data protection lifecycle consists of the Time Travel period followed by the Fail-safe period. After the table is dropped, it remains in Time Travel for 10 days (allowing UNDROP). Then, it automatically moves into Fail-safe for another 7 days.

Once both periods expire (17 days total), the data is purged.

Exam trap

Candidates often calculate the protection period based only on the Time Travel setting, forgetting to add the mandatory 7-day Fail-safe period that applies to all permanent tables.

118
MCQmedium

A data engineer is designing a recovery strategy for a critical permanent table FACT_SALES in an Enterprise Edition account. The team wants the ability to restore the table to any point within the last 60 days and also wants protection against a catastrophic failure that corrupts the data. Which statement correctly describes the available recovery windows?

A.Setting DATA_RETENTION_TIME_IN_DAYS to 60 gives 60 days of Time Travel, and Fail-safe adds no extra window because it overlaps Time Travel.
B.The maximum Time Travel for a permanent table is 30 days, so 60 days is not achievable and the setting will fail.
C.Setting DATA_RETENTION_TIME_IN_DAYS to 60 requires converting the table to a transient table to extend beyond 1 day.
D.Setting DATA_RETENTION_TIME_IN_DAYS to 60 gives 60 days of Time Travel plus 7 days of Fail-safe, for a total of 67 days of recoverability.
AnswerD

A permanent table in Enterprise Edition supports up to 90 days of Time Travel, so 60 is valid. Time Travel and Fail-safe are sequential windows: after the Time Travel period expires, Snowflake retains the data for an additional 7 days of Fail-safe, which is only accessible through Snowflake Support. The total recoverability is therefore 60 days of self-service Time Travel followed by 7 days of Fail-safe.

Why this answer

Permanent tables in Enterprise Edition can be configured up to 90 days of Time Travel, and Fail-safe adds a fixed seven-day window after Time Travel expires. A 60-day retention therefore yields 60 days of self-service recovery plus 7 days of Support-assisted recovery. Fail-safe does not overlap Time Travel, transient tables are capped at one day, and 30 is the default rather than the maximum.

Exam trap

The trap here is treating Time Travel and Fail-safe as overlapping protections, when Fail-safe actually begins only after the Time Travel window has elapsed.

119
MCQeasy

A data engineer needs to ensure that all queries against a table containing sensitive data are logged for compliance purposes. Which Snowflake feature should the engineer use to capture the query text and the user who executed it?

A.Login History in the ACCOUNT_USAGE schema.
B.Access History in the ACCOUNT_USAGE schema.
C.Query History in the ACCOUNT_USAGE schema.
D.Warehouse Metering History in the ACCOUNT_USAGE schema.
AnswerC

Query History in the ACCOUNT_USAGE schema captures detailed information about every query executed, including the query text, the user who ran it, and the execution time. This is the standard Snowflake feature for auditing query activity and meets the requirement to log queries against the sensitive table.

Why this answer

Query History in ACCOUNT_USAGE is the correct feature to log query text and user information for compliance. It provides a complete record of all queries executed in the account. Access History is for column-level access, Login History is for authentication events, and Warehouse Metering History is for cost tracking.

Only Query History captures the necessary details.

Exam trap

The trap here is confusing Access History with Query History, assuming that Access History logs full query text when it only tracks column-level access.

120
MCQmedium

Which of the following scenarios is most appropriate for using a Materialized View to optimize performance?

A.Frequently run queries involving complex joins and aggregations on static data.
B.Queries that are run only once a month.
C.Queries that access data from an external stage.
D.Queries that filter on non-deterministic functions.
AnswerA

Materialized views are ideal for frequently executed queries that involve intensive operations like complex joins and aggregations. Because the result set is stored and updated automatically as the base table changes, subsequent queries retrieve the result directly, drastically reducing compute costs and improving response times for end users.

Why this answer

Materialized Views in Snowflake are best suited for queries that are frequently executed, computationally expensive, and rely on stable, non-volatile data. By pre-computing the result set and storing it, Snowflake avoids the overhead of repeated aggregation or complex joins. This is essential for dashboarding or reporting where the same transformation is run repeatedly, saving both compute credits and time while ensuring the underlying data remains consistent with the base table.

Exam trap

Candidates often incorrectly suggest Materialized Views for high-churn or frequently updated tables, forgetting that materialized views incur maintenance costs and are best suited for static, high-read datasets.

121
MCQmedium

A company requires that data masking policies be applied automatically whenever a column is tagged with 'PII'. How can this be achieved?

A.Write a stored procedure to trigger on every DDL statement.
B.Use tag-based masking policies.
C.Use a Row Access Policy with a conditional tag check.
D.Manually apply the masking policy every time a table is created.
AnswerB

Tag-based masking policies allow you to define a masking policy and associate it with a specific tag. When the tag is applied to a column, the masking policy is automatically applied. This streamlines governance, reduces maintenance, and ensures consistency across large, evolving datasets in the enterprise.

Why this answer

Tag-based masking policies provide a direct link between metadata tagging and security enforcement. By associating a masking policy with a specific tag, any column assigned that tag automatically inherits the associated masking behavior. This automation is crucial for governance, as it prevents manual errors and ensures that sensitive data is never exposed simply because someone forgot to manually attach a policy to a new column.

Exam trap

Candidates often assume they need to write complex stored procedures or triggers to apply masking. They overlook the native, declarative 'tag-based' feature designed to automate this exact process.

122
MCQmedium

A Snowflake account has a tag-based masking policy on column CUSTOMER.SSN. An analyst runs a query that applies the SYSTEM$GET_TAG function to that column. The analyst has been granted the APPLY MASKING POLICY privilege on the tag, but not the USAGE privilege on the tag. What does the analyst see for the SSN column value?

A.NULL, because the masking policy cannot be resolved without tag access.
B.An error, because the analyst lacks USAGE on the tag required to evaluate the masking policy.
C.The unmasked SSN value, because APPLY MASKING POLICY overrides tag visibility.
D.The masked SSN value, because the masking policy is enforced regardless of tag privileges.
AnswerD

Tag-based masking policies are enforced based on the tag assignment and the masking policy's conditions, independent of the user's privileges on the tag itself. The analyst lacks USAGE on the tag, so they cannot see the tag metadata, but the masking policy still applies to the column when queried. Thus the SSN appears masked.

Why this answer

Masking policies attached to tags are enforced regardless of whether the querying user can read the tag. A user without USAGE on the tag cannot see tag metadata but still receives masked data because the policy is evaluated at query time against the column. APPLY MASKING POLICY is an administrative privilege for managing tag-policy associations, not for bypassing enforcement.

Exam trap

The trap here is assuming that lacking USAGE on a tag disables its masking policy or causes an error, when in fact the policy remains enforced.

123
MCQmedium

A financial services firm stores customer records in a table called TRANSACTIONS. The compliance team requires that a specific column, CREDIT_CARD_NUMBER, be transformed so that only the last four digits are visible to all users except members of the role PAYMENT_ADMIN. Additionally, the transformation must occur at query time without modifying the stored data. Which Snowflake feature should the data engineer use to meet this requirement?

A.A tag-based masking policy using the TAG_STRING system function.
B.A row access policy applied to the TRANSACTIONS table.
C.A masking policy applied to the CREDIT_CARD_NUMBER column.
D.A secure view that selects only the last four digits of the column.
AnswerC

A masking policy is a schema-level object that can be attached to a column and evaluates at query time. It can inspect the user's role and conditionally return a masked value, such as showing only the last four digits, while storing the original data unchanged. This directly satisfies the requirement for dynamic, role-based transformation without altering the underlying table data.

Why this answer

The requirement is to dynamically mask a column based on the user's role while preserving the original data. A masking policy attached to the column evaluates at query time and can return different values depending on the role. It does not alter stored data, and it can show only the last four digits for non-privileged roles while revealing the full value for PAYMENT_ADMIN.

This is the standard Snowflake method for column-level dynamic data masking.

Exam trap

The trap here is confusing row-level filtering with column-level masking, or assuming that a secure view alone can provide role-based conditional masking without a masking policy.

124
MCQhard

A data engineer is unloading a large fact table to an external stage and wants to minimize the total volume of data transferred while keeping files readable by downstream tools. The table contains many repeated values in several columns. Which approach best reduces the unloaded data size?

A.Unload with FILE_FORMAT = (TYPE = PARQUET COMPRESSION = SNAPPY).
B.Unload with FILE_FORMAT = (TYPE = JSON COMPRESSION = GZIP).
C.Unload with FILE_FORMAT = (TYPE = CSV COMPRESSION = GZIP).
D.Increase MAX_FILE_SIZE so fewer, larger files are produced.
AnswerA

Parquet is a columnar format that applies per-column encodings such as dictionary and run-length encoding, which greatly shrink columns with many repeated values, and SNAPPY adds block compression on top. This yields the smallest transfer volume while remaining readable by common analytics and ML tools.

Why this answer

Parquet with SNAPPY compression gives the best size reduction because its columnar layout and per-column encodings efficiently handle repeated values, and SNAPPY compresses the encoded blocks. CSV, JSON, and file-count tuning do not exploit column repetition, so they leave far more data to transfer for the same table.

Exam trap

The trap here is focusing on compression codecs alone; the bigger size win comes from the columnar encoding of repeated values, which only Parquet provides among the choices.

125
MCQmedium

A data engineer needs to continuously load JSON event files that arrive in an Amazon S3 bucket into a Snowflake table with near-zero latency. The files are small and arrive in bursts of hundreds per minute. Which Snowflake feature should the engineer configure?

A.A scheduled COPY INTO statement executed every minute by a Snowflake TASK.
B.A Snowflake STREAM on the target table combined with a TASK to poll the S3 bucket.
C.Snowpipe with AUTO_INGEST = TRUE on the pipe, using a storage integration and an S3 event notification to an SQS queue.
D.An external table over the S3 stage with automatic refresh using METADATA$FILENAME.
AnswerC

Snowpipe with AUTO_INGEST uses an S3 event notification delivered to an SQS queue that Snowflake manages, and the pipe's COPY statement loads each new file as it lands. This provides the low-latency, event-driven ingestion required for hundreds of small files per minute without scheduling batch jobs.

Why this answer

Snowpipe with AUTO_INGEST is the only option that reacts to new S3 objects as they arrive by consuming SQS event notifications. It loads files individually with low latency using serverless compute, which suits high-frequency, small-file workloads. Scheduled tasks, streams, and external tables do not deliver the required event-driven ingestion into a table.

Exam trap

The trap here is assuming any polling mechanism can match event-driven ingestion, when only AUTO_INGEST consumes S3 event notifications for true near-real-time loads.

126
MCQhard

A data engineer runs a batch job on a transient table named STG_EVENTS that is loaded from an external stage. The job truncates and reloads the table every night. After a faulty deployment, the engineer needs to restore the table contents from 30 hours ago. The engineer attempts Time Travel but the query returns no historical data. What is the most likely cause?

A.The table is transient, which has a maximum Time Travel retention of 1 day, so data from 30 hours ago may be outside the retention window.
B.Time Travel queries only work for permanent tables, and transient tables require Fail-safe recovery instead.
C.The TRUNCATE operation removes all historical versions immediately, making Time Travel impossible.
D.The table is loaded from an external stage, so Time Travel is not supported for tables that use external stages.
AnswerA

Transient tables have a default and maximum Time Travel retention of 1 day. Because 30 hours exceeds that 24-hour window, the historical data is no longer available for Time Travel. The engineer must design the reload process to retain data longer, or use a permanent table with a longer DATA_RETENTION_TIME_IN_DAYS setting.

Why this answer

Transient tables support Time Travel but with a maximum retention of 1 day. Because the requested restore point is 30 hours old, it falls outside that window, so the historical data is unavailable. Permanent tables can be configured with longer DATA_RETENTION_TIME_IN_DAYS values, which would be required for a 30-hour recovery need.

Exam trap

The trap here is assuming Time Travel works the same for all table types, when transient tables are capped at 1 day of retention.

127
Multi-Selecthard

A data engineer is managing a Snowflake account with multiple databases. The engineer wants to ensure that critical data can be recovered in the event of accidental deletion or modification. The engineer is considering using Time Travel and Fail-safe. Which TWO statements accurately describe the capabilities and limitations of Fail-safe? (Choose two.)

Select 2 answers
A.Users can query data in Fail-safe using the AT or BEFORE clauses, similar to Time Travel.
B.Fail-safe applies to transient tables, providing an additional layer of protection after Time Travel.
C.Fail-safe can be disabled at the account level to reduce storage costs.
D.Fail-safe provides a 7-day period after Time Travel expires during which Snowflake Support can recover data.
E.Fail-safe storage costs are incurred for data that is no longer accessible via Time Travel.
AnswersD, E

Fail-safe is a Snowflake feature that provides a 7-day window after the Time Travel retention period ends. During this period, data can only be recovered by Snowflake Support. It is not user-accessible via SQL. This applies to permanent tables that have Time Travel enabled. Transient and temporary tables do not have Fail-safe. This statement correctly describes the duration and access method for Fail-safe recovery.

Why this answer

Fail-safe is a mandatory 7-day period for permanent tables that begins after Time Travel retention expires. It allows only Snowflake Support to recover data, and it cannot be disabled or queried by users. Transient and temporary tables do not have Fail-safe.

Storage costs are incurred for Fail-safe data, which is no longer accessible via Time Travel. These two statements accurately describe Fail-safe's capabilities and limitations.

Exam trap

The trap here is assuming that Fail-safe is user-accessible or can be disabled, when in fact it is a support-only, mandatory feature for permanent tables.

128
MCQeasy

A data engineer needs to ensure that only users with the role FINANCE_ANALYST can view the SALARY column in the EMPLOYEES table. All other users should see a masked value. Which Snowflake feature should the engineer use?

A.Row Access Policy
B.Object Tag
C.Masking Policy
D.Secure View
AnswerC

A masking policy is applied to a column and can conditionally mask its values based on the user's role. By creating a masking policy that returns the actual salary for FINANCE_ANALYST and a masked value for others, the engineer can meet the requirement. This is the standard Snowflake feature for column-level security and dynamic data masking.

Why this answer

A masking policy is the correct feature for column-level security. It allows conditional masking based on the user's role, ensuring that only FINANCE_ANALYST sees the actual salary. Row access policies filter rows, secure views can be bypassed, and tags are for metadata.

Thus, a masking policy is the right choice.

Exam trap

The trap here is confusing row-level security with column-level security, or assuming that tags enforce access control.

129
Multi-Selectmedium

A data engineer is monitoring warehouse performance and notices a high 'Warehouse Overload' status. Which TWO metrics from the Query History or Warehouse Load monitoring views should be prioritized to confirm the warehouse is undersized? (Select TWO)

Select 2 answers
A.Queued Overload Time
B.Total Number of Queries Executed
C.Percentage of Metadata Scans
D.Remote Disk Spillage
E.Data Scanned from Cache
AnswersA, D

Queued Overload Time represents the amount of time a query spent waiting for warehouse resources because the warehouse was already at maximum capacity. A high value here is a direct indication that the warehouse is under-provisioned for the current level of concurrency and needs to scale out or up.

Why this answer

Warehouse overloading is characterized by queries waiting in a queue because all available compute threads are occupied. High queuing times (Queued Overload Time) and significant disk spillage (Remote Disk Spillage) are the primary indicators that the current warehouse size cannot handle the concurrency or the memory requirements of the workload.

Exam trap

Candidates often select general compute metrics like CPU utilization or warehouse credit usage instead of queuing and memory spill metrics when diagnosing undersized warehouses.

130
MCQhard

You are debugging a transformation pipeline where a task is failing with an 'Insufficient Privileges' error during a MERGE operation. The task is owned by a service account role. What is the most likely cause?

A.The task owner does not have the EXECUTE TASK privilege on the current schema.
B.The task owner lacks the required DML privileges on the target table being merged into.
C.The warehouse used by the task is currently suspended by another process.
D.The task is missing a dependency definition for the source table.
AnswerB

A task executes with the permissions of its owner. If the owner role does not have the necessary INSERT, UPDATE, or DELETE permissions on the target table, the MERGE operation will fail during execution. This is a standard security constraint enforced by Snowflake.

Why this answer

Tasks execute with the privileges of their owner. If the owner role lacks USAGE on the database, schema, or warehouse, or lacks the required DML permissions (INSERT/UPDATE/DELETE) on the target table, the task will fail. This is a common security best practice in Snowflake to ensure the principle of least privilege, requiring careful validation of all object-level permissions during the deployment phase.

Exam trap

Candidates often mistakenly check warehouse usage privileges when a task fails during a DML execution, overlooking object-level DML grants required on the target table.

131
MCQeasy

In Snowflake's object tagging hierarchy, if a tag is applied at the Schema level and a different value for the same tag is applied at the Table level, what is the resulting behavior for the Table?

A.The Table-level tag value overrides the Schema-level tag value.
B.The Schema-level tag value overrides the Table-level tag value.
C.Snowflake returns an error due to a conflict in the tag lineage.
D.Both tag values are combined into a comma-separated string for the Table.
AnswerA

Snowflake follows a 'bottom-up' precedence rule for object tagging. A tag explicitly applied to a lower-level object, such as a table, will always take precedence over the same tag inherited from a higher-level container like a schema or database, allowing for specific overrides of general governance policies.

Why this answer

Snowflake utilizes a hierarchy for tag inheritance where the most specific assignment takes precedence. This allows organizations to set broad defaults at the database or schema level while still permitting exceptions at the table or column level. Understanding this precedence is essential for troubleshooting why certain objects may or may not appear in audit reports.

Exam trap

Candidates often guess that the higher-level (Schema) tag takes precedence, failing to recognize that Snowflake's object tagging follows a 'most specific wins' hierarchy for inheritance.

132
Multi-Selectmedium

A data engineer is designing a transformation pipeline that uses Snowpark to process data. The pipeline must perform complex data cleaning and feature engineering. Which TWO capabilities of Snowpark are specifically designed to support these transformations? (Choose two.)

Select 2 answers
A.The ability to execute user-defined functions (UDFs) written in Python, Java, or Scala within Snowflake.
B.The ability to automatically materialize transformation results into a new table without explicit DDL.
C.The ability to execute transformations on data without moving it out of Snowflake's storage layer.
D.The ability to write transformations in Python, Java, or Scala using a DataFrame API similar to Apache Spark.
E.The ability to use the Snowpark ML library for building and deploying machine learning models directly in Snowflake.
AnswersA, D

Snowpark supports UDFs that can be written in Python, Java, or Scala and executed within Snowflake. This allows custom transformation logic to be applied to data at scale, which is essential for complex feature engineering and data cleaning tasks that go beyond built-in SQL functions.

Why this answer

Snowpark's DataFrame API allows developers to write transformations in Python, Java, or Scala, providing a familiar and expressive way to perform complex data cleaning and feature engineering. Additionally, Snowpark supports UDFs in these languages, enabling custom logic to be executed within Snowflake. These two capabilities directly empower the development of sophisticated transformation pipelines.

Exam trap

The trap here is confusing general benefits like processing data in-place or ML libraries with the specific transformation capabilities of Snowpark, namely the DataFrame API and UDFs.

133
MCQmedium

A data engineer is configuring a Snowpipe to continuously load new files from an external stage backed by Google Cloud Storage. The pipeline must ingest files within seconds of their arrival. The engineer notices that files are not being loaded and that no errors appear in the pipe's copy history. The pipe was created with AUTO_INGEST = TRUE, and the notification channel is configured. Which Snowflake feature should the engineer verify to ensure that Snowpipe receives event notifications from GCS?

A.The pipe's FILE_FORMAT is set to skip header rows and handle compressed files.
B.The GCS bucket has a Pub/Sub subscription that forwards messages to Snowflake's notification endpoint.
C.The external stage URL uses the gcs:// scheme and specifies the correct bucket and folder path.
D.The storage integration's STORAGE_ALLOWED_LOCATIONS parameter includes the GCS bucket path.
AnswerB

Snowpipe auto-ingest for GCS relies on Google Cloud Pub/Sub to deliver event notifications. The bucket must have a Pub/Sub topic and a subscription that pushes messages to the Snowflake-provided notification URL. Without a functioning subscription, Snowflake receives no events, and files are never queued—matching the silent behavior described. This is the correct component to verify.

Why this answer

For Snowpipe auto-ingest from Google Cloud Storage, Snowflake does not poll the bucket. Instead, it relies on Google Cloud Pub/Sub to publish event notifications when new objects arrive. A subscription must be created that pushes these messages to the Snowflake-provided notification endpoint.

If that subscription is missing, misconfigured, or lacks permissions, Snowflake never receives the event, and the pipe remains idle without errors. Verifying the Pub/Sub subscription is therefore the correct diagnostic step.

Exam trap

The trap here is assuming that a storage integration alone enables event-driven ingestion, when GCS auto-ingest additionally requires a Pub/Sub push subscription to Snowflake's notification endpoint.

134
MCQeasy

A data engineer notices that a dashboard query returns instantly on repeat executions but takes much longer the first time each morning. No data has changed overnight. Which Snowflake feature is most directly responsible for the fast repeat executions?

A.The metadata cache holds micro-partition statistics that let the optimizer skip execution entirely and return a stored row set.
B.The query result cache stores the result of the identical query and returns it without re-executing, as long as the underlying data and query text are unchanged.
C.The local disk cache on the warehouse nodes retains the scanned micro-partitions so the second execution reads them without remote I/O.
D.The virtual warehouse remains suspended overnight, so the first execution warms it and later executions reuse the warmed compute.
AnswerB

When an identical query is re-run and the underlying tables have not changed, Snowflake returns the persisted result from the query result cache without recomputing it. That is why repeat executions are near-instant while the first execution after the cache expires or data changes must run fully, matching the observed morning pattern.

Why this answer

The near-instant repeat execution with unchanged data is the signature of the query result cache, which persists results and serves identical queries without recomputation. The first run of the day must execute because the result is not yet cached or was invalidated, and any data change would also invalidate it.

Exam trap

The trap here is attributing the speedup to a warmed warehouse or disk cache, when an unchanged identical query returning instantly is the query result cache at work.

135
MCQmedium

A financial services company stores transaction records in a Snowflake table that includes a column named 'SSN'. The data engineering team has been asked to implement a governance control that automatically detects and tags any column containing Social Security Numbers across the entire account, without manually inspecting every table. Which Snowflake feature should the team use to achieve this requirement?

A.Object tagging with manual tag assignments
B.Access History view in ACCOUNT_USAGE
C.Data Classification with a custom classification profile
D.Dynamic Data Masking with a masking policy
AnswerC

Data Classification scans table columns and applies system tags like SNOWFLAKE.CORE.SSN based on semantic and pattern matching. By creating a custom classification profile that includes SSN detection, the team can automatically tag all relevant columns account-wide. This satisfies the requirement for automatic detection and tagging without manual intervention.

Why this answer

Data Classification is designed to automatically scan and classify columns based on sensitive data patterns. By using a custom classification profile, the team can ensure SSNs are detected and tagged with system tags across the account, meeting the governance requirement without manual effort.

Exam trap

The trap here is confusing Data Classification with Dynamic Data Masking, which protects data but does not automatically detect or tag columns.

136
MCQeasy

A data engineer must load semi-structured JSON from an external stage where each file contains a top-level array of objects. The engineer wants each object in the array to become one row, with each object's keys exposed as columns. Which file format option should be configured?

A.STRIP_NULL_VALUES = TRUE
B.REPLACE_INVALID_CHARACTERS = TRUE
C.STRIP_OUTER_ARRAY = TRUE
D.SKIP_HEADER = 1
AnswerC

STRIP_OUTER_ARRAY removes the outer brackets of a top-level JSON array so that each element is treated as a separate row during loading. This is exactly the behavior needed when files contain an array of objects and each object should map to a row. It is a property of the JSON file format used by COPY INTO.

Why this answer

When JSON files contain a top-level array, Snowflake by default loads the entire array as one row. Setting STRIP_OUTER_ARRAY to TRUE in the JSON file format removes the outer brackets so each element of the array is parsed as an individual row. This aligns each object with a table row while preserving the object keys as columns or variant fields.

Exam trap

The trap here is reaching for a general JSON cleanup option such as STRIP_NULL_VALUES when the actual need is to change how the outer array is parsed into rows.

137
MCQmedium

A company requires that all data moved into Snowflake be encrypted at rest within the target table. How does Snowflake handle this requirement?

A.The data must be encrypted by the user before being uploaded to the stage.
B.Snowflake automatically encrypts all data at rest using AES-256.
C.The engineer must use the ENCRYPT_DATA parameter in the COPY INTO command.
D.Encryption at rest is only available for Snowflake Enterprise Edition and higher.
AnswerB

Snowflake uses AES-256 encryption for all data at rest, and this service is enabled by default for all accounts. This transparent process ensures that data is always protected within the database without requiring any user-managed configuration or maintenance, simplifying security administration for data engineers and system architects.

Why this answer

Snowflake provides transparent, end-to-end encryption for all data at rest by default. This feature is fundamental to the platform's security architecture. Because it is managed automatically by Snowflake, data engineers do not need to configure encryption keys manually or change their data movement workflows.

This provides peace of mind for security-conscious organizations and ensures compliance with industry standards without adding complexity to the ingestion pipeline.

Exam trap

Candidates often assume they need to manage encryption keys manually or configure specific settings to enable security, not realizing that encryption at rest is a default, automatic feature.

138
MCQeasy

What is the primary function of a 'Tag' in Snowflake's governance framework?

A.To hide data from unauthorized users.
B.To classify data and facilitate governance policy application.
C.To store physical data for backup purposes.
D.To increase the performance of queries.
AnswerB

Tags allow for the classification of data assets, enabling administrators to identify sensitive information and apply policies programmatically. This is a fundamental component of data governance, as it provides a structured way to manage and protect data across large, complex schemas without requiring manual column-level configuration.

Why this answer

Tags are metadata objects that allow you to label other objects, such as tables or columns, to facilitate discovery, cost tracking, and governance policy application. By tagging sensitive data, organizations can automate the application of masking or row access policies, ensuring that security controls scale alongside the data volume and reducing the burden of manual oversight for data engineers.

Exam trap

Candidates often assume tags directly enforce security, failing to realize that tags are merely metadata labels that require a separate policy (like masking) to actually perform the enforcement.

139
MCQmedium

A data engineer manages a Snowflake account where a transient table named STAGE_EVENTS is loaded hourly. To cut storage costs, the engineer plans to set DATA_RETENTION_TIME_IN_DAYS = 0 on this transient table. Which outcome will occur?

A.The table is automatically converted to a permanent table to preserve recoverability.
B.The command fails because transient tables require a minimum retention of 1 day.
C.Time Travel is disabled, but the table still receives the standard 7-day Fail-safe period.
D.Time Travel is disabled for the table, and Fail-safe does not apply to it.
AnswerD

Transient tables never have Fail-safe coverage, and setting DATA_RETENTION_TIME_IN_DAYS to 0 removes Time Travel as well. The table remains available for normal queries, but no historical data can be recovered. This matches the engineer's cost-saving goal without affecting current data access, making it the correct outcome for STAGE_EVENTS.

Why this answer

Setting DATA_RETENTION_TIME_IN_DAYS to 0 on a transient table disables Time Travel, and transient tables are never covered by Fail-safe. The table continues to work for active queries, but historical recovery is unavailable. This is the intended low-cost configuration for staging data that can be reloaded from source systems if needed.

Exam trap

The trap here is assuming every Snowflake table has a 7-day Fail-safe period, when Fail-safe applies only to permanent tables.

140
MCQeasy

A data engineer creates a zero-copy clone of a 5 TB permanent table to provide a development team with a copy of production data. Immediately after the clone is created, how is storage billed for the clone?

A.The clone consumes storage equal to the source table's Fail-safe footprint at creation time.
B.The clone consumes no additional storage until either the source or the clone is modified, at which point only the changed micro-partitions add storage.
C.The clone immediately consumes 5 TB of additional storage because a full physical copy is made.
D.The clone consumes 5 TB only if the source table has Time Travel enabled.
AnswerB

Zero-copy cloning creates a new table that shares the same underlying micro-partitions as the source, so no data is physically duplicated at creation time. Storage is only added when one side diverges and new micro-partitions are written. This makes cloning near-instant and cost-efficient until changes occur.

Why this answer

Zero-copy cloning shares micro-partitions between the source and the clone, so no storage is consumed at creation. Storage is billed only when changes cause new micro-partitions to be written on either side. This is why cloning large tables is fast and initially free of additional storage cost, which is the defining benefit of the feature.

Exam trap

The trap here is assuming that cloning a table duplicates its data and immediately doubles storage, when the clone shares micro-partitions until divergence.

141
MCQeasy

A data engineer is setting up a Snowpipe to automatically ingest data from an external stage (Google Cloud Storage) into a Snowflake table. The engineer wants to minimize latency and ensure that files are loaded as soon as they are available. Which Snowpipe configuration should be used?

A.Create a pipe with AUTO_INGEST = TRUE and rely on Snowflake's internal polling mechanism to detect new files.
B.Create a pipe with AUTO_INGEST = TRUE and configure the stage to use a storage integration with Google Cloud Storage.
C.Create a pipe with AUTO_INGEST = FALSE and schedule it to run every minute using a task.
D.Create a pipe with AUTO_INGEST = TRUE and configure a cloud notification integration for Google Cloud Pub/Sub.
AnswerD

AUTO_INGEST = TRUE enables Snowpipe to automatically ingest new files as they arrive in the external stage, based on event notifications from the cloud provider. For Google Cloud Storage, you configure a notification integration that uses Google Cloud Pub/Sub to send event messages to Snowflake. This setup provides near-real-time ingestion with minimal latency and no manual intervention, making it the correct choice.

Why this answer

For automatic, low-latency ingestion from Google Cloud Storage, Snowpipe must be configured with AUTO_INGEST = TRUE and a notification integration that uses Google Cloud Pub/Sub. This allows Snowflake to receive event notifications when new files arrive, triggering immediate ingestion. Storage integrations alone do not provide event notifications, and polling introduces delay and unnecessary compute.

Exam trap

The trap here is confusing storage integrations with notification integrations; storage integrations grant access, while notification integrations enable event-driven ingestion for AUTO_INGEST.

142
MCQmedium

A data engineer is loading a large number of small JSON files into a Snowflake table using the COPY command. The process is taking much longer than expected. Which action is most likely to resolve the performance bottleneck?

A.Increasing the size of the virtual warehouse from Medium to 2X-Large.
B.Aggregating the small JSON files into fewer, larger files before initiating the COPY command.
C.Changing the target table's data retention period to 0 days during the load.
D.Using the 'STRIP_OUTER_ARRAY = TRUE' file format option in the COPY command.
AnswerB

This is the most effective way to optimize ingestion. By reducing the total number of files, you decrease the overhead associated with listing and opening files in cloud storage. Larger files allow Snowflake to utilize its parallel processing capabilities more effectively, leading to much faster and more cost-efficient data movement.

Why this answer

Small files create significant metadata overhead for Snowflake, as every file requires a separate request and tracking entry. Consolidating small files into larger batches (100MB-250MB) before loading significantly improves throughput. This reduces the number of I/O operations and allows the virtual warehouse to spend more time processing data rather than managing file-level metadata.

Exam trap

Candidates often try to optimize the COPY command parameters or virtual warehouse size, overlooking the fact that small files fundamentally cripple metadata throughput regardless of compute power.

143
MCQmedium

Which of the following is true when considering the order of operations for policy application in Snowflake?

A.Masking policies are applied before Row Access Policies.
B.Row Access Policies are evaluated before Masking policies.
C.Policies are applied in a random order.
D.The evaluation order is defined by the table owner.
AnswerB

Snowflake evaluates Row Access Policies first to determine which rows a user can access, then applies Masking policies to the columns within those allowed rows. This sequential order is essential for maintaining strict security boundaries, as it prevents users from performing operations on rows they are not authorized to see.

Why this answer

Row Access Policies are evaluated before Dynamic Data Masking policies. This ensures that the rows themselves are filtered based on the user's access rights before any masking occurs. This order is critical for security; if masking were applied first, it might leak information about the rows that should have been filtered out, violating the principle of least privilege and strict data boundary enforcement.

Exam trap

Candidates often guess that masking policies apply first, confusing the sequence and overlooking how premature masking could leak row existence information.

144
MCQhard

An account administrator is reviewing storage usage and notices that a table with 1 TB of active data is actually consuming 5 TB of total storage. The table has a clustering key and 90 days of Time Travel. What is the most likely reason for the 4 TB difference?

A.The table has multiple materialized views that are included in its storage count.
B.The table is stored using a redundant cross-region replication policy.
C.The clustering service is creating duplicate data to speed up query performance.
D.High churn from updates and re-clustering is being retained in Time Travel.
AnswerD

Every time Automatic Clustering or an UPDATE statement modifies data, new micro-partitions are written. With 90 days of Time Travel, every single version of those partitions created over the last three months is preserved. In a high-activity environment, this historical data can easily dwarf the size of the active data.

Why this answer

In Snowflake, total storage is the sum of active data, Time Travel data, and Fail-safe data. For a table with a clustering key and high Time Travel retention, frequent updates (churn) or automatic re-clustering will generate numerous new micro-partitions. The 90-day retention period forces Snowflake to keep all those historical versions, leading to massive storage overhead.

Exam trap

Candidates often attribute the storage increase to 'hidden' data or bugs. They fail to realize that high churn in a clustered table creates massive amounts of historical data in Time Travel.

145
MCQmedium

An organization wants to track PII data usage across the environment. Which Snowflake feature provides the most comprehensive audit trail of access to objects containing sensitive information?

A.Query History.
B.Access History.
C.Data Sharing history.
D.Login History.
AnswerB

Access History provides a detailed audit of which columns and tables were accessed by a query. This is essential for governance, as it allows administrators to identify if unauthorized roles are attempting to access sensitive data, providing the foundation for automated security alerting and compliance reporting.

Why this answer

Access History is a native Snowflake feature that records granular information about which users accessed which columns in which tables. This is vital for compliance audits and data governance, as it provides a verifiable record of data consumption. By combining Access History with Object Tagging, organizations can effectively monitor sensitive data flows and ensure compliance with regulatory standards like GDPR or CCPA.

Exam trap

Test-takers often confuse Object Tagging with Access History, assuming tags alone automatically log who queried sensitive data.

146
MCQmedium

A data engineer changes the DATA_RETENTION_TIME_IN_DAYS parameter for a schema from 1 to 30. How does this change affect the existing permanent tables within that schema?

A.All existing tables in the schema are immediately updated to 30 days of retention.
B.The change only applies to new tables created after the parameter was modified.
C.The schema-level change is ignored unless the account-level retention is also 30.
D.Tables without an explicit retention setting will inherit the new 30-day period.
AnswerD

Snowflake's hierarchical parameter model ensures that objects inherit settings from their parent containers unless explicitly overridden. By updating the schema, any table within it that has not been specifically configured with its own retention period will now follow the schema's new 30-day Time Travel policy.

Why this answer

Parameters in Snowflake follow a hierarchy where object-level settings override schema-level settings, which override account-level settings. If a table does not have its own specific retention period set, it inherits the new value from the schema. However, if a table was explicitly created with its own retention period, that setting remains unchanged.

Exam trap

Candidates often assume the schema change retroactively overrides explicit table-level settings. They forget that Snowflake object-level parameters are immutable once set at the table level unless explicitly altered on the table itself.

147
MCQmedium

Which of the following best describes the storage impact of zero-copy cloning a large table?

A.It immediately doubles the storage cost of the table.
B.It incurs no additional storage cost at the time of cloning.
C.It creates a physical copy that only shares unchanged data.
D.It requires the user to re-cluster the clone to avoid costs.
AnswerB

Because zero-copy cloning is a metadata-only operation, no physical data is moved or copied. The new table references the same immutable micro-partitions as the source. Initial storage consumption is effectively zero, making this a highly efficient way to manage multiple environment versions without needing redundant data storage.

Why this answer

Zero-copy cloning is a metadata-only operation that does not duplicate existing micro-partitions. It creates a new logical object pointing to the same underlying storage blocks as the source. Consequently, there is no immediate storage cost at the time of creation.

Storage costs only begin to accrue for the clone if DML operations (UPDATE, DELETE) create new versions of the data that diverge from the original table's state.

Exam trap

Candidates think zero-copy cloning duplicates physical micro-partitions immediately, leading to immediate storage billing increases at clone creation time.

148
MCQmedium

When migrating a large transformation from a legacy system to Snowflake, why is it recommended to prioritize ELT over ETL?

A.ELT is required to use Snowflake's external stage integration.
B.ELT minimizes data movement and leverages Snowflake's compute scalability.
C.Snowflake does not support traditional ETL transformation tools.
D.ETL is only possible using Snowflake's proprietary Java API.
AnswerB

ELT allows you to load raw data quickly and perform transformations using Snowflake’s engine, which is highly optimized for parallel execution. This avoids costly data movement and allows you to scale compute resources on-demand to handle even the most intensive transformation workloads.

Why this answer

Snowflake's architecture is optimized for ELT (Extract, Load, Transform), where data is loaded in raw form and transformed using Snowflake's massive compute power. This leverages the cloud data warehouse's scalability, parallel processing, and columnar storage. By moving the transformation logic into the warehouse, you avoid the bottlenecks and data movement costs associated with traditional ETL, resulting in significantly faster and more scalable data pipelines.

Exam trap

Candidates frequently choose ETL because it is a familiar legacy concept, ignoring that Snowflake's architecture is fundamentally built to leverage ELT for massive parallel processing and performance.

149
Multi-Selecthard

A data engineer is optimizing a Snowflake environment for a data warehouse that experiences high concurrency during business hours. The engineer observes that many queries are small and frequent, and the warehouse is often queued. The engineer wants to reduce queueing and improve throughput without increasing cost significantly. Which two actions should the engineer take? (Choose two.)

Select 2 answers
A.Implement a separate warehouse for small, frequent queries and another for large, long-running queries.
B.Increase the warehouse size from Medium to Large.
C.Set the STATEMENT_QUEUED_TIMEOUT_IN_SECONDS parameter to a low value.
D.Enable the multi-cluster warehouse feature and set the minimum and maximum clusters to 2.
E.Enable the 'USE_CACHED_RESULT' parameter and increase the result cache size.
AnswersA, D

Workload separation isolates small queries from large ones, preventing large queries from monopolizing resources and causing queueing for small queries. By dedicating a warehouse to small, frequent queries, they can run with minimal queueing, while the other warehouse handles heavy workloads. This is a best practice for concurrency management and can be cost-effective if each warehouse is sized appropriately and auto-suspend is enabled.

Why this answer

High concurrency with many small queries is best addressed by increasing parallelism through multi-cluster warehouses and by isolating workloads to prevent resource contention. Multi-cluster warehouses dynamically add clusters to handle queued queries, while workload separation ensures that small queries are not blocked by large ones. Scaling up a warehouse or tweaking timeout parameters does not increase concurrency, and result caching is ineffective for unique queries.

Therefore, the two correct actions are enabling multi-cluster and separating workloads.

Exam trap

The trap here is confusing concurrency with per-query performance, leading to scaling up the warehouse instead of scaling out with multi-cluster or workload isolation.

150
MCQhard

Refer to the exhibit. If the output shows TABLE_TYPE='BASE TABLE', IS_TRANSIENT='YES', and RETENTION_TIME='1', which statement correctly describes the storage behavior if this table is accidentally dropped?

A.The table can be recovered by Snowflake Support for up to 7 days after the drop.
B.The table will stay in Time Travel for 1 day, then move to Fail-safe for 7 days.
C.The table can be recovered using UNDROP for exactly 24 hours after the drop.
D.The table is not recoverable because transient tables do not support the UNDROP command.
AnswerC

The RETENTION_TIME of '1' indicates a 1-day Time Travel window. During this period, the metadata for the dropped table is preserved, allowing the UNDROP TABLE command to succeed. This is the only recovery mechanism available for transient tables before the data is permanently deleted.

Why this answer

The exhibit describes a transient table. Transient tables are permanent objects that persist across sessions but are specifically designed to have no Fail-safe period. They support Time Travel for up to 1 day.

If dropped, the table can be recovered using UNDROP within that 24-hour window, but once that day passes, it is gone forever.

Exam trap

Candidates often assume that because it is a table, it must have a 7-day Fail-safe period, forgetting that transient tables specifically exclude Fail-safe functionality entirely.

Page 1

Page 2 of 4

Page 3

All pages