Courseiva

CCNA Data Movement Questions

48 questions · Data Movement · All types, answers revealed

1
MCQmedium

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

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

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

Why this answer

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

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

Exam trap

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

2
MCQhard

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

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

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

Why this answer

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

Exam trap

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

3
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

4
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

5
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

6
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

7
Multi-Selecthard

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

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

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

Why this answer

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

Exam trap

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

8
Multi-Selecthard

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

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

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

Why this answer

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

Exam trap

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

9
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

10
MCQhard

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

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

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

Why this answer

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

Exam trap

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

11
MCQeasy

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

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

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

Why this answer

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

Exam trap

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

12
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

13
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

14
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

15
MCQeasy

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

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

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

Why this answer

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

Exam trap

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

16
Multi-Selectmedium

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

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

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

Why this answer

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

Exam trap

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

17
MCQmedium

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

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

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

Why this answer

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

Exam trap

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

18
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.

19
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.

20
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.

21
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.

22
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.

23
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.

24
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.

25
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.

26
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.

27
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.

28
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.

29
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.

30
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.

31
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.

32
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.

33
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.

34
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.

35
MCQmedium

A data engineer loads CSV files into a Snowflake table using COPY INTO from an internal stage. Some rows fail validation because a numeric column contains non-numeric text. The engineer wants the load to continue and capture the rejected rows for later analysis. Which approach should be used?

A.Set ON_ERROR = 'CONTINUE' and configure VALIDATION_MODE = 'RETURN_ERRORS'
B.Set ON_ERROR = 'ABORT_STATEMENT' and review the query history for the failed statement
C.Set ON_ERROR = 'SKIP_FILE' and rely on the load history to identify which files were skipped
D.Set ON_ERROR = 'CONTINUE' and use the COPY statement's error output to query rejected rows
AnswerD

ON_ERROR = 'CONTINUE' allows the load to proceed past rows that fail validation, skipping them while loading valid rows. Snowflake records the rejected rows and their error details, which can be retrieved from the COPY command's result or from the load history. This matches the requirement to continue loading and capture rejects for analysis.

Why this answer

ON_ERROR = 'CONTINUE' is designed for tolerant loading: rows that fail conversion or validation are skipped, valid rows are inserted, and Snowflake retains error details that can be queried from the COPY result or load history. This allows the pipeline to proceed while preserving rejected rows for later inspection and remediation.

Exam trap

The trap here is treating VALIDATION_MODE as a runtime error handler, when it actually performs a validation-only pass that does not load data.

36
MCQeasy

What is the primary purpose of the 'VALIDATION_MODE' parameter in the COPY INTO <table_name> statement?

A.To automatically correct data type mismatches during the load process.
B.To check the files for errors and return the results without loading the data into the table.
C.To verify that the person executing the command has the correct IAM permissions on the S3 bucket.
D.To compare the data in the stage with the data already in the table to find duplicates.
AnswerB

This mode is used for 'dry runs'. It scans the staged files and reports any issues (like delimiter problems or type mismatches) that would cause the load to fail. This helps prevent corrupted or partial loads and is a best practice when setting up new data movement tasks.

Why this answer

The VALIDATION_MODE parameter allows data engineers to test their COPY commands without actually committing any data to the table. It parses the files and identifies errors, which is a critical step in data movement pipelines to ensure that file formats and mappings are correct before performing a potentially expensive or large-scale ingestion.

Exam trap

Candidates often confuse VALIDATION_MODE with a dry-run insert that actually tests constraints, when it exclusively parses files and returns errors without loading data.

37
MCQeasy

A data engineer must unload query results from a Snowflake table into a named internal stage so another team can download the files. The engineer wants the unloaded data to be encodable in a columnar format. Which command should be used?

A.PUT file://local_data.csv @my_stage/path/ AUTO_COMPRESS = TRUE;
B.COPY INTO @my_stage/path/ FROM my_table FILE_FORMAT = (TYPE = PARQUET);
C.CREATE STAGE my_stage FILE_FORMAT = (TYPE = PARQUET);
D.GET @my_stage/path/ file://local_path;
AnswerB

COPY INTO with a stage target unloads table or query results to that stage, and specifying TYPE = PARQUET writes columnar files. Using the @my_stage/path/ syntax directs output to the named internal stage, which the other team can then access according to their granted privileges.

Why this answer

COPY INTO targeting a stage is the unload mechanism, and pairing it with TYPE = PARQUET produces columnar files in the named internal stage. GET and PUT move files between local storage and stages, and CREATE STAGE only defines the object, so none of those perform the required table-to-stage unload.

Exam trap

The trap here is confusing stage management commands with data movement; only COPY INTO with a stage target actually unloads table data.

38
MCQhard

