Courseiva

CCNA Data Loading Unloading Connectivity Questions

42 questions · Data Loading Unloading Connectivity topic · All types, answers revealed

1
MCQeasy

A data engineer needs to unload data from a Snowflake table to an external stage that references an Amazon S3 bucket. The engineer wants to ensure that the unloaded files are encrypted using a customer-managed key in AWS KMS. Which COPY INTO <location> parameter should be used to specify the KMS key?

A.ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
B.ENCRYPTION = (TYPE = 'AWS_SSE_KMS')
C.ENCRYPTION = (TYPE = 'AWS_SSE_KMS' MASTER_KEY = 'arn:aws:kms:...')
D.ENCRYPTION = (TYPE = 'AWS_SSE_S3')
AnswerC

When unloading to an external S3 stage, the ENCRYPTION parameter with TYPE = 'AWS_SSE_KMS' and MASTER_KEY set to the KMS key ARN enables server-side encryption with a customer-managed KMS key. This is the correct syntax to specify the KMS key for the unloaded files, ensuring they are encrypted as required.

Why this answer

To unload data to an external S3 stage with a customer-managed KMS key, the ENCRYPTION parameter must include TYPE = 'AWS_SSE_KMS' and MASTER_KEY set to the KMS key ARN. This ensures server-side encryption with the specified key. Other options either use S3-managed keys, Snowflake-managed encryption, or omit the necessary key parameter, failing to meet the requirement.

Exam trap

The trap here is confusing S3-managed encryption (AWS_SSE_S3) with customer-managed KMS encryption (AWS_SSE_KMS) and forgetting to include the MASTER_KEY parameter.

2
Multi-Selecthard

A data engineer is using the COPY INTO command to unload data from a Snowflake table to an external stage (Amazon S3). The engineer wants to ensure the unloaded files are encrypted and can be decrypted by the target system. Which TWO statements are true regarding the encryption of unloaded files? (Choose two.)

Select 2 answers
A.Client-side encryption with a master key requires the target system to use the same master key to decrypt the files.
B.Snowflake supports server-side encryption with Amazon S3-managed keys (SSE-S3) for unloaded files when the external stage is configured accordingly.
C.Unloaded files are always encrypted with AES-256 regardless of the encryption settings on the external stage.
D.By default, Snowflake uses client-side encryption with a 128-bit key to encrypt unloaded files.
E.If no encryption is specified for the external stage, unloaded files are not encrypted and are stored in plaintext.
AnswersA, B

With client-side encryption, Snowflake encrypts the files before uploading them to the external stage using a master key you provide. The target system must possess the same master key to decrypt the files. This provides end-to-end encryption but requires secure key management and distribution to the consuming system.

Why this answer

For unloading to an external stage, Snowflake supports both server-side encryption (e.g., SSE-S3, SSE-KMS) and client-side encryption with a master key. Server-side encryption relies on the cloud provider's encryption, while client-side encryption encrypts data before upload, requiring the target system to have the master key. Both methods ensure data is encrypted at rest and can be decrypted by authorized parties.

Exam trap

The trap here is assuming that unloaded files are unencrypted by default or that a single encryption method always applies, when Snowflake enforces encryption and offers multiple configurable options.

3
MCQmedium

A data engineer is configuring a Snowpipe to automatically load data from an external stage (Google Cloud Storage) into a Snowflake table. The engineer wants to minimize latency between file arrival and data availability. Which configuration should the engineer use?

A.Configure the external stage to use a storage integration and set the pipe's file format to automatically detect new files via directory listing.
B.Set up a cloud messaging service (e.g., Google Cloud Pub/Sub) to send event notifications to Snowflake, and create a pipe with AUTO_INGEST = TRUE.
C.Create a pipe with AUTO_INGEST = FALSE and schedule a task to call the pipe every minute using SYSTEM$PIPE_FORCE_REFRESH.
D.Use the Snowpipe REST API to call insertFiles every 30 seconds from an external scheduler to check for new files.
AnswerB

Snowpipe with AUTO_INGEST = TRUE uses cloud messaging to receive event notifications when new files arrive in the external stage. This triggers immediate ingestion, minimizing latency. For Google Cloud Storage, you configure Pub/Sub to send notifications to Snowflake, which then loads the files automatically.

Why this answer

To minimize latency, Snowpipe should be configured with AUTO_INGEST = TRUE, which leverages cloud messaging services to receive event notifications when new files arrive. This event-driven approach triggers immediate ingestion, ensuring data is loaded as soon as it lands in the external stage.

Exam trap

The trap here is assuming that periodic polling or manual triggers can match the low latency of event-driven auto-ingest, when they inherently introduce delays and overhead.

4
MCQmedium

A data engineer has set up a Snowpipe that continuously loads JSON files from an external stage into a table. The stage references an Amazon S3 bucket with a notification integration. After several days, the engineer notices that new files are not being ingested, even though they exist in the S3 bucket. The Snowpipe is in a RUNNING state and the notification integration is active. What is the MOST likely cause of the missing data?

A.The files are compressed with gzip, which Snowpipe cannot automatically decompress.
B.The virtual warehouse used by Snowpipe is suspended, preventing the pipe from executing.
C.The S3 bucket notification is not configured to send events for the specific prefix or suffix of the new files.
D.The Snowpipe's metadata has expired because the pipe was paused for more than 14 days.
AnswerC

Snowpipe relies on event notifications from the cloud storage to trigger loads. If the S3 bucket notification is not configured for the prefix or suffix matching the new files, Snowpipe will not receive events and thus will not load them. This is a common misconfiguration that leads to missing data even when the pipe is running.

Why this answer

Snowpipe ingests files based on event notifications from the external stage's cloud storage. When new files are not loaded, the most likely cause is that the event notification is not configured to capture those files, such as missing prefix or suffix filters. The pipe's running state and notification integration being active do not guarantee that all files trigger events.

Checking the S3 bucket's event configuration is essential.

Exam trap

The trap here is assuming that a running Snowpipe will automatically load all new files without verifying that the cloud storage event notifications are correctly scoped to the file paths.

5
MCQhard

A developer is running a COPY INTO command to load 1,000 CSV files. The requirement is that if even one row in any file fails due to a data type mismatch, the entire load operation must stop and no data should be committed to the table. Which ON_ERROR setting is required?

A.ON_ERROR = CONTINUE
B.ON_ERROR = SKIP_FILE
C.ON_ERROR = ABORT_STATEMENT
D.ON_ERROR = SKIP_FILE_1%
AnswerC

