Courseiva

CCNA Data Engineering Questions

46 questions · Data Engineering · All types, answers revealed

1
MCQmedium

An architect is designing a pipeline to transform data from a raw landing zone to a gold-tier reporting layer. The pipeline requires complex multi-table joins and aggregations that must stay updated within a five-minute latency window. Which Snowflake feature provides the most simplified declarative approach for this requirement?

A.Streams and Tasks with manual MERGE statements
B.Materialized Views on top of the raw tables
C.Dynamic Tables with a TARGET_LAG of '5 minutes'
D.External Tables with auto-refresh enabled
AnswerC

Dynamic Tables automatically track changes across multiple source tables and joins, refreshing only when necessary to meet the lag requirement. This declarative approach reduces the need for complex merge logic and manual scheduling, significantly simplifying the architecture for continuous data integration and business logic application.

Why this answer

Dynamic Tables simplify the declarative pipeline process by automatically managing refreshes based on a specified target lag. Unlike Streams and Tasks, which require imperative logic and manual scheduling, Dynamic Tables optimize for the desired state of data, making them ideal for complex transformations where managing manual dependencies becomes a significant operational burden for architects.

Exam trap

Candidates often confuse Dynamic Tables with Streams and Tasks, incorrectly choosing imperative orchestration tools when the question explicitly asks for a simplified, declarative, and automated approach for data pipelines.

2
MCQmedium

A data engineer is designing a batch transformation pipeline using Dynamic Tables. The source table is updated hourly, and the target Dynamic Table must reflect changes within 30 minutes. The transformation involves a complex join and aggregation. Which approach best meets the freshness requirement while minimizing cost?

A.Set the target lag to 30 minutes and use a dedicated virtual warehouse sized as XSMALL.
B.Set the target lag to 30 minutes and use a dedicated virtual warehouse sized based on the complexity of the transformation, monitoring and adjusting as needed.
C.Set the target lag to 30 minutes and use a multi-cluster warehouse with a minimum of 1 and maximum of 3 clusters.
D.Set the target lag to 30 minutes and use a dedicated virtual warehouse sized as LARGE.
AnswerB

The target lag defines the maximum acceptable delay. The warehouse size should be chosen to ensure the refresh completes within that lag. Starting with a moderate size and monitoring refresh duration allows you to adjust up or down, balancing performance and cost. This iterative approach is recommended for Dynamic Tables because refresh time depends on data volume and transformation complexity.

Why this answer

Dynamic Tables refresh automatically based on the target lag. The warehouse size must be adequate to complete the refresh within the lag. Starting with a size based on transformation complexity and monitoring allows tuning to meet freshness without overspending.

This approach balances performance and cost effectively.

Exam trap

The trap here is assuming that a larger warehouse or multi-cluster warehouse is always better; the key is to match warehouse size to the refresh workload and monitor to adjust.

3
MCQhard

A Snowflake architect is implementing a Type-2 slowly changing dimension (SCD2) on the CUSTOMER_DIM table using a Stream on the source table CUSTOMER_RAW and a task that runs every 5 minutes. The task currently reads the stream and applies a MERGE that only handles inserts and updates. Historical versions are lost. The architect must preserve prior attribute values for changed customers and mark each row with effective and end timestamps. Which approach should the architect use to meet this requirement?

A.Add a row-version column to CUSTOMER_DIM and use a MERGE with a WHEN MATCHED THEN UPDATE clause that increments the version and overwrites the attribute values in place.
B.Configure the CUSTOMER_DIM table with CHANGE_TRACKING = TRUE and query the table's change tracking metadata to reconstruct prior versions on demand.
C.Replace the task with a Materialized View over CUSTOMER_RAW that automatically retains a copy of each historical version whenever the base table changes.
D.Use a MERGE that, for matched rows whose tracked attributes changed, sets the end timestamp and an is_current flag to false on the existing row, and inserts a new row with a new effective timestamp and is_current true.
AnswerD

This is the standard SCD2 pattern in Snowflake: the MERGE detects attribute changes from the stream, expires the current row by setting its end timestamp and clearing the current flag, and inserts a fresh version with a new effective date. It preserves full history, keeps exactly one current row per business key, and can be driven entirely by the stream's change metadata inside a scheduled task.

Why this answer

SCD2 requires that a changed business key produce a new row while the previous row is expired rather than overwritten. A MERGE driven by the stream can detect changed attributes, close the existing current row with an end timestamp and a false current flag, and insert a new current row with a new effective timestamp. This preserves complete history and keeps exactly one active version per key.

Exam trap

The trap here is assuming that adding a version counter and updating values in place preserves history, when in fact overwriting the attributes destroys the prior versions that SCD2 must retain.

4
MCQmedium

Which object acts as the logical container for storing data in Snowflake, and how is it related to the underlying physical storage?

A.A Schema, which manages physical disk allocation.
B.A Table, which maps directly to a specific physical file on disk.
C.A Database, which organizes schemas, tables, and views.
D.A Warehouse, which handles the persistent storage of data.
AnswerC

A database is the top-level logical container in Snowflake that houses schemas and their contained objects. It represents the logical boundary for data, while the actual physical storage is managed by Snowflake as immutable micro-partitions, completely abstracted from the user's view of the database structure.

Why this answer

A database is the logical container in Snowflake. Snowflake's architecture separates the logical database objects (tables/views) from the physical storage layer (micro-partitions in cloud storage). This abstraction is central to Snowflake's design, allowing users to interact with relational constructs while the engine handles the complexities of storage management, encryption, and partitioning without requiring manual maintenance from the end-user.

Exam trap

Candidates often confuse logical containers with physical storage units, assuming that databases or schemas directly dictate how data is physically laid out on disk rather than relying on automated micro-partitions.

5
MCQhard

When designing an ELT pipeline using Snowflake, why is it recommended to perform transformations inside Snowflake rather than using an external ETL tool?

A.External ETL tools cannot connect to Snowflake via standard interfaces.
B.It keeps data within the Snowflake ecosystem, reducing latency and egress costs.
C.External ETL tools are unable to handle complex SQL logic.
D.Snowflake does not support programmatic data manipulation.
AnswerB

Moving data out of Snowflake for transformation incurs egress costs and increases latency. By performing transformations inside Snowflake using its MPP engine, data stays local to the storage, maximizing performance and significantly lowering total cost of ownership by eliminating data movement between different compute environments.

Why this answer

Snowflake's architecture separates storage and compute, allowing it to act as a highly scalable transformation engine. By performing ELT (Extract, Load, Transform), engineers ingest raw data first, then use SQL to transform it. This approach leverages Snowflake's massively parallel processing (MPP) power, avoids unnecessary data egress costs, and keeps transformation logic centralized within the database, which simplifies auditing and improves overall data lineage and pipeline performance.

Exam trap

Candidates often prioritize external tools for familiarity, failing to account for the significant performance penalty and cost associated with egressing data out of Snowflake for transformation and then reloading it.

6
MCQmedium

Refer to the exhibit. What is the primary purpose of the WHEN clause in this Task definition?

A.To ensure the Task only runs if the sales_summary table is empty.
B.To check for the existence of the 'sales_stream' object before starting the warehouse.
C.To skip the task execution and avoid warehouse costs if no changes are present in the stream.
D.To validate that the data in the stream matches the schema of the sales_summary table.
AnswerC

This is a critical cost-optimization technique. By evaluating the stream's data status before the warehouse is provisioned, Snowflake avoids spinning up compute resources for a task that has no data to process, effectively reducing unnecessary credit consumption in the automated pipeline.

Why this answer