A data engineer is using COPY INTO to load data from an external stage into a table. The source files contain a column with values like '00123' that must be stored as a VARCHAR to preserve leading zeros. The target column is defined as VARCHAR(10). During the load, the engineer notices that the leading zeros are being stripped and the values are stored as '123'. What is the most likely cause?

A.A transformation in the COPY INTO statement is casting the field to a numeric type before loading, removing the leading zeros.
B.The file format has the PARSE_JSON or similar option that interprets numeric-looking strings as numbers.
C.The file format has the STRIP_OUTER_ARRAY option enabled, which removes leading zeros from string values.
D.The target column is implicitly cast to a numeric type because the COPY INTO statement does not specify a transformation.
AnswerA

If the COPY INTO statement includes a transformation such as $1:column::NUMBER or TO_NUMBER($1), the string is converted to a number, which drops leading zeros. The resulting numeric value is then implicitly cast back to VARCHAR for the target column, but the zeros are already lost. Removing or changing the transformation preserves the original string.

Why this answer

The most likely cause is a transformation in the COPY INTO statement that casts the field to a numeric type. Numeric conversion drops leading zeros, and the subsequent cast to VARCHAR cannot restore them. Ensuring the field is treated as a string throughout the load, or removing the numeric cast, will preserve the original formatting.

Exam trap

The trap here is assuming that the target column's VARCHAR definition protects the data, when an inline transformation can convert it to a number before it ever reaches the column.

39
Multi-Selecthard

When unloading data from Snowflake to an external stage, which TWO of the following are supported file formats?

Select 2 answers
A.CSV
B.XLSX
C.Parquet
D.SQL
E.PDF
AnswersA, C

CSV is a natively supported format for unloading data from Snowflake. It is widely compatible with most analytical and spreadsheet applications, making it a standard choice for exporting data to external systems that require simple, tabular data structures for their own processing or analysis requirements.

Why this answer

Unloading data is just as important as loading. Snowflake supports CSV, JSON, and Parquet for unloading, providing flexibility for downstream systems. Understanding which formats are natively supported allows engineers to choose the right format for compatibility with external tools (like BI platforms or data lakes) without needing additional transformation steps, making the data movement process more efficient and standardized.

Exam trap

Candidates often select options like 'XML' or 'XLSX' which are not natively supported formats for standard unloading, failing to recognize that Snowflake focuses on CSV, JSON, and Parquet.

40
MCQeasy

An analytics team wants to let external partners query a curated set of rows from a Snowflake table through a secure share. The partners use their own Snowflake accounts and must not be able to see any rows outside the curated set. Which approach should the data engineer use?

A.Create a secure view that filters the base table, grant the share access to the view, and add the view to the share.
B.Grant the share SELECT on the base table and rely on a row access policy to filter rows for the partners.
C.Create a materialized view of the curated rows and add it to the share for the partners to query.
D.Add the base table to the share and instruct partners to query only the approved rows using their own filters.
AnswerA

A secure view hides its definition and the underlying base table from consumers, and sharing the view rather than the table restricts partners to exactly the rows the view exposes. This is the standard pattern for row-level curation in a share and prevents consumers from querying the base table directly.

Why this answer

Secure views are the supported way to expose a constrained subset of data in a share. Because the view definition is hidden and the base table is not shared, consumers can query only the curated rows. This satisfies both the access requirement and the restriction that partners must not see the full table.

Exam trap

The trap here is assuming that a row access policy attached to a shared base table enforces row filtering for external consumers, when sharing a secure view is the reliable control.

41
Multi-Selecthard

A Data Engineer is using the COPY INTO <table_name> command to load Parquet files. The source files contain new columns that do not yet exist in the target Snowflake table. Which TWO features or settings should be used to handle this automatically? (Select TWO)

Select 2 answers
A.Set the table property ENABLE_SCHEMA_EVOLUTION = TRUE.
B.Use the MATCH_BY_COLUMN_NAME = CASE_SENSITIVE option in the COPY command.
C.Use the STRIP_OUTER_ARRAY = TRUE file format option to flatten the Parquet data.
D.Set ON_ERROR = 'CONTINUE' to ensure the command doesn't fail when it sees new columns.
E.Apply a UDF in the COPY statement to dynamically cast the Parquet schema to the table.
AnswersA, B

This table-level property is essential for allowing DML operations like COPY to automatically perform DDL changes. Without this setting, even if the COPY command identifies new columns, it will fail or ignore them because it lacks the authorization to alter the underlying table schema during the data loading process.

Why this answer

Snowflake provides schema evolution capabilities to simplify the ingestion of evolving datasets. By enabling the ENABLE_SCHEMA_EVOLUTION property on the table, Snowflake allows the COPY command to modify the table structure. When combined with MATCH_BY_COLUMN_NAME, Snowflake maps the Parquet fields to table columns and automatically adds any missing columns found in the source files to the target table.

Exam trap