ABORT_STATEMENT is the default behavior for the COPY command. It ensures that if any error is detected in any of the files being loaded, the entire operation is halted immediately. No records from any of the files are committed to the target table, maintaining the highest level of data consistency for the load.

Why this answer

The ON_ERROR parameter determines how the COPY command handles malformed data or schema mismatches. The ABORT_STATEMENT setting is the strictest option available, ensuring transactional integrity by rolling back the entire load if a single error occurs. This is critical for datasets where partial loads could lead to data inconsistency or require complex manual cleanup.

Exam trap

Candidates frequently choose CONTINUE or SKIP_FILE when asked to completely halt and roll back a bulk load upon a single error, confusing error tolerance with strict transactional atomicity.

6
MCQmedium

A data engineer is loading data from a set of CSV files stored in an external stage into a Snowflake table. The files have a header row, and the engineer wants to skip the header during loading. The engineer also wants to ensure that any rows with missing values in a NOT NULL column are skipped and logged. Which FILE_FORMAT option should be used to skip the header row?

A.PARSE_HEADER = TRUE
B.SKIP_HEADER = 1
C.FIELD_DELIMITER = ','
D.SKIP_BLANK_LINES = TRUE
AnswerB

SKIP_HEADER 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 option to ignore the header row. It is commonly used with CSV files that have a single header line.

Why this answer

To skip the header row in a CSV file during loading, the FILE_FORMAT option SKIP_HEADER should be set to the number of header rows to skip, typically 1. This ensures that the first row is ignored and not loaded into the table. Other options like SKIP_BLANK_LINES or FIELD_DELIMITER do not serve this purpose.

PARSE_HEADER is not a valid Snowflake option.

Exam trap

The trap here is confusing SKIP_HEADER with other header-related options or assuming that a non-existent PARSE_HEADER parameter is valid.

7
MCQhard

A data engineer is using the Snowpipe REST API to ingest data from an external stage. They need to ensure that the pipe does not reprocess files that have already been loaded. Which mechanism does Snowpipe use to track which files have been processed?

A.A unique file naming convention enforced by the user
B.A metadata table in the INFORMATION_SCHEMA
C.A hash of the file stored in the stage metadata
D.A load history table maintained by Snowpipe
AnswerD

Snowpipe maintains an internal load history that records the filename and checksum of each file it has processed. When a new file notification is received, Snowpipe checks this history to avoid reprocessing files that have already been loaded. This mechanism ensures exactly-once ingestion per file, making it the correct answer.

Why this answer

Snowpipe uses an internal load history that records the filename and checksum of each ingested file. When a new file notification arrives, Snowpipe consults this history to determine if the file has already been processed. This prevents duplicate ingestion even if the same file is staged multiple times.

The other options do not provide this tracking capability.

Exam trap

The trap here is assuming that stage metadata or file naming prevents reprocessing, but Snowpipe's internal history is the authoritative source.

8
MCQmedium

A data engineer is loading a batch of semi-structured JSON files from an external stage into a VARIANT column. They want the COPY INTO command to skip any file that contains malformed JSON without failing the entire load. Which COPY INTO option should they configure?

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

ON_ERROR = 'SKIP_FILE' instructs Snowflake to skip a file entirely if any error occurs while loading it, including malformed JSON. This prevents the entire COPY INTO operation from failing and allows other valid files to load. It matches the requirement to skip malformed files without aborting the load, making it the correct choice.

Why this answer

The ON_ERROR = 'SKIP_FILE' option tells Snowflake to skip a file entirely when any error occurs during loading, which includes malformed JSON. This allows the COPY INTO operation to continue processing other valid files without failing the entire statement. The other options either abort the load, skip only rows, or are not valid Snowflake syntax.

Exam trap

The trap here is confusing row-level error handling (CONTINUE) with file-level error handling (SKIP_FILE).

9
MCQmedium

A data engineer needs to load a CSV file into a Snowflake table. The file has a header row, fields are separated by commas, and string values are enclosed in double quotes. The engineer wants to ensure the header row is skipped and the string values are loaded without quotes. Which FILE_FORMAT option should be used to achieve this?

A.SKIP_HEADER = 1 and FIELD_DELIMITER = '"'
B.SKIP_HEADER = 1 and ESCAPE_UNENCLOSED_FIELD = '"'
C.SKIP_HEADER = 0 and FIELD_OPTIONALLY_ENCLOSED_BY = '"'
D.SKIP_HEADER = 1 and FIELD_OPTIONALLY_ENCLOSED_BY = '"'
AnswerD

SKIP_HEADER = 1 skips the first row of the file, which is the header. FIELD_OPTIONALLY_ENCLOSED_BY = '"' tells Snowflake that string values may be enclosed in double quotes, and the quotes are removed during loading. This combination correctly handles the file.

Why this answer

To load a CSV with a header and quoted strings, the file format must skip the header row and recognize the quote character as an optional enclosure. SKIP_HEADER = 1 handles the header, and FIELD_OPTIONALLY_ENCLOSED_BY = '"' ensures quotes are stripped from string values during loading. Other options either misinterpret the delimiter or fail to skip the header.

Exam trap

The trap here is confusing FIELD_OPTIONALLY_ENCLOSED_BY with FIELD_DELIMITER, or forgetting to skip the header row.

10
MCQmedium

Which Snowflake feature allows for secure, direct communication between a customer's virtual private cloud (VPC) and the Snowflake service without using the public internet?

A.Snowflake Data Exchange
B.Snowflake Private Link
C.SnowSQL Proxy Configuration
D.Network Policy Whitelisting
AnswerB

Snowflake Private Link (based on AWS PrivateLink or Azure Private Link) provides private connectivity to Snowflake by ensuring that all traffic stays within the cloud provider's network. This eliminates exposure to the public internet and simplifies the network architecture for highly regulated industries like finance or healthcare.

Why this answer

For organizations with strict security and compliance requirements, avoiding the public internet for data transit is essential. Snowflake supports private connectivity options on major cloud providers to ensure that data remains within the cloud provider's network backbone, significantly reducing the attack surface for potential data interception.

Exam trap

Candidates often confuse Snowflake Private Link with general network policies or external stages, missing its specific VPC connectivity purpose.

11
MCQmedium

Which property of the FILE_FORMAT object should be adjusted if a CSV file uses a semicolon (;) instead of a comma to separate values?