The WHEN clause in a Task allows for conditional execution based on a boolean expression. In this case, the SYSTEM$STREAM_HAS_DATA function checks if the associated stream contains any change tracking data. This prevents the Task from starting a warehouse and consuming credits when there is no work to perform.

Exam trap

Candidates frequently mistake the WHEN clause for data filtering or row selection, rather than recognizing its role in conditional task scheduling and credit conservation.

7
MCQmedium

A healthcare analytics company stores patient encounter data in a Snowflake table with columns: encounter_id (NUMBER), patient_id (NUMBER), encounter_date (DATE), and diagnosis_code (VARCHAR). The table is 20 TB and grows by 100 GB per day. Most queries filter on encounter_date and join to a patient dimension on patient_id. The architect must design a clustering key to optimize these queries while minimizing reclustering cost. Which clustering key should the architect choose?

A.CLUSTER BY (patient_id, encounter_date)
B.CLUSTER BY (encounter_date, patient_id)
C.CLUSTER BY (encounter_id)
D.CLUSTER BY (diagnosis_code, encounter_date)
AnswerB

This key orders data first by encounter_date, which is the primary filter column, and then by patient_id, which supports the join. Snowflake can prune micro-partitions efficiently on date ranges and co-locate related patient rows within each date, reducing scanned data for both filters and joins while keeping reclustering overhead manageable.

Why this answer

The clustering key should lead with the column most frequently used in range filters, which is encounter_date, and then include the join column patient_id. This order enables partition pruning on date ranges and improves join performance by co-locating related patient rows. The reversed order or unrelated columns fail to support the dominant query patterns and would increase scan volume and reclustering overhead.

Exam trap

The trap here is assuming that the join column must come first to optimize joins, when in fact leading with the high-selectivity filter column delivers greater pruning benefits for this workload.

8
MCQmedium

A retail company ingests a daily 2 TB CSV file into a Snowflake table. The file is stored in an internal stage. The COPY INTO command currently runs with a single large file, and the load takes over 4 hours. The architect wants to reduce load time by leveraging parallelism. Which action should the architect take?

A.Use the VALIDATION_MODE = RETURN_ERRORS option to check for errors before loading, then rerun the COPY INTO command.
B.Split the large CSV file into multiple smaller files (e.g., 100–250 MB each) and use a single COPY INTO command with a pattern to load all files.
C.Increase the warehouse size to 4X-Large and rerun the same COPY INTO command on the single large file.
D.Convert the CSV file to JSON and load it using the VARIANT data type with a single COPY INTO command.
AnswerB

Splitting the file enables Snowflake to load multiple files in parallel across the compute resources of the warehouse. A single COPY INTO with a pattern can reference all files, and the load is distributed. This is the recommended approach for large data loads.

Why this answer

The key to faster loads is parallelizing across multiple files. A single large file is loaded by one thread, so splitting into smaller files allows Snowflake to distribute the load across many threads, significantly reducing elapsed time. Increasing warehouse size or changing format does not address the single-file bottleneck.

Exam trap

The trap here is assuming that a larger warehouse will automatically speed up a single-file load, but parallelism requires multiple files.

9
MCQeasy

A data architect needs to load data from an external stage into a Snowflake table. The data files are in Parquet format and are updated daily. The architect wants to minimize storage costs and avoid data duplication. Which command should be used to load only new or changed files?

A.COPY INTO with the VALIDATION_MODE option to validate files before loading.
B.COPY INTO with the PATTERN option to match file names based on date.
C.COPY INTO with the FILES option to specify a list of files to load.
D.COPY INTO with the load metadata tracking enabled to skip files already loaded.
AnswerD

Snowflake's COPY INTO command automatically tracks load metadata for external stages, recording which files have been loaded. By default, it skips files that have already been loaded successfully, preventing duplicates. This is the recommended way to load only new or changed files without manual intervention, minimizing storage costs and avoiding duplication.

Why this answer

COPY INTO leverages Snowflake's load metadata to track which files have been loaded from an external stage. It skips files that were previously loaded, ensuring only new or changed files are ingested. This automatic tracking prevents duplicates and reduces storage costs by avoiding redundant data.

Exam trap

The trap here is thinking that PATTERN or FILES options can handle incremental loads, but they do not track load history; only the built-in load metadata does.

10
MCQmedium

Refer to the exhibit. Task T2 is a child task of T1. If T1 completes successfully but the stream 'S1' is empty, what will be the status and behavior of Task T2?

A.T2 will fail with an error indicating that the stream contains no records for processing.
B.T2 will enter a 'SKIPPED' state and will not consume any warehouse credits.
C.T2 will run and perform a full table scan of the stream, resulting in zero rows inserted.
D.T2 will wait until S1 has data before executing, potentially delaying the rest of the DAG.
AnswerB

When the condition in the WHEN clause (SYSTEM$STREAM_HAS_DATA) evaluates to false, Snowflake skips the task execution. This is the intended behavior for efficient pipeline design, ensuring that the warehouse is not started and no credits are billed for tasks that have no work to perform.

Why this answer

In a Snowflake Task DAG, the WHEN clause is evaluated after the predecessor task finishes. If the condition in the WHEN clause is false, the task is skipped. This skip behavior is considered a successful state in the context of the DAG's flow, and it prevents the consumption of warehouse credits for an empty operation.

Exam trap

Candidates often think an empty stream causes the task execution to fail or enter an error state, rather than recognizing the intentional 'SKIPPED' behavior which incurs zero costs.

11
MCQhard

A data engineer is observing high costs associated with Snowpipe for a high-volume ingestion pipeline where many small files arrive every second. What is the most effective architectural change to reduce Snowpipe costs while maintaining near real-time ingestion?

A.Increase the size of the virtual warehouse used by Snowpipe
B.Implement a file grouping strategy in the cloud storage layer
C.Switch from Snowpipe to a scheduled COPY INTO command
D.Use the PURGE = TRUE option in the Snowpipe definition
AnswerB

Reducing the total number of files by grouping smaller records into fewer, larger files (ideally 100-250MB) significantly lowers the per-file overhead costs of Snowpipe. This strategy optimizes the serverless resource utilization and reduces the metadata management load required for every single ingestion notification.

Why this answer

Snowpipe costs are influenced by the number of files processed due to per-file overhead. By aggregating small files into larger batches at the source or using a more efficient staging strategy, architects can reduce the overhead. Monitoring the pipe's utilization and file sizing is a core responsibility for optimizing serverless compute usage in Snowflake.

Exam trap

Test-takers mistakenly believe they can tweak pipe parameters or warehouse sizes to reduce per-file Snowpipe costs caused by an influx of tiny files.

12
MCQmedium

Refer to the exhibit. An architect reviews the status of a Snowpipe and notices a high 'pendingFileCount'. The warehouse is not under heavy load. What is the most effective way to improve the ingestion throughput for this pipe?

A.Scale up the virtual warehouse assigned to the pipe to a larger size.
B.Reduce the number of files by aggregating data into larger files (100-250 MB) before they reach the S3 bucket.
C.Increase the MAX_CONCURRENCY_LEVEL parameter in the Pipe definition to allow more parallel loads.
D.Use the ALTER PIPE ... REFRESH command to force the pipe to process the pending files faster.
AnswerB

Snowflake's ingestion services are most efficient when processing files in the 100MB to 250MB range. Having many small files increases the overhead of metadata management and file opening, which can lead to a backlog. Consolidating files reduces this overhead and allows Snowpipe to process more data per unit of time.

Why this answer

A high pending file count in Snowpipe often indicates that the ingestion rate is slower than the file arrival rate. Since Snowpipe is serverless, users cannot scale the compute manually. The best approach is to optimize the file size and count, or ensure that the files are correctly formatted to be processed as quickly as possible.