Candidates often select only the schema evolution setting and forget that the COPY INTO command must also be explicitly told how to map columns using the match-by-name parameter.

42
MCQmedium

A company requires continuous ingestion of JSON logs from an S3 bucket into a Snowflake table with minimal latency. They decide to use Snowpipe with auto-ingest. How does Snowflake determine which new files need to be processed once the pipe is created?

A.Snowflake performs a metadata scan of the S3 bucket every 60 seconds to identify files with new timestamps.
B.The Snowpipe object uses the LIST command internally to compare the stage contents against the load history table.
C.It relies on event notifications from S3 sent to a Snowflake-managed SQS queue to trigger the pipe.
D.The data engineer must execute the ALTER PIPE... REFRESH command every time new data is uploaded to the stage.
AnswerC

This is the core architecture of Snowpipe auto-ingest. By integrating with S3 Event Notifications, Snowflake receives an asynchronous signal the moment a file is written. This allows the serverless compute resources to spin up only when there is work to do, providing a highly scalable and cost-effective ingestion path.

Why this answer

Snowpipe with auto-ingest relies on cloud-native messaging services to notify Snowflake of new data. When a file is uploaded to S3, an S3 Event Notification is triggered, which sends a message to a Snowflake-managed SQS queue. Snowpipe constantly monitors this queue and triggers the ingestion process as soon as it receives a notification, ensuring near real-time data movement without manual intervention.

Exam trap

Candidates often assume Snowflake 'polls' the S3 bucket directly. They fail to understand the event-driven nature of the SQS queue, which is the actual trigger for the pipe.

43
MCQhard

A data engineer is configuring a Snowpipe to automatically load Parquet files from an external stage. The files are partitioned by date in the path (e.g., dt=2023-10-01/). The engineer wants to ensure that Snowpipe loads only new files and avoids reprocessing old ones, even if files are added to existing partition paths. The pipe definition includes a PATTERN option. Which approach best ensures that only new files are ingested and that previously loaded files are not reprocessed?

A.Use the PATTERN option to match only files with a specific prefix or regex that includes the current date, and update the pipe definition daily.
B.Rely on Snowpipe's default behavior, which automatically tracks file modification times and skips files older than the pipe creation time.
C.Configure the pipe with a MODIFIED_AFTER parameter set to a timestamp that is updated after each load.
D.Ensure the pipe uses the load history to track processed files; Snowpipe automatically skips files that have already been loaded, even if they appear again.
AnswerD

Snowpipe maintains a load history for each pipe, recording which files have been processed. When new files are detected, it checks the history and skips any file that has already been loaded. This prevents reprocessing of old files, even if they are in existing partitions. This is the default and correct behavior, requiring no additional configuration.

Why this answer

Snowpipe's built-in load history tracks which files have been loaded for each pipe. When new files are staged, Snowpipe compares against this history and only loads files not previously processed. This ensures that previously loaded files are not reprocessed, even if they are in existing partitions.

The other options either rely on non-existent features or require manual intervention that does not guarantee the requirement.

Exam trap

The trap here is assuming that Snowpipe uses file modification times to filter files, when it actually relies on a load history to avoid duplicates.

44
MCQmedium

A data engineer needs to ingest files from an S3 bucket into Snowflake as soon as they are uploaded. The files arrive every few minutes and are generally smaller than 50MB. Which approach provides the most cost-effective and low-latency solution for this requirement?

A.Using a Task to run a COPY INTO statement every 5 minutes on a Small warehouse.
B.Executing a COPY INTO command via a Python script triggered by a cron job.
C.Configuring Snowpipe with auto-ingest enabled using SQS notifications.
D.Creating an External Table and using the REFRESH command every minute.
AnswerC

Snowpipe auto-ingest uses cloud messaging services like SQS to detect new files immediately upon arrival. This serverless feature charges based on the actual compute used for ingestion, making it ideal for frequent, small file arrivals where low latency is critical and managing a dedicated virtual warehouse would be expensive and inefficient.

Why this answer

Snowflake supports several methods for loading data, and choosing the right one depends on file size, frequency, and latency requirements. Snowpipe is specifically designed for continuous, automated loading of small files. This approach reduces manual overhead and ensures that data is available for analysis shortly after it is generated at the source, which is a core requirement for modern data engineering pipelines.

Exam trap

Candidates often suggest bulk loading (COPY INTO) for small, frequent files, failing to realize that this is inefficient and costly compared to the continuous nature of Snowpipe.

45
MCQeasy

A data engineer is configuring continuous ingestion of new event files from an external Amazon S3 stage into a Snowflake table. The files arrive frequently and the engineer wants Snowflake to load them automatically without building an external orchestrator. The stage already has a storage integration attached. Which Snowflake object should the engineer create to accomplish this?