A.RECORD_DELIMITER
B.FIELD_DELIMITER
C.FIELD_OPTIONALLY_ENCLOSED_BY
D.ESCAPE_CHARACTER
AnswerB

The FIELD_DELIMITER parameter specifies the character that separates individual columns within a row. By setting this to ';', Snowflake can correctly identify the boundaries of each field in a semicolon-delimited file, ensuring that the data is correctly mapped to the target table's columns.

Why this answer

File formats in Snowflake are highly granular, allowing users to define the exact structure of their source data. Correctly identifying the delimiter is the most basic requirement for successful parsing. Snowflake provides specific parameters for field and record delimiters to accommodate a wide variety of data export formats.

Exam trap

Candidates often confuse FIELD_DELIMITER with RECORD_DELIMITER or ESCAPE_CHAR. They fail to distinguish between the character separating columns and the character separating rows or escaping data.

12
MCQmedium

Refer to the exhibit. When the COPY INTO command is executed, which field delimiter will Snowflake use to parse the files located in the 'data/' folder of the stage?

A.The pipe character (|) because it was defined first in the CREATE STAGE command.
B.The comma character (,) because the FILE_FORMAT in the COPY command overrides the stage default.
C.Snowflake will return an error because the delimiters in the stage and the COPY command conflict.
D.Snowflake will attempt to auto-detect the delimiter, ignoring both specified values.
AnswerB

Snowflake follows a hierarchy for file format options. The options specified in the COPY INTO command have the highest priority and override any settings defined on the stage object. This design allows for maximum flexibility, enabling a single stage to hold files with slightly different formats that can be handled by different COPY statements.

Why this answer

In Snowflake, if a FILE_FORMAT is specified in both the stage definition and the COPY INTO statement, the options provided in the COPY INTO statement take precedence. This allows developers to define a general default format for a stage while still having the flexibility to override specific parameters for individual load jobs without altering the permanent stage object itself.

Exam trap

Candidates often assume that the stage-level file format is immutable or takes precedence, failing to realize that parameters defined within the COPY INTO command always override stage defaults.

13
MCQhard

Refer to the exhibit. A user executes a COPY INTO command and then queries the COPY_HISTORY. Based on the output shown, what most likely happened during the load and what is the current state of the data in the SALES_DATA table?

A.The load failed completely, and no rows were added to the table because of the 2 errors.
B.Exactly 500 rows were successfully loaded into the table, and the 2 errors were ignored.
C.The 2 errors represent duplicate files that were already loaded in a previous session.
D.The entire file was skipped because the number of errors exceeded the default threshold.
AnswerB

The 'PARTIALLY_LOADED' status is the key indicator that the 'ON_ERROR = CONTINUE' option was used. This tells Snowflake to load whatever it can. The ROW_COUNT of 500 represents the records that met the table's schema requirements and are now available for querying within the SALES_DATA table, while the errors are recorded for debugging.

Why this answer

The COPY_HISTORY result showing 'PARTIALLY_LOADED' with specific row errors indicates that the ON_ERROR parameter was likely set to 'CONTINUE'. In this mode, Snowflake skips rows that contain errors but proceeds to load all valid records into the table. This results in a successful transaction for the 500 valid rows, while the 2 erroneous rows are logged but not ingested.

Exam trap

Candidates often assume that any error during a load causes the entire transaction to rollback, failing to account for the ON_ERROR = 'CONTINUE' behavior.

14
MCQmedium

A Python developer wants to upload a Pandas DataFrame to a Snowflake table as efficiently as possible without manually writing files to a local stage. Which function from the Snowflake Connector for Python should be used?

A.cursor.execute("INSERT INTO...")
B.write_pandas()
C.snowflake.load_df()
D.pd.to_sql() with the default engine
AnswerB

The write_pandas() function is the optimized method for loading data from a Pandas DataFrame into Snowflake. It handles the underlying complexity of chunking data, uploading it to a stage, and performing a bulk load. This method is much faster than row-by-row inserts and is the recommended practice for data science and engineering workflows using Python.

Why this answer

The Snowflake Connector for Python provides a high-level function called write_pandas specifically for this purpose. This function automates the process of converting the DataFrame to Parquet format, staging the files in a temporary internal stage, and executing the COPY INTO command. This abstraction simplifies the developer's workflow while maintaining high performance for large data transfers.

Exam trap

Candidates waste time writing custom file-writing logic in Python instead of using the built-in write_pandas function designed specifically for high-efficiency DataFrame ingestion.

15
MCQmedium

A data engineer needs to verify the structure and content of several CSV files staged in an internal Snowflake stage without actually loading the data into the production table or incurring significant compute costs. Which parameter should be used with the COPY INTO command to achieve this specific goal?

A.ON_ERROR = ABORT_STATEMENT
B.VALIDATION_MODE = RETURN_ERRORS
C.PURGE = FALSE
D.FORCE = TRUE
AnswerB

Using this specific value for the validation parameter instructs Snowflake to scan the files and report all errors encountered in the data. No data is actually loaded into the table, making it an ideal choice for pre-load checks and debugging file format issues without consuming credits for data ingestion.

Why this answer

The VALIDATION_MODE parameter is specifically designed to parse staged files and return errors or data samples without performing an actual load. This prevents unnecessary data ingestion while allowing engineers to identify formatting issues or schema mismatches early in the development lifecycle. It is a cost-effective method to ensure data quality before executing a full production data pipeline.

Exam trap

Candidates attempt to use standard SELECT queries on internal stages to check file structures, forgetting that staged files must be evaluated using the COPY INTO command with validation parameters.

16
MCQeasy

Which Snowflake command is used to upload data files from a local file system to an internal stage?

A.COPY INTO
B.GET
C.PUT
D.INSERT
AnswerC

The PUT command is specifically designed to upload files from a local directory to an internal stage. It supports features like automatic compression and parallel uploads, making it the standard tool for getting data into the Snowflake environment before it is finally loaded into a permanent database table.

Why this answer

The PUT command is the primary method for moving local files into the Snowflake cloud environment's internal stages. This command is executed via the SnowSQL CLI or other drivers that support local file access. It handles the secure upload and optional encryption of data before it reaches the Snowflake managed storage.

Exam trap

Candidates frequently confuse the PUT command (used for local-to-internal staging) with the COPY INTO command (used for loading staged data into tables).

17
MCQeasy

A data engineer has a CSV file on their local machine and wants to load it into a Snowflake table. They do not have access to an external cloud storage bucket and want the simplest path that does not require creating a named internal stage. Which command should they use?