Exam trap

Test-takers often try to manually scale up or alter compute warehouses for Snowpipe, forgetting that Snowpipe is serverless and managed automatically.

13
Multi-Selectmedium

A data engineer is concerned about the performance of a large-scale batch transformation that runs every night. Which TWO techniques can be used to improve the performance of a complex join between two very large tables (billions of rows)?

Select 2 answers
A.Define a Clustering Key on the join columns for both large tables.
B.Increase the size of the virtual warehouse to provide more memory and prevent spilling to disk.
C.Use the SEARCH_OPTIMIZATION_SERVICE on the join columns of the smaller table.
D.Convert the tables to Iceberg format to utilize external metadata indexing.
E.Enable Query Acceleration Service (QAS) for the warehouse running the ETL.
AnswersA, B

When both tables in a join are clustered on the join key, Snowflake can perform a more efficient join by pruning micro-partitions that do not contain matching values. This significantly reduces the amount of data that must be scanned and shuffled across the network, leading to much faster query execution.

Why this answer

Optimizing large joins in Snowflake involves ensuring that the data is physically organized to minimize data movement and that the compute resources are sufficient. Clustering allows for partition pruning, while larger warehouses provide the memory necessary to perform hash joins without spilling data to local or remote storage.

Exam trap

Candidates often suggest adding more clusters to the warehouse (multi-cluster) instead of increasing warehouse size, confusing throughput scaling with memory-intensive join performance requirements.

14
MCQmedium

When designing a multi-layered architecture (Raw -> Silver -> Gold), which Snowflake object type is best suited for building the 'Silver' layer for incremental transformations?

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

Dynamic Tables provide a declarative way to define data pipelines. They automatically manage incremental materialization based on a target lag, eliminating the need for manual task orchestration and complex refresh logic. This makes them the ideal choice for building performant, scalable data layers in an ELT architecture.

Why this answer

Dynamic Tables are designed for declarative data pipelines. Instead of managing complex TASK-based workflows with intermediate tables, an engineer defines the transformation logic and the target lag. Snowflake handles the materialization, incremental updates, and orchestration.

This significantly reduces the boilerplate code and management overhead, allowing engineers to focus on business logic rather than pipeline orchestration, which is the primary goal of modern data architecture.

Exam trap

Candidates often default to complex Task and Stream orchestration for incremental layers, forgetting that Dynamic Tables offer a declarative, automated approach designed specifically for these workflows.

15
Multi-Selecthard

An architect is designing a near-real-time ingestion path using Snowpipe streaming into a target table. The team must choose TWO design decisions that reduce end-to-end latency and cost for continuously arriving events. (Choose two.)

Select 2 answers
A.Use the Snowpipe streaming SDK or Snowflake Ingest SDK to push rows directly rather than writing files and triggering a pipe.
B.Tune the client to flush rows at a smaller interval or size so events are committed to the target more frequently.
C.Batch events into larger files and rely on a scheduled COPY INTO to load them periodically.
D.Configure the target table with clustering on the event timestamp to improve insert throughput.
E.Disable the pipe and instead use a task that runs every minute to call INSERT statements against the target table.
AnswersA, B

Snowpipe streaming writes rows through the SDK without staging files, so events become queryable with much lower latency than the file-based path. It also avoids the cost and delay of writing and listing many small files. For continuously arriving events, this is the intended low-latency mechanism and directly reduces both freshness delay and file-handling overhead.

Why this answer

Snowpipe streaming lowers latency by pushing rows directly through the SDK instead of staging files, and the client flush interval determines how quickly buffered rows become visible. Together these reduce freshness delay and avoid file-handling overhead. Clustering, scheduled file-based loads, and task-driven inserts either add delay, add cost, or replace the streaming path with a slower polling model.

Exam trap

The trap here is conflating query-performance tuning such as clustering with ingestion-latency tuning, when streaming freshness is governed by the client flush behavior and the SDK path.

16
MCQhard

A data engineer needs to share data with an external organization without moving or copying the data. Which feature is the most efficient and secure way to implement this?

A.Use a scheduled task to export data to an S3 bucket.
B.Implement Snowflake Data Sharing.
C.Create a read-only user for the other organization.
D.Use the Snowflake Data Replication feature.
AnswerB

Data Sharing enables secure access to live data without copying or moving it. The data provider maintains ownership, and the data consumer sees the most current version. This avoids the cost, latency, and security risks associated with data replication and physical file distribution.

Why this answer

Snowflake Data Sharing allows secure access to live data without replication. This eliminates the overhead of managing ETL jobs for data distribution, ensures the data consumer always sees the most current information, and provides granular control over what is shared. This is the cornerstone of the Snowflake Data Cloud, enabling organizations to build data-driven partnerships while maintaining full governance and security compliance over their shared assets.

Exam trap

Candidates often choose traditional ETL pipelines or table cloning to share data, forgetting that Snowflake Data Sharing provides secure, live access without data duplication or movement overhead.

17
MCQhard

A healthcare analytics team uses Snowflake to analyze patient records. They have a large fact table 'ENCOUNTERS' that is clustered by 'PATIENT_ID' and 'ENCOUNTER_DATE'. The team frequently runs queries that filter on 'FACILITY_ID' and 'DIAGNOSIS_CODE', which are not part of the clustering key. These queries perform poorly. The architect needs to improve performance without changing the existing clustering key, as it benefits other queries. What should the architect do?

A.Create a search optimization service on the columns FACILITY_ID and DIAGNOSIS_CODE.
B.Add a secondary clustering key on FACILITY_ID and DIAGNOSIS_CODE to the table.
C.Create a materialized view on ENCOUNTERS that includes FACILITY_ID and DIAGNOSIS_CODE, and rewrite queries to use the materialized view.
D.Recluster the table manually using ALTER TABLE ... RECLUSTER, specifying the new columns.
AnswerA

The search optimization service can significantly improve performance for selective point lookups and filtered queries on columns not in the clustering key. It maintains a search access path that allows efficient pruning. This is ideal when the existing clustering key must remain for other queries. It does not require changing the clustering key and can be added to specific columns.

Why this answer

The search optimization service is designed to accelerate queries with filters on columns that are not part of the clustering key. It creates a persistent data structure that enables efficient pruning for equality and IN filters. This allows the team to keep the existing clustering key for other queries while improving performance for FACILITY_ID and DIAGNOSIS_CODE filters.

It is the appropriate solution without altering the clustering key.

Exam trap

The trap here is assuming that you can add a second clustering key or that reclustering can target new columns, when Snowflake only supports one clustering key per table.

18
MCQmedium

A Snowflake architect is designing a pipeline that ingests semi-structured JSON events from an internal stage and needs to write them into a VARIANT column. The events contain nested keys that vary in depth and casing across sources, and the team wants to flatten only a fixed set of known top-level keys while preserving the remaining structure for later analysis. Which approach best satisfies these requirements?

A.Create a view that exposes the fixed top-level keys with colon path notation (for example, src:payload:eventType) and leave the raw VARIANT column available for ad hoc queries.
B.Use LATERAL FLATTEN with the RECURSIVE argument set to TRUE on the raw VARIANT column to expand every nested key into separate rows, then filter the resulting KEY column to the known top-level keys.
C.Load the JSON into a relational table with one column per possible nested key, using the INFER_SCHEMA option of COPY INTO to auto-detect every attribute at load time.
D.Store each event as a separate row using the PARSE_JSON function and then apply OBJECT_KEYS to return only the known top-level keys as an array column.
AnswerA