A.A stream on the external stage that captures new file names
B.A pipe with AUTO_INGEST = TRUE
C.A materialized view defined over the external stage
D.A task scheduled with a CRON expression that runs COPY INTO every minute
AnswerB

A pipe with AUTO_INGEST = TRUE relies on the cloud provider's event notifications to trigger COPY INTO when new files land on the stage, so ingestion happens automatically with no external scheduler required. The storage integration supplies the credentials and the event notification ARN is tied to the pipe, which matches the requirement of loading frequent event files with minimal orchestration overhead on the Snowflake side.

Why this answer

Continuous, event-driven loading from an external stage is implemented with a pipe configured for auto-ingest. The pipe wraps the COPY INTO statement, and the cloud provider's event notification tells Snowflake when new files appear, so no polling or external scheduler is needed. Streams, tasks, and materialized views solve different problems and cannot react to S3 object creation events.

Exam trap

The trap here is assuming any scheduled COPY INTO satisfies 'automatic' loading, when event-driven auto-ingest is the specific mechanism for reacting to new files.

46
MCQhard

What is the primary benefit of using a file format object in Snowflake when dealing with multiple stages and load jobs?

A.It automatically compresses data before it is uploaded to the cloud.
B.It centralizes file configuration to ensure consistency across multiple load jobs.
C.It encrypts the data at rest in the stage before loading.
D.It stores the credentials for the external stages for easier access.
AnswerB

Centralizing file format settings allows for consistent data ingestion behavior across all pipelines. If a delimiter or format requirement changes, updating the single object applies the change globally, which prevents bugs and inconsistencies that would occur if each COPY command had its own, potentially divergent, file format parameter definitions.

Why this answer

File format objects provide a centralized, reusable definition of file settings (like delimiter, compression, or error handling). By referencing a single object in multiple COPY commands, an engineer ensures consistency across the entire data pipeline. This eliminates drift and makes it easy to update the configuration for all load jobs at once, reducing maintenance and preventing errors associated with manually defining parameters repeatedly across many different SQL statements.

Exam trap

Candidates often think file formats improve load performance or data compression. While they organize settings, their primary architectural benefit is consistency and reducing configuration drift across multiple jobs.

47
MCQmedium

A data engineer needs to load data from an Azure Blob storage container into Snowflake. The organization requires a secure connection that does not use public endpoints. What should the engineer configure?

A.Configure an Azure Service Bus to relay the data to Snowflake.
B.Create a storage integration using an Azure AD service principal and Private Link.
C.Use a public URL for the stage but enable IP whitelisting.
D.Use an external stage with a SAS token that has a long expiration time.
AnswerB

Storage integrations are the secure way to access cloud storage without hardcoding credentials. When combined with Azure Private Link, they establish a dedicated, private connection that ensures data movement stays within the cloud provider's backbone, satisfying security requirements by removing reliance on public internet traffic for data transfers.

Why this answer

Using Azure Private Link with a Snowflake storage integration is the recommended method for secure, private data movement. This architecture ensures that traffic between Azure and Snowflake stays on the private network, bypassing the public internet and meeting strict compliance requirements for enterprise security. This question highlights the importance of cloud networking fundamentals in the context of data engineering and secure cloud-to-cloud integrations.

Exam trap

Candidates often suggest public endpoints or simple credentials. They miss the requirement for a 'storage integration' combined with 'Private Link' to strictly avoid the public internet as requested.

48
MCQhard

A data engineer runs a COPY INTO statement that loads 120 files from an external S3 stage into a target table. The LOAD_UNCERTAIN_FILES option was not specified, and 42 files were already loaded by an earlier run that completed successfully. The engineer expects all 120 files to be reprocessed because the target table was truncated before this run. What will Snowflake actually do, and why?

A.It will skip the 42 previously loaded files and load only the remaining 78, because load metadata is retained independently of table data.
B.It will load all 120 files and produce duplicate rows because the table was emptied after the first load.
C.It will load all 120 files because TRUNCATE TABLE removes the table's load metadata along with the rows.
D.It will load all 120 files but raise an error for each previously loaded file, marking those rows as rejected.
AnswerA

Snowflake records which staged files have been loaded into each table in metadata that persists across DML such as TRUNCATE. Because LOAD_UNCERTAIN_FILES was omitted, files with a LOADED status for that table are filtered out before reading. Only the 78 files with no prior successful load are processed in this run.

Why this answer

COPY INTO maintains a per-table record of which staged files have already been loaded, and this record survives operations that change or remove table rows. With LOAD_UNCERTAIN_FILES left at its default, only files that have not been successfully loaded into the target are read, so a truncated table does not force reprocessing of files already recorded as loaded.

Exam trap

The trap here is assuming that clearing or truncating the target table also clears the per-table load metadata that COPY INTO uses to filter staged files.

Ready to test yourself?

Try a timed practice session using only Data Movement questions.