A.COPY INTO my_table FROM 'file:///tmp/data.csv'
B.PUT file:///tmp/data.csv @my_table
C.COPY INTO my_table FROM @my_named_stage
D.PUT file:///tmp/data.csv @%my_table; then COPY INTO my_table FROM @%my_table
AnswerD

The table stage @%my_table is created automatically with the table, so no named stage is needed. PUT uploads the local CSV to that table stage, and COPY INTO reads it into the table. This two-step sequence is the standard simplest path for loading a local file without creating a separate named internal stage.

Why this answer

Every table has an implicit table stage accessible as @%table_name, which requires no manual creation. Uploading the local file with PUT to the table stage and then running COPY INTO from that stage is the simplest way to load a single local CSV without provisioning a named internal stage. This satisfies the no-named-stage constraint directly.

Exam trap

The trap here is believing COPY INTO can read a local file path directly, when local files must always be staged with PUT first.

18
MCQmedium

A data engineer is loading a 4 GB CSV file from an external stage into a Snowflake table using COPY INTO. The file is compressed with gzip and has a header row. The engineer notices the load is taking longer than expected. Which action is MOST likely to improve performance?

A.Enable the PURGE option to remove the file after loading.
B.Increase the warehouse size to a larger size.
C.Use a larger file format option to skip the header.
D.Split the file into multiple smaller files and load them in parallel.
AnswerD

Splitting a large file into multiple smaller files allows Snowflake to load them in parallel using multiple threads, significantly improving performance. This is a best practice for large data loads. The recommended size per file is 100-250 MB compressed.

Why this answer

Splitting large files into multiple smaller files enables parallel loading, which is a key performance optimization for COPY INTO. Snowflake can distribute the load across multiple threads when multiple files are present, reducing overall load time.

Exam trap

The trap here is assuming that increasing warehouse size alone will always speed up a single large file load, but Snowflake cannot parallelize within a single file.

19
Multi-Selecthard

A data engineer is configuring Snowpipe to automatically ingest files as they arrive in an external S3 stage. They must ensure the pipe loads only files matching a specific path prefix and that duplicate notifications for the same file do not cause duplicate rows. Which two configurations should they apply? (Choose two.)

Select 2 answers
A.Rely on the S3 event notification configuration to prevent duplicate notifications from being sent.
B.Define the pipe with a COPY INTO statement that includes a PATTERN option matching the desired path prefix.
C.Set the pipe parameter FORCE = TRUE so that every notification reloads the file.
D.Configure the pipe with AUTO_INGEST = TRUE and a notification channel, and set ON_ERROR = 'CONTINUE'.
E.Ensure the pipe uses the default load metadata tracking so that already-loaded files are skipped on subsequent notifications.
AnswersB, E

The PATTERN option in the COPY statement filters which staged files the pipe ingests by applying a regular expression to the file path. This restricts ingestion to files under the desired prefix, satisfying the requirement to load only matching files. Without it, the pipe would attempt to load every file delivered by the notification, which is broader than intended.

Why this answer

Filtering by path is achieved with the PATTERN option in the pipe's COPY statement, which restricts ingestion to matching files. Duplicate prevention comes from Snowpipe's load metadata, which records each loaded file by name and checksum and skips repeats even if notifications are delivered multiple times. Together these two settings satisfy both the prefix restriction and the deduplication requirement.

Exam trap

The trap here is trusting S3 event notifications to deliver exactly once, when duplicate deliveries are possible and deduplication must come from Snowflake.

20
MCQhard

A data engineer must continuously load Parquet files arriving in an external Azure stage into a Snowflake table. The files have no consistent naming pattern and arrive at unpredictable intervals. The engineer wants Snowflake to detect and load new files automatically without running COPY on a schedule. Which Snowflake feature should be configured?

A.Streams and tasks on the target table
B.A scheduled task that runs COPY INTO every five minutes
C.An external table with automatic refresh enabled
D.Snowpipe with a cloud messaging notification integration
AnswerD

Snowpipe combined with an event notification from the cloud provider triggers loads when new files land in the external stage, which matches the requirement for automatic, event-driven ingestion without polling. It also tracks loaded files in load metadata so duplicate loads are avoided. This is the documented mechanism for continuous loading from external cloud storage in Snowflake.

Why this answer

Snowpipe is designed for continuous, event-driven ingestion from external stages, and pairing it with a notification integration lets the cloud provider push file-arrival events to Snowflake. This avoids polling and scheduled COPY runs while using load metadata to prevent reprocessing. External tables, streams, and tasks do not provide automatic file-triggered loading into a native table.

Exam trap

The trap here is treating scheduled COPY tasks or external table refresh as equivalent to event-driven Snowpipe ingestion, when only Snowpipe reacts to file arrival automatically.

21
Multi-Selecthard

A data engineer is configuring a Snowpipe to automatically ingest files as they arrive in an external stage. They need to set up event notifications from the cloud provider to Snowflake. Which two components are required to enable this automated ingestion? (Choose two.)

Select 2 answers
A.A named file format object
B.A task to periodically check for new files
C.A storage integration object in Snowflake
D.A notification integration object in Snowflake
E.An external function to process the notifications
AnswersC, D

A storage integration is a Snowflake object that stores the identity and access management (IAM) credentials for the external cloud storage. It allows Snowflake to securely access the external stage without embedding credentials in the stage definition. For automated Snowpipe ingestion, a storage integration is required to grant Snowflake the necessary permissions to read from the stage. This is a fundamental component.

Why this answer

To enable automated Snowpipe ingestion from an external stage, two key Snowflake objects are required: a storage integration to securely access the external stage, and a notification integration to receive event notifications from the cloud provider. The storage integration provides the necessary permissions, while the notification integration allows Snowpipe to be triggered by events. Other components like file formats or tasks are not required for the event notification setup.

Exam trap

The trap here is overlooking the need for a notification integration and assuming that a storage integration alone suffices for event-driven ingestion.

22
MCQmedium

When using the Snowflake Connector for Python, which method is most efficient for uploading and loading large local CSV files into a Snowflake table?

A.Iterating through the CSV in Python and executing an INSERT statement for every row found.
B.Using the 'write_pandas' function which automates the PUT and COPY INTO commands internally.
C.Converting the CSV into a single large SQL string and executing it as one massive INSERT.
D.Calling the 'snowflake.load_file' method which bypasses the need for any virtual warehouse.
AnswerB