Colon path notation accesses specific keys of a VARIANT without destroying the rest of the document. The base column remains queryable, so unknown or deeply nested attributes stay available for later analysis, while consumers get stable projections of the known top-level keys. This is the standard Snowflake pattern for selectively surfacing semi-structured fields without losing fidelity.

Why this answer

Projecting known fields with colon path notation keeps the raw VARIANT column intact, so unknown keys and deeper nesting remain available. This satisfies both requirements: a stable interface for the fixed top-level keys and full retention of the original semi-structured payload for later analysis. Recursive flattening, inferred relational schemas, and key-name extraction all either destroy structure or fail to surface values.

Exam trap

The trap here is assuming that flattening semi-structured data must be destructive, when Snowflake path notation lets you project selected keys while leaving the original VARIANT untouched.

19
MCQmedium

A data engineer is designing an automated ingestion pipeline using Snowpipe Streaming to ingest high-frequency clickstream data from Kafka into Snowflake tables. The architecture requires low latency and cost-effective continuous loading. Which underlying Snowflake architectural feature makes Snowpipe Streaming uniquely capable of bypassing the traditional internal staging phase?

A.It leverages serverless tasks to automatically stage and bulk load streaming batches every minute.
B.It writes data directly to internal table micro-partitions via client-side API calls, avoiding file staging.
C.It requires continuous execution of a dedicated virtual warehouse to transform and commit micro-batches.
D.It automatically converts incoming streaming payloads into Parquet files before final table insertion.
AnswerB

Snowpipe Streaming uses client-side API calls to write rows straight into internal table micro-partitions, bypassing the internal staging phase entirely. This removes the file-write-and-load cycle that standard Snowpipe depends on, delivering the low latency and continuous, cost-effective ingestion the Kafka clickstream pipeline requires.

Why this answer

Snowpipe Streaming writes directly to Snowflake micro-partitions using native Java APIs without requiring files to be staged first in internal stages. This architectural shortcut significantly reduces latency and compute costs for real-time streaming pipelines compared to standard file-based Snowpipe loading.

Exam trap

Candidates often incorrectly assume Snowpipe Streaming is just an optimized version of standard Snowpipe, missing the key architectural difference: it bypasses file-based staging entirely by writing directly to partitions.

20
MCQmedium

An enterprise data engineering team is designing a real-time ingestion pipeline into Snowflake using Snowpipe streaming. The target is a transactional table that requires low latency and high frequency inserts from Java applications. Which architectural consideration is critical for optimizing performance and maintaining transactional integrity when using Snowpipe streaming?

A.Files must be staged in an external cloud storage bucket prior to ingestion via the streaming Java SDK.
B.The client application must explicitly execute a SQL ALTER TABLE command to flush data buffers every five minutes.
C.Channels write directly to micro-partitions without intermediate staging, requiring careful sizing of the client's memory buffers.
D.Data loaded via Snowpipe streaming must undergo a mandatory virus scan within an internal stage before table insertion.
AnswerC

The streaming SDK writes rows directly into cloud storage micro-partitions. Because there are no staging files, client applications must manage memory buffers effectively to prevent dropped payloads or excessive network chatter during peak ingestion periods.

Why this answer

Snowpipe streaming utilizes client-side buffering to write rows directly to micro-partitions without staging files first, achieving sub-second latency. Understanding this architecture is critical for data architects designing high-throughput real-time pipelines to balance memory allocation on ingestion clients with Snowflake's micro-partition generation limits.

Exam trap

Candidates often confuse Snowpipe Streaming with standard Snowpipe, mistakenly believing that intermediate staging files are still required for the streaming ingestion process.

21
MCQmedium

An organization requires that all data ingested into Snowflake must be encrypted at rest with customer-managed keys. Which feature enables this security requirement for data stored in Snowflake?

A.Data Masking
B.Tri-Secret Secure
C.Row-Level Security
D.Access Control Lists (ACLs)
AnswerB

Tri-Secret Secure combines a Snowflake-managed key and a customer-managed key (stored in AWS KMS, Azure Key Vault, or Google Cloud KMS) to encrypt the data. This meets the requirement for customer-managed keys, giving the client ultimate control over the data's encryption state and access policies.

Why this answer

Tri-Secret Secure uses a combination of a Snowflake-managed key and a customer-managed key stored in a cloud provider's Key Management Service (KMS). This provides an additional layer of security, ensuring that data is encrypted using a key outside of Snowflake's direct control. This is vital for highly regulated industries like finance or healthcare that must maintain strict data governance and compliance over their encryption keys.

Exam trap

Candidates frequently confuse Tri-Secret Secure with general data encryption at rest or Time Travel, failing to recognize it as the specific feature for customer-managed key (CMK) integration.

22
MCQeasy

A data engineer is loading data into a Snowflake table using the COPY INTO command. The source files are in an external stage and have a consistent schema. The engineer wants to ensure that any errors during loading do not cause the entire load to fail, but rather log the errors for later review. Which COPY INTO option should the engineer use?

A.ON_ERROR = 'SKIP_FILE'
B.VALIDATION_MODE = 'RETURN_ERRORS'
C.ON_ERROR = 'ABORT_STATEMENT'
D.ON_ERROR = 'CONTINUE'
AnswerD

The ON_ERROR = 'CONTINUE' option instructs COPY INTO to skip any rows that cause errors and continue loading the rest of the file. Error details are logged in the load metadata, allowing later review. This meets the requirement of not failing the entire load due to individual row errors, while still capturing error information for analysis.

Why this answer

The ON_ERROR = 'CONTINUE' option allows COPY INTO to skip erroneous rows and continue loading the remaining rows. Errors are logged in the load metadata, which can be queried using the VALIDATE function or by checking the COPY_HISTORY. This ensures that the load does not fail entirely while still capturing error details for later review.

Other options either abort the load, skip entire files, or only validate without loading.

Exam trap

The trap here is confusing error handling with validation; VALIDATION_MODE only checks files without loading, while ON_ERROR controls behavior during actual loading.

23
MCQmedium

A Snowpipe is configured to load data from an S3 bucket. The architect notices that some files are failing to load due to a schema mismatch, but no alerts are being generated. What is the most robust way to implement automated error notification for Snowpipe?

A.Schedule a Task to query the VALIDATE_PIPE_LOAD function every hour
B.Configure the ERROR_INTEGRATION parameter on the PIPE object
C.Use a Stream on the target table to track failed insert attempts
D.Set the Snowpipe parameter ON_ERROR = 'NOTIFY'
AnswerB

Setting up an Error Integration allows Snowpipe to automatically send notifications to a cloud provider's messaging service (like AWS SNS, Azure Event Grid, or GCP Pub/Sub) whenever a load error occurs. This provides a proactive, near real-time alerting mechanism for data ingestion failures.

Why this answer

Snowpipe error notifications allow architects to push alerts to a cloud messaging service when errors occur. By configuring the ERROR_INTEGRATION parameter in the Pipe definition, Snowflake can send detailed JSON error reports to services like Amazon SNS, which can then trigger emails or Slack alerts for the engineering team.

Exam trap

Candidates frequently select 'Snowpipe' settings or 'Table' parameters instead of the pipe-specific 'ERROR_INTEGRATION' parameter, confusing general alerting with the targeted error notification mechanism required for pipe failures.

24
MCQeasy

A data engineer is loading a large CSV file into Snowflake using the COPY INTO command. They want the load to continue even if some rows have errors, and they need to review the errors later. Which parameter should be added to the COPY command?

A.ON_ERROR = 'ABORT_STATEMENT'
B.ON_ERROR = 'CONTINUE'
C.ON_ERROR = 'SKIP_FILE'
D.VALIDATION_MODE = 'RETURN_ERRORS'
AnswerB