The write_pandas function is a high-level utility provided by the Snowflake Python Connector. It automatically handles the staging of data (PUT) and the ingestion into the target table (COPY INTO), providing a highly optimized and developer-friendly way to perform bulk loads from a Pandas DataFrame.

Why this answer

The Python Connector offers specialized methods to optimize data movement. For large local files, using the write_pandas method or executing a PUT followed by a COPY command is much more efficient than executing individual INSERT statements, as it leverages Snowflake's bulk loading capabilities and reduces network overhead.

Exam trap

Candidates often suggest using INSERT statements in Python loops. This is extremely slow and inefficient because it generates individual transactions for every row rather than batching data.

23
MCQmedium

A data engineer is designing a pipeline for a high-frequency stream of small JSON files arriving every minute in an S3 bucket. Why would Snowpipe be preferred over a scheduled COPY INTO command running on a dedicated virtual warehouse?

A.Virtual warehouses are billed per second with a one-minute minimum, making them expensive for frequent small loads.
B.Snowpipe requires manual intervention to trigger loads using the REST API for every single file arriving in the bucket.
C.The COPY INTO command cannot process JSON files directly and requires an intermediate stage to convert data to CSV.
D.Scheduled COPY commands are limited to executing once every hour, which would create significant latency for real-time pipelines.
AnswerA

Virtual warehouses are billed per second with a one-minute minimum, making them expensive for frequent small loads. Snowpipe uses a per-file overhead charge plus compute time, which is more cost-efficient for streaming data patterns that do not require a full warehouse to be active.

Why this answer

Snowpipe provides a serverless compute model that automatically scales based on the volume of data being ingested, which is ideal for small, frequent files. Using a dedicated virtual warehouse for a scheduled COPY command often leads to underutilization or excessive costs because the warehouse remains active for the minimum billing period even if the load finishes in seconds.

Exam trap

Many candidates choose scheduled COPY INTO commands assuming warehouse auto-suspend saves money, forgetting the one-minute minimum billing increment which heavily penalizes frequent, minute-long runs.

24
MCQeasy

Which Snowflake feature allows a user to download data from a Snowflake table into a local folder on their computer using the SnowSQL command-line interface?

A.The PUT command is used to move files from the local file system into an internal stage.
B.The GET command fetches files from an internal stage and saves them to the local directory.
C.The COPY INTO <location> command moves data from a table directly to a local hard drive.
D.The DOWNLOAD function is a built-in SQL utility that can be called from any worksheet.
AnswerB

The GET command is the standard utility within SnowSQL for downloading files. After using the COPY INTO <location> command to unload table data into an internal stage, the GET command is then executed to move those physical files from the cloud stage to the user's local file system.

Why this answer

The GET command is specifically designed to transfer files from an internal Snowflake stage to a local directory on a client machine. This is the inverse of the PUT command and is essential for retrieving data that has been unloaded from tables into internal stages for local analysis or archival purposes.

Exam trap

Candidates often conflate the GET command with the COPY INTO <location> command, incorrectly assuming that COPY INTO is used to download files to a local machine.

25
Multi-Selecthard

A data engineer is troubleshooting a COPY INTO command that loads JSON files from a named external stage and is seeing unexpected NULL values in several VARIANT columns. Which TWO actions should the engineer take to diagnose how the JSON is being parsed? (Choose two.)

Select 2 answers
A.Enable STRIP_OUTER_ARRAY = TRUE on the file format to flatten the JSON into columns.
B.Run COPY INTO with VALIDATION_MODE = 'RETURN_ERRORS' to surface parsing problems before committing data.
C.Set ON_ERROR = 'ABORT_STATEMENT' and rerun the load to force Snowflake to reveal the malformed records.
D.Change the file format TYPE to CSV so Snowflake parses each line as a flat record and exposes the raw text.
E.Query the COPY_HISTORY ACCOUNT_USAGE view to review the load status and error details for recent COPY statements.
AnswersB, E

VALIDATION_MODE = 'RETURN_ERRORS' validates files against the specified file format and returns any parsing errors without loading data, which directly exposes mismatches such as incorrect field or record delimiters causing NULL VARIANT values. This is the recommended way to test a file format against real files before a production load, and it aligns with diagnosing JSON parsing behavior.

Why this answer

Diagnosing unexpected NULLs in VARIANT columns requires visibility into how the load parsed the JSON. VALIDATION_MODE = 'RETURN_ERRORS' validates files and reports parsing errors without loading, while COPY_HISTORY provides per-statement load status and error details. Together they reveal whether the file format definition matches the actual JSON structure.

Aborting the load, changing the format type, or stripping the outer array do not expose the parsing problem.

Exam trap

The trap here is reaching for load-control options like ON_ERROR or structural options like STRIP_OUTER_ARRAY to investigate parsing problems, when validation and load-history views are the diagnostic tools.

26
MCQmedium

A user wants to check for potential errors in a set of staged files without actually loading the data or consuming significant warehouse credits. Which approach should they use?

A.Run the COPY command with the ON_ERROR = 'ABORT_STATEMENT' and PURGE = 'FALSE' options.
B.Query the files directly using the SELECT * FROM @stage syntax with a LIMIT 100 clause.
C.Execute the COPY command with the VALIDATION_MODE = 'RETURN_ERRORS' parameter specified.
D.Use the ANALYZE_STAGE function to generate a report on the health and formatting of the staged files.
AnswerC

The VALIDATION_MODE parameter instructs Snowflake to parse the files and check for errors without actually loading any data into the table. This is highly efficient for testing file format settings or verifying data quality before committing to a large-scale ingestion process that could consume significant credits.

Why this answer

The VALIDATION_MODE parameter in the COPY command is a powerful tool for data quality assurance. It allows Snowflake to parse files and identify errors without writing data to the table, which helps prevent failed loads and saves time by catching formatting issues before the actual ingestion occurs.

Exam trap

Examinees often recommend running normal COPY commands or custom validation scripts, overlooking the built-in VALIDATION_MODE parameter explicitly designed for this task.

27
MCQeasy

A data analyst wants to query data stored in an external stage (Amazon S3) without loading it into a Snowflake table. The analyst creates an external table pointing to the stage. Which statement accurately describes how the data is accessed?

A.The external table automatically loads all data into Snowflake's storage upon creation, so queries run against local micro-partitions.
B.The external table caches the data in the virtual warehouse's local SSD, and subsequent queries do not access the external stage again.
C.The external table reads data directly from the external stage at query time, and the data remains in the external storage location.
D.The external table requires a materialized view to be created on top of it before any queries can return results.
AnswerC