The CONTINUE option instructs Snowflake to ignore errors and keep loading data from the file. This is a common pattern in data engineering for handling 'dirty' source data, allowing the pipeline to remain resilient while providing a mechanism to audit and fix rejected rows after the load completes.

Why this answer

The ON_ERROR parameter controls how the COPY command handles data validation errors. By setting it to CONTINUE, Snowflake skips any rows that fail to load due to formatting issues and proceeds with the rest of the file. The errors can then be queried using the VALIDATE function or the LOAD_HISTORY view.

Exam trap

Candidates often confuse ON_ERROR='CONTINUE' with other parameters like VALIDATION_MODE, which only checks for errors without actually performing the data load into the target table.

25
MCQmedium

A data engineering team needs to merge late-arriving dimension updates into a large target table. The source is a staging table containing both inserts and updates, and the target has a natural business key. The team wants a single statement that applies all changes atomically and avoids duplicate rows when the source contains multiple records for the same key. Which approach should the architect recommend?

A.Run an INSERT for new keys and a separate UPDATE for existing keys as two statements inside an explicit transaction.
B.Use INSERT OVERWRITE to replace the entire target table with a fresh join of the staging table and the existing target.
C.Create a Stream on the staging table and consume it with a task that issues individual UPDATE statements per changed row.
D.Use a MERGE statement whose source is a subquery that deduplicates the staging table by business key, keeping the latest record per key.
AnswerD

MERGE applies inserts, updates, and optionally deletes in one atomic statement. Deduplicating the source with a windowed subquery that ranks rows per business key and keeps the most recent ensures each target row is matched at most once. This prevents the error Snowflake raises when a source row joins to multiple target rows or the source has duplicates for a matched key, giving deterministic results.

Why this answer

A MERGE with a deduplicated source applies all changes in one atomic statement and guarantees each target row is touched once. Ranking staging rows per business key and keeping the latest avoids the duplicate-match error and yields deterministic upserts. Separate insert and update statements, full-table overwrite, and per-row task updates either risk nondeterminism, incur excessive cost, or fail to collapse duplicates.

Exam trap

The trap here is assuming MERGE tolerates duplicate source rows per key, when a matched key appearing more than once in the source causes a nondeterministic or failing merge.

26
MCQhard

A retail company ingests point-of-sale data into a Snowflake table using Snowpipe. The data arrives as JSON files in an internal stage. The architect needs to transform the semi-structured JSON into a relational format and load it into a reporting table. The transformation involves flattening nested arrays and applying several business rules. The volume is high, and the team wants to minimize latency and cost. Which approach should the architect recommend?

A.Load raw JSON into a staging table using Snowpipe, then use a Stream and a Task to transform and merge into the reporting table.
B.Create a materialized view on the staging table that automatically flattens the JSON and applies business rules.
C.Use a Snowpipe with a COPY INTO statement that includes a transformation query to flatten and transform the JSON during load.
D.Use an external function to call an AWS Lambda that transforms the JSON before loading into Snowflake.
AnswerA

This approach decouples ingestion from transformation, allowing Snowpipe to load raw data quickly while a stream captures new rows. A task can then process only the new data, flatten the JSON, apply business rules, and merge into the reporting table. It minimizes latency and cost by processing incrementally and leveraging Snowflake's native scheduling.

Why this answer

The recommended approach is to load raw JSON into a staging table via Snowpipe, then use a stream and task to incrementally transform and merge into the reporting table. This leverages Snowflake's native change tracking and scheduling, processes only new data, and avoids external dependencies. It balances latency and cost effectively for high-volume semi-structured data.

Exam trap

The trap here is assuming that COPY INTO can perform complex flattening and business rule transformations during load, which it cannot.

27
MCQhard

Refer to the exhibit. An architect observes these statistics in the Query Profile for a nightly batch job. What is the most effective architectural change to address the performance bottleneck shown?

A.Implement a Search Optimization Service on the join columns to reduce the number of partitions scanned.
B.Enable the Query Acceleration Service (QAS) for the warehouse to handle the excess data volume.
C.Increase the virtual warehouse size (e.g., from Medium to Large or X-Large).
D.Rewrite the query to use a LATERAL FLATTEN on the largest tables to optimize memory usage.
AnswerC

Scaling up the warehouse provides each compute node with more RAM and larger local SSD storage. Since the query is spilling significantly to remote storage, a larger warehouse will likely keep more data in memory or local disk, drastically reducing the latency caused by slow network-based I/O.

Why this answer

The exhibit shows significant 'spilling to remote storage', which occurs when the local SSD of the virtual warehouse is exhausted during a memory-intensive operation like a large join or sort. Remote spilling is much slower than local spilling. The primary solution is to increase the warehouse size to provide more memory and local disk.

Exam trap

Candidates often suggest optimizing the query SQL or adding indexes, missing that 'spilling to remote storage' is a hardware/resource constraint that can only be solved by increasing the warehouse size.

28
MCQmedium

An e-commerce company wants to analyze JSON data stored in an external stage on Amazon S3. The JSON files contain nested arrays and objects, and the schema varies between files. The architect needs to query this data with Snowflake while minimizing data duplication and storage costs. Which approach should the architect recommend?

A.Create a materialized view over the external stage that shreds the JSON into relational columns.
B.Create an external table with a VARIANT column and use the FLATTEN function to query nested elements.
C.Use a directory table and a stored procedure to parse and insert JSON into a relational table.
D.Load the JSON files into a Snowflake table with a VARIANT column using COPY INTO, then query with FLATTEN.
AnswerB

External tables allow querying data directly from the external stage without loading it into Snowflake, avoiding duplication and storage costs. Using a VARIANT column accommodates the semi-structured and variable schema, and FLATTEN enables querying nested arrays and objects. This approach meets the requirement to analyze JSON data while minimizing data movement and storage.

Why this answer

External tables with a VARIANT column allow direct querying of JSON in the external stage without loading, avoiding duplication and storage costs. FLATTEN handles nested structures. This is the most efficient approach for variable-schema JSON when the goal is to minimize data movement and storage, unlike loading into a table or using materialized views.

Exam trap

The trap here is assuming that loading JSON into a Snowflake table is necessary for querying with FLATTEN, but external tables support VARIANT and FLATTEN directly.

29
MCQeasy

A data architect is designing a pipeline that uses Snowpipe to load data from an external stage. The architect wants to ensure that data is loaded as soon as files are available and that the load is triggered automatically. Which mechanism should be used to notify Snowpipe of new files?

A.Configure the pipe with AUTO_INGEST = TRUE and manually call ALTER PIPE ... REFRESH.
B.Create a task that calls the Snowpipe REST API to ingest files on a schedule.
C.Configure a cloud storage event notification that triggers Snowpipe via a notification integration.
D.Use a Snowflake stream on the external stage to detect new files.
AnswerC

Snowpipe supports event notifications from cloud storage services (e.g., AWS S3, Azure Blob Storage, Google Cloud Storage) through a notification integration. When a new file is created, the storage service sends an event to Snowflake, which triggers the pipe to load the file automatically. This provides near-real-time ingestion without manual intervention.

Why this answer

The correct mechanism is to configure a cloud storage event notification that triggers Snowpipe via a notification integration. This enables Snowpipe to automatically load new files as soon as they are written to the stage, providing near-real-time data ingestion. It eliminates the need for polling or manual refreshes.

Exam trap

The trap here is thinking that setting AUTO_INGEST = TRUE alone is sufficient, but it also requires the cloud storage event notification to be configured to actually trigger the pipe.

30
MCQhard

A data architect is designing a pipeline that ingests streaming data into a Snowflake table. The data must be transformed with a Python UDF that calls an external API for enrichment. The architect wants to minimize latency and ensure the UDF can scale independently. Which Snowflake feature should be used?

A.Create a JavaScript UDF and call the external API using the built-in fetch function.
B.Use a stored procedure with Python and call the API using the requests library.
C.Create a Python UDF and use the Snowpark library to make HTTP requests.
D.Create an external function that calls the API via an API integration and use it in the transformation.
AnswerD

External functions in Snowflake allow you to call code outside Snowflake, such as a cloud function or API gateway, through an API integration. This enables secure outbound network access and independent scaling of the external service. Using an external function for API enrichment is the recommended approach for calling external APIs from SQL.

Why this answer

External functions are specifically designed to call external services via API integrations, providing secure and scalable access to external APIs. They allow the external service to scale independently from Snowflake warehouses, and they are invoked from SQL like regular functions. This makes them ideal for enriching streaming data with external API calls while minimizing latency and ensuring scalability.

Exam trap

The trap here is assuming that Python UDFs or stored procedures can make outbound HTTP requests, but Snowflake's sandbox prevents direct network access from these constructs.

31
Multi-Selectmedium

An architect needs to implement a Change Data Capture (CDC) process for data stored in an external S3 bucket without moving all data into Snowflake first. Which TWO features must be combined to track new and modified files efficiently? (Select TWO)

Select 2 answers
A.Directory Tables with AUTO_REFRESH = TRUE
B.Streams created on the Directory Table
C.Snowpipe with a custom REST API integration
D.Materialized Views on the External Table
E.External Functions to trigger AWS Lambda
AnswersA, B

Directory tables store metadata about files in a stage, and enabling AUTO_REFRESH ensures that the metadata is updated via cloud event notifications. This provides a queryable interface to see what files exist, which is a prerequisite for tracking changes in the external storage environment.

Why this answer

Capturing changes from external tables requires a combination of directory tables and streams. Directory tables provide a catalog of files in the stage, while streams track the metadata changes. This architecture allows Snowflake to react to new files landing in cloud storage without needing to constantly poll the entire bucket.

Exam trap

Candidates often suggest using standard Streams on external storage, forgetting that Streams cannot be created directly on external buckets; they require an intermediate Directory Table to track file metadata.

32
MCQmedium

A data engineer needs to copy data from an internal stage into a Snowflake table. The stage contains files with a mix of valid and malformed records. The engineer wants to load all valid records and capture the malformed ones for later analysis without failing the entire load. Which COPY INTO option should be used?

A.VALIDATION_MODE = 'RETURN_ERRORS'
B.ON_ERROR = 'CONTINUE'
C.ON_ERROR = 'ABORT_STATEMENT'
D.ON_ERROR = 'SKIP_FILE'
AnswerB

ON_ERROR = 'CONTINUE' instructs COPY INTO to skip any rows that cause errors and continue loading the remaining rows. It allows the load to succeed even if some records are malformed, and the skipped rows can be retrieved from the load metadata for analysis. This exactly matches the requirement to load valid records and capture malformed ones.

Why this answer

ON_ERROR = 'CONTINUE' is the correct option because it allows the COPY INTO operation to skip erroneous rows and load all valid ones. The rejected rows are recorded in the load metadata, which can be queried using the VALIDATE function or by checking the COPY_HISTORY. This provides a way to capture malformed records for later analysis while ensuring valid data is loaded.

Exam trap

The trap here is confusing ON_ERROR = 'CONTINUE' with VALIDATION_MODE, which only validates without loading, or with SKIP_FILE, which skips entire files rather than individual rows.

33
MCQhard

A company is moving towards an Open Data Lakehouse architecture using Snowflake Iceberg Tables. They want to ensure that the data is stored in Parquet format in their own S3 bucket but still benefit from Snowflake's performance. Which configuration should the architect recommend for the Iceberg Table's catalog?

A.Set the CATALOG to 'AWS_GLUE' to ensure that other AWS services can manage the metadata.
B.Set the CATALOG to 'SNOWFLAKE' and specify an EXTERNAL_VOLUME.
C.Use the 'EXTERNAL' catalog type and point to a Snowflake Managed Iceberg Catalog.
D.Create a standard Snowflake table and use a periodic Task to export the data to S3 in Iceberg format.
AnswerB

When the catalog is set to Snowflake, the platform handles all metadata management, allowing for performance optimizations similar to native tables. The External Volume defines the connection to the customer's S3 bucket, ensuring the data remains in their account in the open Parquet-based Iceberg format.

Why this answer

Snowflake supports two catalog options for Iceberg tables: Snowflake and External. Using Snowflake as the catalog allows Snowflake to manage the metadata and perform full DML operations, which provides the best performance and integration while still keeping the data in an open format in the customer's cloud storage.

Exam trap

Candidates frequently select an external catalog when the requirement explicitly asks for Snowflake-managed performance and full DML support on an open format table.

34
MCQmedium

A data architect is designing a pipeline that requires data freshness within 5 minutes across a series of five interdependent tables. The architect wants to minimize the operational overhead of managing task schedules and manual dependency logic. Which Snowflake feature should be prioritized to meet these requirements?

A.Standard Streams and Tasks with explicit AFTER dependencies.
B.Dynamic Tables using the TARGET_LAG parameter set to 5 minutes.
C.Materialized Views on each of the five tables with automatic clustering.
D.Snowpipe with a custom Lambda function to trigger downstream updates.
AnswerB

Snowflake manages the refresh frequency automatically based on the TARGET_LAG parameter, which eliminates the need for manual scheduling via Cron or frequency expressions. This allows architects to focus on the data logic rather than the underlying compute orchestration, leading to more resilient and maintainable data architectures in Snowflake.

Why this answer

Dynamic tables simplify data engineering by automating the refresh process based on a defined target lag rather than manual task orchestration. Snowflake's scheduler determines the optimal execution order to meet the freshness requirements across the entire graph. This shift from imperative to declarative pipelines reduces the risk of scheduling gaps and simplifies the management of complex dependencies.

Exam trap

Candidates frequently suggest manual task graphs with complex CRON schedules, overlooking that Dynamic Tables natively handle multi-layered dependency ordering and meet strict freshness targets through the TARGET_LAG parameter.

35
MCQeasy

A data engineer needs to load data from a local file system into a Snowflake table. The file is 10 GB in size and contains CSV data. The engineer wants to use the most efficient method for a one-time bulk load. Which Snowflake feature should the engineer use?

A.Snowpipe
B.Snowflake Connector for Kafka
C.COPY INTO command
D.External tables
AnswerC

The COPY INTO command is the standard and most efficient way to load data from a stage into a Snowflake table. For a local file, the engineer would first upload the file to an internal stage using PUT, then execute COPY INTO. This method is straightforward for one-time bulk loads and leverages Snowflake's parallel loading capabilities, making it ideal for a 10 GB CSV file.

Why this answer

For a one-time bulk load from a local file, the engineer should first upload the file to an internal stage with PUT, then use COPY INTO to load it into the table. COPY INTO is optimized for bulk loading and is the most efficient method. Other options are designed for continuous ingestion or external access, not bulk loading.

Exam trap

The trap here is confusing continuous ingestion tools like Snowpipe with bulk loading, when the COPY command is the correct choice for one-time loads.

36
MCQmedium

A healthcare analytics team stores patient encounter records in a Snowflake table that is updated continuously by an external ETL tool using MERGE statements. The team needs to build a downstream transformation that incrementally processes only the rows that were inserted or changed since the last run. They want to avoid reprocessing the entire table and do not want to add triggers or modify the ETL tool. Which Snowflake feature should the architect use to capture these changes?