External tables are read-only and query data in place from the external stage. Snowflake accesses the files using the stage's storage integration and parses them according to the table's file format. The data never leaves the external storage, which is ideal for infrequent queries or when data must remain in its original location.

Why this answer

External tables provide a way to query data stored in external stages without loading it into Snowflake. They act as metadata pointers to files in the external stage, and queries read the data directly from those files. This allows querying data in place, which is useful for infrequent access or when data must remain in external storage.

Exam trap

The trap here is confusing external tables with regular tables, assuming data is loaded or cached persistently, when external tables always read from the external stage at query time.

28
MCQhard

A data engineer is loading JSON data from an external stage into a Snowflake table using COPY INTO with a JSON file format. The JSON records contain nested arrays and objects. The engineer wants to load specific elements into separate columns. Which approach should the engineer use?

A.Use the COPY INTO command with a transformation that uses the SPLIT_TO_TABLE function to flatten the arrays into rows before loading.
B.Define the target table with columns matching the JSON keys and use the MATCH_BY_COLUMN_NAME option in the file format to automatically map nested elements to columns.
C.Load the entire JSON record into a single VARIANT column, then use a view with dot notation and array indexing to extract the desired elements.
D.Convert the JSON to CSV using an external tool before loading, then use a standard CSV file format with column mapping.
AnswerC

Loading JSON into a VARIANT column preserves the semi-structured data, and Snowflake's native support for semi-structured data allows extraction using dot notation and array indexing in a view or query. This approach is flexible and avoids complex transformations during load, making it ideal for nested JSON.

Why this answer

Snowflake provides robust support for semi-structured data through the VARIANT data type. Loading JSON into a VARIANT column and then using dot notation and array indexing in a view or query allows flexible extraction of nested elements. This approach leverages Snowflake's built-in functions and avoids the need for complex transformations or external processing.

Exam trap

The trap here is assuming that JSON must be flattened or converted before loading, when Snowflake's VARIANT type and semi-structured functions handle nested data natively.

29
MCQeasy

A user needs to load data from a CSV file stored in an external stage into a Snowflake table. The CSV file has a header row and uses a pipe (|) as the field delimiter. The user wants to ensure the header row is skipped and the pipe delimiter is recognized. Which FILE_FORMAT options should be specified in the COPY INTO command?

A.TYPE = 'CSV', FIELD_DELIMITER = '|', SKIP_HEADER = 1
B.TYPE = 'CSV', FIELD_DELIMITER = '|', SKIP_HEADER = 0
C.TYPE = 'CSV', RECORD_DELIMITER = '|', SKIP_HEADER = 1
D.TYPE = 'CSV', FIELD_DELIMITER = ',', SKIP_HEADER = 1
AnswerA

This is correct because for CSV files, the FILE_FORMAT must specify TYPE = 'CSV'. The FIELD_DELIMITER option sets the delimiter to a pipe, and SKIP_HEADER = 1 tells Snowflake to skip the first row (the header). These options together ensure the file is parsed correctly, with the header ignored and fields separated by the pipe character. This is the standard way to handle such CSV files.

Why this answer

For a CSV file with a pipe delimiter and a header row, the FILE_FORMAT should specify TYPE = 'CSV', FIELD_DELIMITER = '|', and SKIP_HEADER = 1. This ensures the header is ignored and fields are correctly separated. Using the wrong delimiter or not skipping the header would result in parsing errors or unwanted data.

Exam trap

The trap here is mixing up FIELD_DELIMITER and RECORD_DELIMITER; RECORD_DELIMITER is for row separation, not field separation.

30
MCQhard

A data engineer is loading data from a local file system into a Snowflake table using the PUT command to an internal stage, followed by COPY INTO. The engineer notices that some rows are rejected due to data type mismatches. The engineer wants to capture the rejected records and continue loading valid rows. Which COPY INTO option should be used to achieve this?

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

This is correct because ON_ERROR = 'CONTINUE' instructs COPY INTO to skip errors and load all valid rows, while capturing rejected records in the load metadata. The rejected rows can be queried using the VALIDATION_MODE or by inspecting the COPY_HISTORY view. This allows the load to proceed without failing entirely, which is exactly what the engineer needs to continue loading valid rows and later analyze the rejected ones.

Why this answer

To load valid rows while capturing rejected records, ON_ERROR = 'CONTINUE' is the appropriate option. It allows the load to proceed, skipping erroneous rows, and the rejected records can be retrieved from the COPY_HISTORY or by using VALIDATION_MODE. Other options either skip the entire file, only validate, or abort the statement, none of which meet the requirement to continue loading valid rows.

Exam trap

The trap here is confusing VALIDATION_MODE with error handling during actual load; VALIDATION_MODE does not load data, it only validates.

31
MCQmedium

A data engineer needs to load a 4.2 GB uncompressed CSV file from an internal stage into a Snowflake table. The file cannot be split because the CSV has embedded newlines within quoted fields. The engineer wants to maximize load performance. What should the engineer do?

A.Load the file using the Snowpipe REST API with the insertFiles endpoint, which automatically splits large files into chunks for parallel ingestion.
B.Use a larger virtual warehouse and load the single file; Snowflake will automatically parallelize the load across all compute resources in the warehouse.
C.Split the file into multiple smaller files (e.g., 100-250 MB compressed) and stage them together, then run a single COPY INTO command referencing the stage path.
D.Compress the file with gzip and load it as a single file; Snowflake will automatically split the compressed file across all nodes in the warehouse.
AnswerC

Splitting into multiple files allows Snowflake to distribute them across threads in the warehouse, enabling parallel loading. The recommended compressed size is 100-250 MB per file. A single COPY INTO command can reference the stage path and will load all files in parallel, maximizing throughput while respecting the CSV's embedded newline constraint.

Why this answer

Snowflake achieves load parallelism by processing multiple files concurrently, not by splitting a single file. When a file cannot be split due to embedded newlines, the engineer must manually divide it into multiple smaller files and stage them together. A single COPY INTO command can then load all files in parallel, significantly improving performance over loading one large file.

Exam trap

The trap here is assuming that a larger virtual warehouse or compression alone will parallelize a single large file, when Snowflake parallelizes only across separate files.

32
MCQmedium

When loading semi-structured data like Parquet into a Snowflake table, what is a primary advantage of using Parquet over CSV for the ingestion process?