A.Use a materialized view that refreshes automatically to expose only changed rows.
B.Create a Stream on the encounter table with an append-only stream type.
C.Create a standard Stream on the encounter table to capture inserts, updates, and deletes.
D.Enable change tracking on the encounter table and query the CHANGES clause directly.
AnswerC

A standard stream captures all three change types—inserts, updates, and deletes—by leveraging the table's change tracking metadata. This aligns perfectly with the MERGE-based ETL that modifies existing rows. The stream provides a reliable, offset-based change record without requiring any changes to the ETL tool or adding triggers, enabling incremental downstream processing as requested.

Why this answer

A standard stream on the encounter table captures inserts, updates, and deletes by reading the table's change tracking metadata. This is exactly what the team needs because the ETL tool uses MERGE, which produces updates as well as inserts. Append-only streams would miss updates, the CHANGES clause lacks persistent offset tracking, and materialized views do not expose change data.

Exam trap

The trap here is assuming that any stream will capture all changes, when append-only streams deliberately ignore updates and deletes.

37
MCQeasy

A data engineering team needs to load data from an on-premises Oracle database into Snowflake on a recurring basis. The data volume is large (several terabytes), and the team wants to minimize the load on the source system. They also require the ability to perform incremental loads based on a timestamp column. Which Snowflake feature should the architect recommend?

A.Snowpipe with auto-ingest from cloud storage.
B.Use the COPY INTO command with a stage that points to the Oracle database.
C.Create an external table that references the Oracle database.
D.Snowflake Connector for Oracle (or a similar partner ETL tool) to perform incremental extraction and loading.
AnswerD

The Snowflake Connector for Oracle is a native connector that enables incremental data extraction from Oracle based on a timestamp or other columns. It minimizes impact on the source by using efficient queries and can load directly into Snowflake. This is the recommended approach for large-scale, recurring incremental loads from on-premises Oracle.

Why this answer

The Snowflake Connector for Oracle is specifically designed to enable incremental data ingestion from Oracle databases. It supports timestamp-based incremental loads and is optimized to reduce load on the source system. This makes it the ideal choice for large-scale, recurring data loads from on-premises Oracle into Snowflake, without the need for intermediate staging or manual extraction.

Exam trap

The trap here is assuming that Snowflake can directly stage or query an on-premises Oracle database, which it cannot without a connector or ETL tool.

38
MCQeasy

A data engineer must load a daily batch of CSV files from an internal stage into a staging table. The files use a pipe delimiter, include a header row, and contain date values in a non-default format. The team wants to validate that the load succeeded and capture any rejected rows for review. Which configuration should the architect specify?

A.Use COPY INTO with MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE and rely on the target table column order to map the fields.
B.Create an external table over the stage and query the CSV files directly, converting the date with TO_DATE in the SELECT statement.
C.Define a file format with TYPE = CSV, FIELD_DELIMITER = '|', SKIP_HEADER = 1, and a DATE_FORMAT matching the source, then use COPY INTO with ON_ERROR = 'CONTINUE' and a validation_mode run first.
D.Load the files with COPY INTO using ON_ERROR = 'ABORT_STATEMENT' and inspect the query history afterward to identify which rows failed.
AnswerC

This configuration addresses every stated requirement: the pipe delimiter and header skip match the files, the date format matches the source data, and ON_ERROR = CONTINUE preserves load progress while capturing rejected rows. Running VALIDATION_MODE first reports errors without loading, so the team can inspect problems before committing data. This is the standard controlled CSV ingestion pattern.

Why this answer

A file format that matches the delimiter, skips the header, and specifies the source date format is the foundation. COPY INTO with ON_ERROR = CONTINUE keeps valid rows loading while rejected rows are recorded, and a VALIDATION_MODE run surfaces errors before any data is committed. The other approaches either ignore the delimited structure, avoid loading into the target, or abort on the first bad row.

Exam trap

The trap here is reaching for column-name matching or external tables when the files are delimited CSV, where field position and an explicit file format govern the load.

39
MCQhard

An architect is building a Dynamic Table that reads from a base table receiving continuous inserts. The refresh is configured with TARGET_LAG = '1 minute' and the warehouse is a dedicated XSMALL. Monitoring shows refreshes frequently take longer than one minute and sometimes overlap with the next scheduled run. The team wants to reduce refresh latency without changing the query logic. Which change is most appropriate?

A.Set INITIALIZE to ON_CREATE and recreate the Dynamic Table so that the initial population happens at creation time.
B.Set REFRESH_MODE to FULL on the Dynamic Table so that each run recomputes the entire result set instead of applying incremental changes.
C.Increase the warehouse size used by the Dynamic Table so that each refresh completes within the target lag window.
D.Convert the Dynamic Table to a regular view and schedule a task to run every minute to materialize the results into a physical table.
AnswerC

When refresh duration exceeds TARGET_LAG, the bottleneck is compute rather than query design. Snowflake refreshes Dynamic Tables on the warehouse associated with them, so scaling that warehouse up shortens each incremental refresh and allows runs to finish inside the one-minute window. This preserves the declarative refresh model and requires no query rewrite, directly resolving the overlap caused by slow runs.

Why this answer

Dynamic Table refreshes execute on the warehouse tied to the object, so when a run cannot finish within TARGET_LAG the practical remedy is more compute. Scaling the warehouse up shortens each incremental refresh and keeps runs from overlapping. Changing refresh mode to full, altering initialization behavior, or replacing the object with a task-driven view does not reduce per-run duration and in some cases increases cost or complexity.

Exam trap

The trap here is treating the target lag value as a performance guarantee, when it is only a freshness objective that depends on available compute actually finishing each refresh in time.

40
MCQmedium

A retail company ingests JSON clickstream events into a Snowflake table using Snowpipe streaming. The events contain a nested field 'user' with subfields 'id' and 'name'. The architect needs to query only the 'id' subfield without scanning the entire JSON. Which approach is most efficient?

A.Load the JSON into a table with a separate column for user_id, extracted during ingestion.
B.Use a VARIANT column and query with a dot notation, e.g., SELECT user:id FROM events.
C.Use a VARIANT column and create a materialized view that selects user:id.
D.Use a VARIANT column and query with a lateral flatten, e.g., SELECT value:id FROM events, LATERAL FLATTEN(input => user).
AnswerA

Extracting the needed subfield into a dedicated column during ingestion allows Snowflake to store and query it as a native data type (e.g., VARCHAR or NUMBER). This avoids parsing the entire JSON at query time, reduces I/O, and enables better compression and pruning. It is the most efficient for frequent, selective access to a specific subfield.

Why this answer

Extracting the required subfield into a dedicated column during ingestion is the most efficient method because it eliminates the need to parse the entire JSON document at query time. This approach leverages Snowflake's columnar storage and allows for better compression and pruning, resulting in faster queries and lower compute costs. It is ideal when a specific subfield is frequently queried.

Exam trap

The trap here is assuming that VARIANT with dot notation is always the best for JSON, but for frequent selective subfield access, a dedicated column can be far more efficient.

41
MCQeasy

An architect is designing a staging area for a daily ETL process where data is loaded, transformed, and then moved to a permanent production table. The staging data is only needed for 24 hours and does not require long-term Fail-safe protection. Which table type is most cost-effective?

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

Transient tables provide a middle ground by persisting until explicitly dropped but without the Fail-safe requirement. They support Time Travel for up to one day, which is sufficient for most ETL staging needs, and they eliminate the long-term storage costs associated with the Fail-safe period.