A.Parquet files are always smaller than CSV files regardless of the data content.
B.Parquet files contain schema metadata, allowing for easier mapping of complex data.
C.Parquet files can be loaded using the PUT command directly into a table.
D.Parquet is the only format that supports the ON_ERROR = CONTINUE parameter.
AnswerB

Because Parquet is self-describing, Snowflake can use functions like INFER_SCHEMA to automatically determine table structures. This reduces the manual effort required to define table columns and ensures that data types are preserved correctly from the source. It also supports nested structures like arrays and objects much more naturally than flat CSV files.

Why this answer

Parquet is a columnar storage format that includes embedded schema information and metadata about the data it contains. This allows Snowflake to automatically detect column names and types during the load process. Unlike CSV, which is a flat text format, Parquet's structure enables more efficient data mapping and better performance during ingestion of complex, nested datasets.

Exam trap

Candidates often assume the primary benefit of Parquet is simply compression, failing to recognize that the embedded schema metadata is the critical driver for efficient automated ingestion.

33
Multi-Selectmedium

Which TWO statements are true regarding the behavior and management of External Tables in Snowflake?

Select 2 answers
A.External tables support the same performance optimizations as native tables, including clustering keys.
B.External tables can be manually refreshed or configured to refresh automatically using cloud notifications.
C.Data in external tables can be updated directly using standard DML commands like UPDATE or DELETE.
D.External tables store a version of the data in Snowflake's internal storage for faster access.
E.External tables can be partitioned to improve query performance by limiting the data scanned.
AnswersB, E

To keep the metadata of an external table in sync with the actual files in the cloud storage, it must be refreshed. Snowflake allows users to trigger this manually using the ALTER EXTERNAL TABLE... REFRESH command or automatically by integrating with cloud event services like AWS SQS or Azure Event Grid.

Why this answer

External tables allow Snowflake to query data stored in external cloud storage without first importing it into Snowflake's proprietary storage format. They are read-only and rely on metadata that points to the files. To maintain performance and accuracy, they can be partitioned based on the folder structure and require metadata refreshes to detect new or removed files in the cloud bucket.

Exam trap

Candidates often mistakenly believe that external tables automatically detect changes in underlying cloud storage in real-time without user intervention or configured event notifications.

34
MCQeasy

Which type of Snowflake stage is automatically created for every user and cannot be dropped or altered?

A.Named Internal Stage
B.Table Stage
C.User Stage
D.External Stage
AnswerC

Every user in Snowflake has a personal User Stage identified by the '@~' symbol. It is the most convenient place for individual users to upload files for testing or personal use. Because it is managed by the system, it cannot be dropped, and permissions cannot be granted to other users to access its contents.

Why this answer

Snowflake provides several types of internal stages to simplify file management. The User Stage is a unique, dedicated area for each user to store files before loading them into tables. It is automatically provisioned and managed by Snowflake, ensuring that users always have a private location for staging data without requiring administrative configuration or manual stage creation.

Exam trap

Candidates often confuse User Stages with Table Stages, incorrectly assuming that table stages are the default location automatically provisioned for every user upon account creation.

35
MCQeasy

A data analyst needs to unload the results of a query from a Snowflake table to a local machine. The analyst wants to use the Snowflake web interface (Snowsight) to download the data as a CSV file. Which of the following is the correct approach?

A.Create a named internal stage, unload the data using COPY INTO @stage, then use GET to download the file to the local machine.
B.Execute a COPY INTO command targeting a local file path, then download the file from the user's home directory.
C.Run the query in a worksheet, then use the 'Download results' button to save the output as a CSV file.
D.Use the Snowflake REST API to execute the query and retrieve the results as a CSV stream.
AnswerC

In Snowsight, after running a query, the results grid provides a 'Download results' button that allows downloading the result set as a CSV file directly to the local machine. This is a straightforward and supported method for small to medium result sets, and it requires no additional staging or commands.

Why this answer

Snowsight provides a built-in feature to download query results as a CSV file. After executing a query, the results pane includes a 'Download results' button, which exports the displayed data to a CSV file on the local machine. This is the simplest and most direct method for ad-hoc downloads, especially for smaller datasets, and it does not require staging or command-line tools.

Exam trap

The trap here is overcomplicating the task by assuming that a COPY INTO or GET command is necessary when the web interface already offers a direct download option.

36
MCQeasy

What is the purpose of the PURGE = TRUE option in a COPY INTO command?

A.It deletes all records from the target table before starting the load.
B.It removes data files from the stage after they are successfully loaded.
C.It clears the Snowflake metadata cache to allow for a full reload of the data.
D.It removes only the files that failed to load due to formatting errors.
AnswerB

When PURGE is set to TRUE, Snowflake automatically deletes the source files from the internal or external stage once the COPY command completes successfully. This is a convenient way to clean up staging areas without needing a separate manual or scripted step to delete files.

Why this answer

The PURGE parameter provides an automated way to manage the lifecycle of files in a stage. In many workflows, once a file has been successfully loaded into Snowflake, it is no longer needed in the staging area. Automating the deletion helps maintain a clean environment and can reduce storage costs in internal stages.

Exam trap

Candidates mistakenly believe PURGE = TRUE deletes the target table or the stage itself. It only targets the specific files processed during that single COPY command execution.

37
MCQmedium

A company is using an external S3 stage to load data daily. They want Snowflake to automatically delete the source files from the S3 bucket only after they have been successfully loaded into the table. Which COPY INTO option should they enable?

A.DELETE_AFTER_LOAD = TRUE
B.REMOVE_FILES = TRUE
C.PURGE = TRUE
D.AUTO_CLEAN = TRUE
AnswerC

Setting PURGE = TRUE is the standard method for cleaning up files after a successful load. It is particularly useful for internal stages to keep them from hitting storage limits. For external stages like S3, it requires that the Snowflake IAM role has the appropriate permissions to delete objects from the specified bucket.

Why this answer

The PURGE parameter in the COPY INTO command is designed for automated cleanup of staged files. When set to TRUE, Snowflake will issue a delete command to the stage (internal or external) for every file that was successfully ingested. This helps manage storage costs and ensures that the same files are not accidentally processed again in future load cycles.

Exam trap

Candidates often think that Snowflake automatically deletes files upon ingestion by default, or they suggest using external lifecycle policies, which are independent of the COPY INTO command.

38
MCQhard

A data engineer is using the COPY INTO command to load data from an external stage into a Snowflake table. The engineer wants to ensure that the load operation does not fail if some files in the stage have already been loaded previously. The engineer also wants to avoid reloading files that have already been processed. Which COPY INTO option should be used to achieve this?

A.Set PURGE = TRUE to remove files from the stage after loading, ensuring they are not reloaded.
B.LOAD_UNCERTAIN_FILES = TRUE
C.Use the default behavior of COPY INTO, which automatically skips files that have been loaded in the past 64 days.
D.FORCE = TRUE
AnswerC

By default, COPY INTO maintains load metadata for 64 days and skips files that have already been successfully loaded. This prevents duplicate loading without additional options. The engineer should simply rely on the default behavior, which is designed to avoid reloading files within the retention period.

Why this answer

The default behavior of COPY INTO is to skip files that have already been loaded, based on load metadata retained for 64 days. This prevents duplicate loading without requiring any special options. Using FORCE or LOAD_UNCERTAIN_FILES would override this and potentially cause duplicates.

PURGE deletes files but is not intended for duplicate avoidance.

Exam trap

The trap here is assuming that an explicit option is needed to skip previously loaded files, when in fact COPY INTO does this by default.

39
MCQeasy

For optimal parallel loading performance using a Snowflake virtual warehouse, what is the generally recommended compressed file size range for data files in a stage?

A.1KB to 100KB
B.10MB to 100MB
C.1GB to 5GB
D.Exactly 256MB to match HDFS blocks
AnswerB

The 10MB to 100MB range is the 'sweet spot' for Snowflake's data ingestion engine. This size allows for efficient distribution of files across the CPUs in a virtual warehouse. It balances the need for parallelism with the need to minimize the number of files the system must track, resulting in the fastest possible bulk loading performance.

Why this answer

Snowflake's architecture is optimized for parallel processing, where each execution thread in a warehouse can process a separate file. To maximize this parallelism and avoid overhead, it is recommended to aim for file sizes between 10MB and 100MB when compressed. This ensures that the workload is distributed evenly across all available compute nodes without overwhelming the system with metadata management.

Exam trap

Candidates often confuse the recommended file size range for standard data loading (10MB to 100MB compressed) with larger bulk loading recommendations or uncompressed file sizes.

40
MCQmedium

A data engineer is configuring a Snowflake external stage that points to an Amazon S3 bucket. The bucket is in the same region as the Snowflake account. The engineer wants to avoid embedding long-lived AWS credentials in the stage definition and instead use a secure, temporary credential mechanism. Which authentication method should be used for the external stage?

A.Create a Snowflake user with an AWS IAM policy attached directly.
B.Enable AWS IAM database authentication on the Snowflake account.
C.Configure the stage with AWS_KEY_ID and AWS_SECRET_KEY parameters.
D.Use a storage integration with an IAM role and external ID.
AnswerD

A storage integration creates a trust relationship between Snowflake and AWS IAM, allowing Snowflake to assume an IAM role and obtain temporary credentials. This avoids storing long-lived keys in Snowflake and is the recommended secure method for accessing external cloud storage. It satisfies the requirement to use temporary credentials without embedding secrets.

Why this answer

The secure and recommended way to grant Snowflake access to an external S3 bucket without embedding long-lived credentials is to create a storage integration. This integration establishes a trust relationship between Snowflake and AWS, allowing Snowflake to assume an IAM role and obtain temporary credentials. The other options either embed static keys or confuse AWS IAM features with Snowflake capabilities, failing to meet the security requirement.

Exam trap

The trap here is assuming that embedding AWS keys in the stage definition is acceptable for production or that Snowflake supports AWS IAM database authentication directly.

41
Multi-Selectmedium

A data engineer is configuring a Snowflake storage integration to allow Snowflake to access an external S3 bucket. The engineer needs to ensure that the integration has the necessary permissions to read and write data. Which two actions must the engineer perform? (Choose two.)

Select 2 answers
A.Set the STORAGE_ALLOWED_LOCATIONS parameter in the storage integration to restrict access to specific S3 paths.
B.Grant the IAM role permissions to access the S3 bucket, such as s3:GetObject, s3:PutObject, s3:ListBucket, and s3:GetBucketLocation.
C.Create an IAM role in AWS with a trust policy that allows Snowflake's AWS account to assume the role.
D.Store AWS access keys and secret keys in the storage integration definition for authentication.
E.Configure the S3 bucket policy to allow public access so Snowflake can read the data.
AnswersB, C

This is correct because the IAM role must have a policy that allows the necessary S3 actions on the bucket and its objects. At minimum, read and write permissions like s3:GetObject, s3:PutObject, s3:ListBucket, and s3:GetBucketLocation are required for loading and unloading. Without these permissions, Snowflake will receive access denied errors when attempting to read or write data.

Why this answer

To configure a storage integration for S3, you must create an IAM role in AWS that trusts Snowflake's AWS account and has the necessary S3 permissions. These two actions are essential for Snowflake to assume the role and access the bucket. Other options are either insecure or optional.

The integration uses temporary credentials, so storing access keys is not needed.

Exam trap

The trap here is thinking that public access or storing credentials is required, but storage integrations use IAM role assumption with temporary credentials.

42
MCQmedium

A data engineer loads JSON files from an external Azure stage into a table with a single VARIANT column. The JSON documents are newline-delimited, and each line is a separate object. Which file format type and option should be specified to correctly parse one JSON object per line?

A.FILE_FORMAT = (TYPE = 'JSON') with STRIP_NULL_VALUES = TRUE
B.FILE_FORMAT = (TYPE = 'JSON') with STRIP_OUTER_ARRAY = TRUE
C.FILE_FORMAT = (TYPE = 'CSV') with FIELD_DELIMITER = '\n'
D.FILE_FORMAT = (TYPE = 'JSON') with the default settings
AnswerD

For newline-delimited JSON where each line is a complete object, the JSON file format with default settings parses each line as a separate document automatically. No special option is needed because Snowflake treats each newline-separated JSON value as its own record. This correctly loads one object per row into the VARIANT column without additional configuration.

Why this answer

Snowflake's JSON file format parses newline-delimited JSON by default, treating each line as a distinct document and loading it as a row. No additional option is required for this common layout. STRIP_OUTER_ARRAY is only relevant when the file is a single JSON array, and other JSON options control field handling rather than record splitting.

Exam trap

The trap here is reaching for STRIP_OUTER_ARRAY by habit, when it only applies to a single JSON array and not to newline-delimited objects.

Ready to test yourself?

Try a timed practice session using only Data Loading Unloading Connectivity questions.