Why this answer

Transient tables are ideal for staging environments because they persist across sessions but do not incur the costs associated with Fail-safe storage. This makes them significantly cheaper for high-churn data that can be easily recreated if a system failure occurs, while still allowing for multi-day processing if needed.

Exam trap

Candidates often choose Temporary tables, forgetting that Transient tables provide the same cost benefits regarding Fail-safe while allowing data to persist longer than a single session.

42
MCQhard

A financial services firm uses Snowflake to store transactional data. The data engineering team needs to implement a process that automatically copies new files from an external stage into a raw table and then triggers a series of dependent transformations. The team wants to minimize manual intervention and ensure that transformations run only when new data is available. They also want to avoid running transformations on empty batches. Which combination of Snowflake features should the architect use?

A.Snowpipe with a stream on the raw table and a task that runs on a fixed schedule without a WHEN clause.
B.A task that calls a stored procedure to copy files from the external stage and then run transformations sequentially.
C.Snowpipe with a task that runs on a fixed schedule and checks the row count of the raw table.
D.Snowpipe with a stream on the raw table and a task with a WHEN clause checking SYSTEM$STREAM_HAS_DATA.
AnswerD

Snowpipe automatically loads new files from the external stage into the raw table. A stream on the raw table captures the newly loaded rows. A task scheduled to run periodically can use a WHEN clause with SYSTEM$STREAM_HAS_DATA to check if the stream has data before executing. This ensures transformations run only when new data exists, avoiding empty batches and manual intervention.

Why this answer

The combination of Snowpipe, a stream on the raw table, and a task with a WHEN clause using SYSTEM$STREAM_HAS_DATA ensures automatic ingestion and conditional transformation execution. Snowpipe loads new files, the stream tracks changes, and the task runs only when data is present, minimizing manual intervention and avoiding empty batches.

Exam trap

The trap here is overlooking the need for a WHEN clause to prevent tasks from running on empty streams, which can waste resources.

43
MCQmedium

An architect is building a near-real-time pipeline that reads JSON events from a Kafka topic and must land them into Snowflake with sub-minute latency. The team has a Snowpipe streaming setup using the Snowflake Ingest SDK and writes to a table with a VARIANT column. They observe that the ingestion service occasionally reports channel errors and some events are missing after a client restart. Which configuration change best addresses the missing events?

A.Reduce the client's flush interval so that events are committed more frequently, eliminating the need to track positions across restarts.
B.Increase the number of channels per table and distribute events round-robin so that a single channel failure cannot drop data.
C.Enable offset token tracking and pass the last committed offset token when reopening the channel so the SDK resumes from the correct position.
D.Switch the pipeline to a standard Snowpipe with AUTO_INGEST so that the cloud provider's event notifications guarantee delivery of every record.
AnswerC

Snowpipe streaming channels support offset tokens that let a client record its position in the source stream. When a channel is reopened after a restart, supplying the last successfully committed offset token causes the SDK to resume from that point rather than starting fresh, which prevents gaps. This is the intended mechanism for exactly-once-style recovery in the Ingest SDK.

Why this answer

Snowpipe streaming channels expose offset tokens that represent the client's progress in the source stream. Persisting the last committed token and supplying it when a channel is reopened lets the SDK resume from the correct position, closing the gap that would otherwise appear after a client restart. Throughput tuning and alternative ingestion methods do not solve the resume-position problem.

Exam trap

The trap here is assuming that adding channels or shortening the flush interval guarantees delivery, when recovery after a restart actually depends on persisting and replaying the channel's offset token.

44
MCQeasy

A data engineering team needs to transform raw JSON events into a curated table that refreshes automatically as new data arrives, without writing or scheduling any orchestration code. The target must reflect changes within a defined lag and be queryable like a regular table. Which Snowflake feature should the architect recommend?

A.A task with a schedule that runs a CREATE OR REPLACE TABLE AS SELECT statement every minute to rebuild the curated table from scratch.
B.A view with a scheduled refresh policy and a query acceleration service enabled to keep the result current.
C.A stream on the raw table plus a materialized view over the stream to expose the transformed rows as they arrive.
D.A Dynamic Table defined with a target lag, which Snowflake refreshes automatically based on the query definition and the specified lag.
AnswerD

Dynamic Tables are declarative: the architect defines the transformation as a query and a target lag, and Snowflake schedules and executes refreshes automatically as base data changes. No external orchestration is required, and the result is queryable like a normal table. This matches the requirement for automatic, lag-bounded refresh of a curated table.

Why this answer

Dynamic Tables let the architect declare the transformation and a target lag, and Snowflake handles scheduling, dependency tracking, and incremental refresh automatically. The result is a queryable table that stays current without external orchestration. Tasks require manual logic, streams and views do not persist a curated result, and standard views have no refresh mechanism.

Exam trap

The trap here is assuming that a stream plus a materialized view provides automatic refresh, when neither can persist a transformed curated table without additional orchestration.

45
MCQeasy

A data engineer is setting up Snowpipe to ingest data from an S3 bucket. The engineer wants to ensure that Snowpipe is notified immediately when a new file arrives without polling the stage. What is the standard Snowflake recommendation for this configuration?

A.Configure a Snowflake Task to run every minute and execute the ALTER PIPE...REFRESH command.
B.Set up an S3 Event Notification to send messages to a Snowflake-managed SQS queue.
C.Use a Python script on an EC2 instance to call the Snowpipe REST API every time a file is uploaded.
D.Increase the 'RECURSIVE' parameter in the Stage definition to allow Snowpipe to see nested folders.
AnswerB

This is the standard 'auto-ingest' configuration for Snowflake on AWS. By linking the S3 bucket's event notifications to the SQS queue associated with the Snowpipe object, Snowflake is instantly alerted to new files, allowing for near real-time ingestion with minimal management overhead and cost.

Why this answer

Snowpipe auto-ingest is designed for low-latency ingestion by integrating with cloud provider notification services. This event-driven architecture is superior to manual polling as it reduces latency and compute costs associated with checking for new files. Configuring this correctly involves setting up an SQS queue or Event Grid to trigger the pipe object.

Exam trap

Candidates often choose manual polling or scheduled tasks, failing to realize that Snowpipe’s auto-ingest feature specifically requires an event-driven SQS queue configuration for immediate file processing.

46
MCQmedium

A company is implementing a Data Lakehouse architecture and wants to store their data in the Apache Iceberg format on S3 while still using Snowflake for high-performance analytics. What is the most important architectural consideration when using Snowflake-managed Iceberg tables?

A.Snowflake-managed Iceberg tables cannot be queried by external engines like Spark.
B.Snowflake will handle all data maintenance and metadata updates for the table.
C.The data must be stored in Snowflake's internal proprietary format to use Iceberg.
D.Iceberg tables do not support Time Travel or Fail-safe features.
AnswerB

In a Snowflake-managed configuration, the architect delegates the responsibility for generating metadata and managing file layouts to Snowflake. This ensures that the table benefits from Snowflake's performance optimizations and features like automatic clustering, while still adhering to the Iceberg open standard.

Why this answer

Iceberg tables in Snowflake can be either Snowflake-managed or Externally-managed. When Snowflake-managed, Snowflake handles the metadata and file orchestration, providing performance similar to native tables while storing data in an open format. This allows other tools to read the Parquet files while Snowflake remains the primary engine.

Exam trap

Candidates often believe that Iceberg tables in Snowflake require manual metadata file management, failing to realize that Snowflake-managed Iceberg tables handle all orchestration and maintenance automatically for the user.

Ready to test yourself?

Try a timed practice session using only Data Engineering questions.