Courseiva

SnowPro Core (COF-C03) — Questions 151–225

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

Page 2

Page 3 of 4

Page 4
151
MCQmedium

A provider runs CREATE SHARE sales_share; then GRANT USAGE ON DATABASE sales_db TO SHARE sales_share; GRANT USAGE ON SCHEMA sales_db.public TO SHARE sales_share; GRANT SELECT ON TABLE sales_db.public.orders TO SHARE sales_share; ALTER SHARE sales_share ADD ACCOUNT = consumer_acct; A consumer in consumer_acct queries the shared database and receives results. Six months later, the provider executes REVOKE SELECT ON TABLE sales_db.public.orders FROM SHARE sales_share; What is the immediate effect for the consumer?

A.The consumer keeps access but can no longer see the table in SHOW TABLES output.
B.The consumer can still query the shared table because the share was already mounted and the data is cached locally.
C.The consumer immediately loses the ability to query the table and receives an authorization error.
D.The consumer retains read access until the share is dropped or the account is removed from the share.
AnswerC

Privileges granted to a share are enforced at query time against the provider's live data. Revoking SELECT on the table from the share removes the consumer's access instantly, so the next query returns an error such as 'SQL access control error: Insufficient privileges to operate on table'. No re-mounting is required for the revocation to take effect, and previously cached results do not preserve access.

Why this answer

Shares expose live provider data and enforce privileges at query time, so revoking SELECT on a table from a share removes access immediately. The consumer does not need to unmount the database, and cached results do not preserve authorization. The share object and other granted objects remain intact; only the revoked table becomes inaccessible, with a standard insufficient privileges error on the next attempt.

Exam trap

The trap here is assuming that a mounted share or cached results preserve access after a privilege is revoked.

152
MCQmedium

A data engineer has a large table SALES_RAW with a VARIANT column PAYLOAD that stores semi-structured JSON. The engineer needs to flatten an array of product objects inside PAYLOAD into separate rows, keeping all other columns intact. Which Snowflake construct should be used in the SELECT statement to achieve this?

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

LATERAL FLATTEN is the correct Snowflake table function that expands an array or object into multiple rows, and using it with a lateral join preserves the original row's columns. It accepts an input expression such as PAYLOAD:products and produces one row per array element, which is exactly what this scenario requires.

Why this answer

The LATERAL FLATTEN table function is the standard Snowflake mechanism for expanding semi-structured arrays into rows while keeping the parent row's other columns. It accepts a VARIANT input and returns one row per element, making it ideal for converting nested JSON into a relational result set without losing context.

Exam trap

The trap here is confusing functions that manipulate semi-structured data (like OBJECT_CONSTRUCT or ARRAY_AGG) with the specific table function that performs row expansion.

153
MCQmedium

A Snowflake analyst runs a query that aggregates sales by region over the last 30 days. The query takes 40 seconds on an X-Small warehouse. The analyst then reruns the exact same query 10 minutes later without any data changes. It completes in 1 second. Which Snowflake feature explains this behavior?

A.Warehouse Auto-Suspend
B.Result Cache
C.Metadata Cache
D.Local Disk Cache
AnswerB

Result Cache stores the output of a query in the Cloud Services layer for 24 hours (or until the underlying data changes). Since the same query text was rerun and micro-partitions had no changes, Snowflake returned the cached result set without re-executing the query on the virtual warehouse. This is why the second run completed in 1 second.

Why this answer

The dramatic speedup on an identical query with unchanged data is the signature of Result Cache. Snowflake stores the result set in the Cloud Services layer, so a repeat query is served without engaging the virtual warehouse. Local disk and metadata caches accelerate data scanning and pruning but still require query execution, and auto-suspend does not cache results.

Exam trap

The trap here is confusing Result Cache with Local Disk Cache, since both improve performance on repeated queries but only Result Cache stores the final result set.

154
MCQmedium

When loading data into Snowflake using the COPY INTO command, what is the impact of using the 'STRIP_OUTER_ARRAY = TRUE' file format option for JSON files?

A.It removes all square brackets from within the JSON data structure.
B.It allows Snowflake to load each element of a top-level array as a separate row.
C.It converts semi-structured JSON arrays into a comma-separated string.
D.It improves performance by compressing the JSON file during the load.
AnswerB

When a JSON file contains multiple records wrapped in a single array (e.g., [{},{},{}]), setting this option to TRUE instructs Snowflake to remove the brackets and load each object as its own distinct row. This is essential for standardizing data ingestion from many API-based sources.

Why this answer

Snowflake provides various transformation options during the ingestion process to simplify the data structure. The STRIP_OUTER_ARRAY option is particularly useful for JSON files where the entire content is wrapped in a single array. Removing this array allows Snowflake to treat each element as a separate record for ingestion.

Exam trap

Candidates often assume that stripping the outer array will merge all JSON objects into a single large record, rather than correctly identifying that it flattens the array structure.

155
MCQeasy

A consumer has mounted a share from a provider and wants to grant a role in their account the ability to query the shared data. What must the consumer do?

A.Ask the provider to grant SELECT directly to the consumer's role.
B.Grant USAGE on the shared database and schemas, and SELECT on the shared tables or views, to the role.
C.Create a new share in the consumer account that references the provider's share.
D.Nothing, because all roles in the consumer account automatically have access to shared databases.
AnswerB

After creating a database from a share, the consumer must grant privileges on that database to roles that need access. This includes USAGE on the database and schema, and SELECT on the specific tables or views. The consumer controls these grants independently of the provider, so this is the correct action.

Why this answer

Consumers manage access to shared databases using standard GRANT statements within their own account. They grant USAGE on the database and schemas, and SELECT on the shared tables or views, to the roles that need access. Providers cannot grant privileges to consumer roles, and access is not automatic.

Exam trap

The trap here is assuming the provider controls access on the consumer side, when in fact the consumer grants privileges on the mounted database to their own roles.

156
MCQmedium

A data architect is designing a solution that requires zero-copy cloning of a production database for testing purposes. The clone must be created quickly and should not duplicate storage until changes are made. Which Snowflake feature should they use?

A.UNDROP DATABASE
B.CREATE DATABASE ... CLONE
C.CREATE DATABASE ... FROM SHARE
D.CREATE DATABASE ... AS SELECT
AnswerB

The CREATE DATABASE ... CLONE command creates a zero-copy clone of a database. It copies metadata and references the same micro-partitions as the source, so no additional storage is consumed initially. Changes to either the source or the clone create new micro-partitions, ensuring isolation. This meets the requirement for rapid cloning without immediate storage duplication.

Why this answer

CREATE DATABASE ... CLONE performs a zero-copy clone, which duplicates only metadata and references existing micro-partitions. This allows rapid creation of a clone without immediate storage costs.

Subsequent changes to the clone or source create new micro-partitions, preserving isolation. Other options either copy data physically or serve different purposes.

Exam trap

The trap here is assuming that any CREATE DATABASE statement can clone, when only the CLONE keyword provides zero-copy cloning.

157
MCQmedium

What is the primary function of the Snowflake 'Result Cache'?

A.It stores raw data files for faster retrieval.
B.It automatically scales compute resources.
C.It allows queries to return results without using compute resources.
D.It maintains the metadata of the database objects.
AnswerC

When a query is satisfied by the result cache, Snowflake does not activate any warehouse compute. This means the query executes at no cost and with near-zero latency, which is a major advantage for recurring reports and frequently accessed summary data within the Snowflake platform.

Why this answer

The Result Cache stores the output of every query for 24 hours. When a subsequent query matches a previous one exactly (including the data being accessed), Snowflake returns the cached results immediately without using any compute resources. This provides massive performance benefits and cost savings for repeated queries, which are common in dashboards and reporting applications where the underlying data might not change frequently during the day.

Exam trap

Candidates often think the Result Cache uses warehouse compute credits. They forget that the Result Cache is a Cloud Services function that returns data without ever spinning up or using compute warehouses.

158
MCQmedium

An administrator needs to grant the role 'ANALYST' the ability to see all queries executed in the account for auditing purposes. Which privilege should be granted to 'ANALYST'?

A.MONITOR USAGE
B.MANAGE GRANTS
C.SELECT on the QUERY_HISTORY view
D.USAGE on the database
AnswerA

The MONITOR USAGE privilege on the account allows a role to view usage information, including queries executed in the account. Granting this privilege to 'ANALYST' enables them to access the QUERY_HISTORY views and monitor all queries, which is necessary for auditing.

Why this answer

To allow a role to view all queries executed in the account, the MONITOR USAGE privilege must be granted. This privilege provides access to the ACCOUNT_USAGE schema, including the QUERY_HISTORY view, which contains records of all queries. Other privileges like USAGE on a database or MANAGE GRANTS do not grant account-wide query visibility.

Exam trap

The trap here is assuming that SELECT on the QUERY_HISTORY view can be granted directly; ACCOUNT_USAGE views require the MONITOR USAGE privilege instead.

159
MCQmedium

What happens to the performance of a warehouse when multiple users query the same data simultaneously?

A.Performance degrades significantly due to locking.
B.Performance remains consistent due to shared storage.
C.The warehouse must be cloned to allow concurrent access.
D.Each user must have their own dedicated storage.
AnswerB

Because Snowflake's storage layer is decoupled and supports concurrent access, multiple virtual warehouses or users can access the same data without contention. The architecture ensures that each query is independent and isolated, preventing one query from degrading the performance of another, even when querying the exact same tables.

Why this answer

Snowflake's architecture handles concurrent queries by using the metadata from the Cloud Services layer and the underlying micro-partitioning in the Storage layer. Because data is immutable and stored in a shared object store, every query has a consistent view of the data. When multiple users query the same data, the system optimizes reads through its caching mechanisms, ensuring that performance remains stable and predictable regardless of the number of concurrent users.

Exam trap

Candidates often believe that concurrent queries cause performance degradation because they assume shared resources lead to contention, ignoring Snowflake's multi-cluster architecture.

160
MCQhard

Refer to the exhibit. This JSON policy is part of the setup for a Snowflake Storage Integration. What is the architectural purpose of the 'sts:ExternalId' condition in this cross-account IAM trust relationship?

A.It identifies the specific S3 bucket that Snowflake is allowed to access.
B.It prevents the 'confused deputy' problem by ensuring only the correct Snowflake account can assume the role.
C.It maps Snowflake users to specific AWS IAM users for fine-grained access control.
D.It encrypts the data during transit between the cloud provider and Snowflake.
AnswerB

In a multi-tenant environment like Snowflake, the External ID ensures that even if another user knows your AWS Role ARN, they cannot use their own Snowflake account to access your data. AWS requires the External ID provided by Snowflake to match the one in the IAM trust policy, creating a unique and secure handshake between accounts.

Why this answer

The External ID is a security best practice used in cross-account IAM roles to prevent the 'confused deputy' problem. In the Snowflake architecture, it ensures that the cloud provider only allows Snowflake to assume the role if the request includes the specific ID unique to that Snowflake account. This prevents one customer from potentially accessing another customer's cloud resources.

Exam trap

Candidates often assume the External ID is for user authentication or encryption. They miss that it is specifically a security mechanism to prevent the 'confused deputy' security vulnerability.

161
Multi-Selecthard

A data engineer is optimizing a complex query that joins five large tables and includes multiple aggregations. The Query Profile shows significant time spent in the Join and Aggregate nodes, and the engineer wants to reduce the amount of data processed. Which TWO techniques are most appropriate for improving performance in this scenario? (Choose two.)

Select 2 answers
A.Use `EXPLAIN` to inspect the query plan and identify steps that process disproportionately large row counts.
B.Replace all joins with `UNION ALL` to combine the tables into a single result set.
C.Apply filters as early as possible in the query, ideally in a subquery or CTE, to reduce the row count before joins.
D.Increase the warehouse size to a 4X-Large to provide more memory for the joins.
E.Convert all `JOIN` clauses to `CROSS JOIN` to allow the optimizer more flexibility.
AnswersA, C

`EXPLAIN` provides the logical execution plan without running the query, showing operators and estimated costs. By inspecting the plan, the engineer can spot steps like Cartesian joins, unnecessary aggregations, or missing filters that cause large intermediate results. This diagnostic step guides targeted optimizations such as adding predicates or rewriting joins. It is a best practice for understanding where the optimizer is spending effort and where data volume explodes.

Why this answer

Early filtering reduces the number of rows entering joins and aggregations, directly cutting the data volume that flows through the plan. Using `EXPLAIN` reveals which operators process the most rows, allowing targeted fixes. Together, these techniques address the root cause of heavy Join and Aggregate nodes.

Replacing joins with `UNION ALL`, scaling the warehouse, or using `CROSS JOIN` either changes semantics, fails to reduce data volume, or makes the problem worse.

Exam trap

The trap here is thinking that a larger warehouse solves a data-volume problem; scaling compute does not reduce the rows processed by joins and aggregations.

162
MCQhard

Refer to the exhibit. What is the impact of changing the MAX_CONCURRENCY_LEVEL parameter on this warehouse?

A.It increases the number of clusters in the warehouse.
B.It allows each cluster to run more queries simultaneously.
C.It scales the warehouse size (e.g., X-SMALL to SMALL).
D.It disables the auto-scaling capabilities of the warehouse.
AnswerB

Increasing this setting raises the threshold for concurrent query execution on a single cluster. This is beneficial for high-concurrency, low-complexity workloads where you want to maximize the utilization of your compute resources, although it may impact the latency of individual queries if they become resource-starved.

Why this answer

The MAX_CONCURRENCY_LEVEL parameter controls the number of concurrent queries a single cluster can handle before queuing begins. By increasing this value, you allow more queries to run in parallel on the same compute resources. However, this also divides the CPU and memory among more queries, which can lead to individual query performance degradation if the workload is compute-intensive, making it a critical tuning parameter for balancing throughput and performance.

Exam trap

Candidates often assume increasing concurrency improves speed. They forget that resources are finite; increasing concurrent queries on a single cluster can actually slow down each individual query.

163
MCQmedium

A data engineer runs a query that joins a large fact table with a small dimension table. The query takes 12 minutes. The engineer notices that the small dimension table is broadcast to all compute nodes, and the fact table is redistributed across nodes. Which Snowflake feature is primarily responsible for this behavior, and what is its main benefit in this scenario?

A.Virtual warehouse scaling, which adds compute resources to handle the join operation more quickly.
B.Result caching, which stores the query results for subsequent identical queries, reducing execution time.
C.Query optimizer's join strategy selection, which chooses broadcast for small tables to minimize data movement and improve performance.
D.Micro-partitioning, which automatically divides tables into small chunks and enables pruning during scans.
AnswerC

The Snowflake query optimizer analyzes table statistics and determines the most efficient join strategy. For a large fact table joined with a small dimension table, broadcasting the small table to all nodes avoids redistributing the large table, reducing network overhead and speeding up the join. This is a core optimization technique in Snowflake's architecture.

Why this answer

The Snowflake query optimizer evaluates join inputs and selects the most efficient distribution method. When one side of the join is small, broadcasting it to all nodes eliminates the need to redistribute the larger table, reducing network traffic and improving performance. This optimization is automatic and based on table statistics and heuristics.

Exam trap

The trap here is confusing storage optimizations like micro-partitioning with execution-time join strategies chosen by the optimizer.

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

165
MCQmedium

Which feature of Snowflake allows for the rapid creation of a near-zero-copy clone of a database, schema, or table without consuming additional storage?

A.Time Travel
B.Zero-Copy Cloning
C.Data Sharing
D.Materialized Views
AnswerB

Zero-Copy Cloning creates a new object that points to the same underlying micro-partitions as the source. It is 'zero-copy' because no data is actually duplicated upon creation. Any subsequent changes to the clone result in new micro-partitions, keeping the original data and the clone isolated.

Why this answer

Zero-Copy Cloning is a powerful feature that creates a reference to the existing micro-partitions rather than copying the data. This enables near-instantaneous creation of development or testing environments that are identical to production. Since it shares the underlying storage until changes are made, it is extremely storage-efficient and provides a foundation for modern DevOps practices within the Snowflake data platform.

Exam trap

Candidates often assume cloning duplicates data and increases storage costs. They fail to realize that Zero-Copy Cloning creates metadata references to existing micro-partitions, resulting in zero additional storage usage.

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

167
MCQmedium

A finance analyst runs a monthly report that aggregates 18 months of sales data. The report executes 40 times per day, and each run currently takes 4 minutes on a medium warehouse. The underlying tables are loaded once nightly. Which approach most effectively reduces compute cost for this workload?

A.Enable the result cache by ensuring the query text and session context are identical across runs.
B.Set the warehouse to auto-suspend after 60 seconds to avoid idle credits.
C.Create a separate virtual warehouse for the analyst and enable multi-cluster scaling.
D.Resize the warehouse to 4X-Large so each run finishes faster.
AnswerA

Because the tables change only nightly, identical query text run repeatedly during the day can be served from the result cache at no compute cost after the first execution. Keeping the SQL text and relevant session parameters consistent allows cache reuse, cutting 39 of 40 daily executions to near-zero credits. This is the most direct cost reduction for a repetitive, read-only report.

Why this answer

The tables are static during the business day, so the 40 daily executions read identical data. Ensuring identical query text and session context lets Snowflake serve subsequent runs from the result cache without provisioning compute, eliminating nearly all of the recurring cost. Resizing, auto-suspend tuning, and multi-cluster scaling change resource behavior but do not remove the redundant scans.

Exam trap

The trap here is treating a speed problem as the issue, when the workload is actually a redundancy problem that result caching solves for free.

168
Multi-Selecthard

A provider is preparing to share data with a consumer using a direct share. The provider wants to ensure that the consumer can query a specific table and also see any future columns added to that table without additional grants. Which two actions must the provider take? (Choose two.)

Select 2 answers
A.Grant USAGE on the database and schema containing the table to the share.
B.Grant REFERENCES on the table to the share to allow future columns to be visible.
C.Grant SELECT on each future column to the share as they are added.
D.Grant SELECT on the table to the share.
E.Create a secure view that selects all columns from the table and grant SELECT on the view to the share.
AnswersA, D

Granting USAGE on the database and schema to the share is required so that the consumer can access the schema and see the table. Without these grants, the consumer cannot navigate to the table even if SELECT is granted on the table itself. This is a foundational step for any share.

Why this answer

To share a table and automatically include future columns, the provider must grant USAGE on the database and schema to the share, and grant SELECT on the table to the share. SELECT on a table applies to all columns, including those added later. No column-level grants are needed.

A secure view is not required for this purpose.

Exam trap

The trap here is thinking that future columns require additional grants or a view, when in fact a table-level SELECT grant covers all current and future columns.

169
MCQeasy

Which statement best describes the 'Snowflake Data Cloud' architecture's approach to scalability?

A.It requires manual sharding of data across compute nodes.
B.Storage and compute are scaled together as a single unit.
C.It supports independent scaling of compute and storage.
D.Scalability is limited by the physical hardware of the server.
AnswerC

This is the core architectural advantage of Snowflake. You can increase compute resources during peak reporting hours and suspend them afterwards, all while your data remains securely and durably stored in the cloud object storage layer, independent of the warehouse state.

Why this answer

Snowflake's architecture features a unique separation of storage and compute. This allows storage to grow independently as data is added and compute resources to be scaled independently as workloads change. Because compute resources (virtual warehouses) can be added, removed, or resized instantly without affecting the data in storage, Snowflake provides near-infinite, elastic scalability that is perfectly suited for modern, high-demand cloud analytical applications.

Exam trap

Candidates frequently confuse the multi-cluster warehouse scaling out with scaling up, or mistakenly believe storage scaling requires manual intervention or downtime.

170
MCQhard

A Snowflake account has a virtual warehouse that is configured with AUTO_SUSPEND = 60 seconds and AUTO_RESUME = TRUE. A user runs a query that takes 5 minutes to complete. After the query finishes, the warehouse remains idle for 2 minutes and then suspends. During the idle period, what charges apply?

A.No charges apply during the idle period because the warehouse is not processing queries.
B.Charges apply only if the warehouse is resumed during the idle period.
C.Charges apply for the entire 2-minute idle period because the warehouse is still running.
D.Charges apply only for the first 60 seconds of idle time, as per the AUTO_SUSPEND setting.
AnswerC

Snowflake bills for the time a warehouse is running, including idle time before auto-suspension. With AUTO_SUSPEND set to 60 seconds, the warehouse suspends after 60 seconds of inactivity. However, the scenario states it remains idle for 2 minutes before suspending, which implies the auto-suspend setting is not taking effect as expected. Regardless, any time the warehouse is running, credits are consumed. So charges apply for the idle period until suspension.

Why this answer

Snowflake charges for a virtual warehouse based on the time it is running, regardless of whether it is actively processing queries. During the idle period before auto-suspension, the warehouse continues to consume credits. The AUTO_SUSPEND setting controls how long the warehouse remains running after the last query, but any time it is running, charges apply.

Therefore, the entire idle period incurs charges until the warehouse suspends.

Exam trap

The trap here is thinking that idle warehouses do not incur charges, but Snowflake bills for running warehouses even when idle.

171
MCQmedium

A Snowflake administrator configures a storage integration named EXT_S3_INT so that an external stage can read Parquet files from an Amazon S3 bucket. After creating the integration, the administrator runs DESCRIBE INTEGRATION EXT_S3_INT and copies the STORAGE_AWS_IAM_USER_ARN and STORAGE_AWS_EXTERNAL_ID values. What must the administrator do with these two values to allow Snowflake to access the bucket?

A.Attach them to an AWS IAM role trust policy that permits the Snowflake-generated IAM user to assume the role.
B.Register them with an AWS KMS key policy so Snowflake can decrypt the Parquet files at rest.
C.Store them as a secret in Snowflake and reference the secret from the external stage definition.
D.Add them to the S3 bucket policy as principal and condition values in the bucket's resource statement.
AnswerA

The STORAGE_AWS_IAM_USER_ARN identifies the Snowflake-owned IAM user that assumes the role, and STORAGE_AWS_EXTERNAL_ID is the unique external ID that must appear in the role's trust policy condition. Placing both in the trust relationship of the AWS IAM role lets Snowflake authenticate to the bucket without embedding long-term AWS keys in Snowflake.

Why this answer

Storage integrations let Snowflake assume an AWS IAM role instead of storing AWS credentials. The IAM user ARN is the principal that assumes the role, and the external ID is a condition that prevents the confused-deputy problem. Both must be configured in the role's trust policy in AWS, after which the integration can be referenced by an external stage to read the S3 data.

Exam trap

The trap here is assuming the generated IAM user ARN and external ID belong in an S3 bucket policy or a Snowflake secret rather than in the AWS IAM role trust relationship.

172
MCQmedium

When designing a role-based access control (RBAC) model, which THREE of the following are recommended best practices?

A.Grant privileges to roles, not directly to users.
B.Follow the principle of least privilege.
C.Implement a hierarchical role structure.
D.Use the ACCOUNTADMIN role for daily data analysis.
E.Assign all users the same 'PUBLIC' role for simplicity.
AnswerA, B, C

Directly granting privileges to users makes auditing and management extremely difficult. Assigning privileges to roles creates a centralized and reusable set of permissions. When a user changes roles, you simply update their role assignment rather than manually modifying permissions on every individual object in the system.

Why this answer

A robust RBAC model relies on hierarchical structures to simplify management and minimize errors. By granting privileges to roles rather than users, and nesting roles logically, you create a scalable security architecture. These best practices ensure that permissions are easy to audit, follow the principle of least privilege, and prevent 'privilege creep,' where users accumulate excess access rights that are never revoked over time as their roles change.

Exam trap

Candidates often mistakenly believe that assigning privileges directly to users is acceptable for small teams. This leads to poor scalability and makes auditing permissions extremely difficult as the organization grows.

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

174
MCQmedium

An administrator is configuring a virtual warehouse for a data science team that runs unpredictable, long-running training queries. The team wants the warehouse to shut down automatically when idle to save credits, but they also want queries to start immediately when a new request arrives without waiting for a manual resume. Which configuration should the administrator apply?

A.Set the warehouse to auto-suspend and enable multi-cluster scaling to ensure queries start immediately.
B.Configure the warehouse to auto-suspend and disable auto-resume so the team controls when the warehouse starts.
C.Leave the warehouse running permanently and rely on the Query Result Cache to reduce credit consumption.
D.Set the warehouse to auto-suspend after a short idle period and rely on auto-resume to start it when a query is submitted.
AnswerD

Auto-suspend stops the warehouse after the specified idle period, eliminating credit consumption while no queries run. Auto-resume is enabled by default and starts the warehouse automatically when a new query arrives, so the team gets both cost savings and immediate query start without manual intervention. This combination directly satisfies the stated requirements.

Why this answer

Auto-suspend stops a virtual warehouse after a defined idle period, preventing credit usage when no queries are running. Auto-resume, which is enabled by default, automatically starts the warehouse when a new query is submitted. Together they deliver the desired behavior: the warehouse shuts down when idle and starts immediately on demand, with no manual resume step.

Exam trap

The trap here is believing that disabling auto-resume gives more control, when in fact it forces manual intervention and delays query start.

175
Multi-Selectmedium

A data engineer is writing a transformation that reads a VARIANT column containing nested arrays of objects and needs to produce one output row per array element. Which TWO Snowflake features or functions should be used to accomplish this? (Choose two.)

Select 2 answers
A.Use the VALUE column returned by FLATTEN to access each element's contents.
B.Use the LATERAL FLATTEN construct with the input argument set to the VARIANT array path.
C.Use OBJECT_CONSTRUCT to iterate over the array and emit one row per element.
D.Use PARSE_JSON to convert the array into a relational table with one column per object attribute.
E.Use GET_PATH to extract the array and then join it to a sequence generator to produce rows.
AnswersA, B

When FLATTEN expands an array, the VALUE column holds the element itself, which for an array of objects is a VARIANT object. Referencing VALUE and then using the colon path syntax extracts individual attributes from each object. This is how the exploded rows are turned into relational columns.

Why this answer

FLATTEN is the built-in table function that turns a VARIANT array into rows, and when applied laterally it is evaluated per input row. The VALUE column of the FLATTEN output holds each array element, which for an array of objects is itself a VARIANT object that can be dereferenced with the colon path syntax. Together they transform nested arrays into a relational shape without manual iteration.

Exam trap

The trap here is reaching for JSON parsing or object construction functions to reshape nested data, when row generation from an array is specifically the job of the FLATTEN table function.

176
Multi-Selectmedium

A Snowflake administrator is configuring a new virtual warehouse to support a data science team that runs occasional, complex queries on large datasets. The team requires fast performance and minimal latency. Which TWO warehouse configuration settings should the administrator consider to optimize performance for this workload? (Choose two.)

Select 2 answers
A.Configure the warehouse to use a larger number of clusters with scaling policy set to ECONOMY.
B.Enable multi-cluster warehouse with a minimum cluster count of 2.
C.Set AUTO_SUSPEND to a low value (e.g., 60 seconds) to minimize idle costs.
D.Enable the Query Acceleration Service (QAS) for the warehouse.
E.Set the warehouse size to X-Large or larger.
AnswersD, E

The Query Acceleration Service (QAS) offloads portions of query processing to shared compute resources, improving performance for queries with large scans and filters. It is beneficial for occasional, complex queries on large datasets, as it can reduce execution time without resizing the warehouse. Enabling QAS is a valid optimization for this scenario.

Why this answer

For occasional complex queries on large datasets, increasing warehouse size provides more compute power for faster processing. Additionally, enabling the Query Acceleration Service (QAS) can offload eligible query parts to shared resources, further improving performance. Multi-cluster warehouses target concurrency, not single-query speed, and AUTO_SUSPEND settings affect cost, not performance.

Exam trap

The trap here is confusing concurrency scaling (multi-cluster) with performance scaling for individual queries, which is achieved through larger warehouse sizes or QAS.

177
MCQhard

A company has a table named customer_orders that contains a column storing the customer's full name. A masking policy has been applied to that column. The policy uses CURRENT_ROLE() to compare the executing role against a list of roles allowed to see the raw value. A user with a role that is not in the allowed list runs a query that includes the column in an ORDER BY clause. What does the user see?

A.The user sees the raw value in the result set but the sort is performed on the masked value.
B.The user sees the masked value in the result set and the sort is performed on the masked value.
C.The user sees the masked value in the result set, but the sort is performed on the raw value because ORDER BY is evaluated before masking.
D.The query fails because masking policies cannot be applied to columns used in ORDER BY.
AnswerB

When a masking policy is attached to a column, every reference to that column in a query is replaced by the policy expression for users who are not authorized to see the raw data. This includes references in the select list, WHERE clause, and ORDER BY clause. Therefore the user sees the masked value and the ordering is computed on the masked representation, not the original name.

Why this answer

A masking policy rewrites every reference to the protected column for unauthorized users, including references in ORDER BY. The user therefore sees the masked value and sorting is based on that masked value. The policy is not bypassed by placing the column in a sort clause.

Exam trap

The trap here is believing that a masked column can still influence sorting on its raw value, when the policy replaces the column reference everywhere.

178
MCQeasy

A Snowflake administrator needs to provide a data analyst with the ability to read data from a specific table but prevent the analyst from seeing any personally identifiable information (PII) columns. The administrator decides to use a masking policy. Which statement accurately describes the behavior of a masking policy in Snowflake?

A.A masking policy permanently replaces the sensitive data in the table with masked values for all users.
B.A masking policy is applied at the table level and hides entire rows that contain sensitive data.
C.A masking policy can only be applied to columns of type VARCHAR and not to numeric or date columns.
D.A masking policy is applied at the column level and can conditionally alter the data returned based on the user's role.
AnswerD

Masking policies in Snowflake are column-level security features that can transform data at query time based on the role of the user executing the query. They allow conditional masking, such as showing full data to privileged roles and masked data to others. This precisely matches the administrator's requirement to hide PII from the analyst while allowing access to other columns.

Why this answer

Masking policies in Snowflake are column-level security objects that dynamically mask data based on the user's role. They allow the administrator to hide PII from the analyst while still granting access to the table. The policy can be conditional, so different roles see different values.

This meets the requirement without altering the stored data.

Exam trap

The trap here is confusing masking policies with row access policies or believing that masking alters the stored data.

179
MCQeasy

A Snowflake user runs a SELECT statement against a large fact table. The query returns results in under a second, and the query profile shows that no warehouse was started. Which Snowflake feature most likely served the result?

A.The result set persisted by the user's open session.
B.The metadata cache maintained by the Cloud Services layer.
C.The local disk cache on the virtual warehouse.
D.The Snowflake Query Result Cache in the Cloud Services layer.
AnswerD

The Query Result Cache persists the results of executed queries in the Cloud Services layer for up to 24 hours. If an identical query is reissued and the underlying data has not changed, Snowflake returns the cached result without provisioning a warehouse, which explains the sub-second response and the absence of a warehouse start.

Why this answer

The Query Result Cache is a Cloud Services layer feature that stores the output of completed queries for up to 24 hours. When an identical query is submitted and the micro-partitions referenced by the original query are unchanged, Snowflake returns the cached result directly, bypassing the warehouse entirely. This is why the query completed quickly with no warehouse start.

Exam trap

The trap here is confusing the Query Result Cache, which persists query output in Cloud Services, with a warehouse-local data cache that requires compute to be running.

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

181
MCQmedium

A data engineer needs to transform semi-structured JSON data stored in a VARIANT column into a relational table. The JSON contains nested arrays and objects. Which Snowflake feature should be used to flatten the arrays into separate rows while preserving the parent-child relationship?

A.PARSE_JSON
B.LATERAL FLATTEN
C.ARRAY_AGG
D.OBJECT_CONSTRUCT
AnswerB

LATERAL FLATTEN is a table function that expands nested arrays or objects in a VARIANT column into multiple rows. When used in the FROM clause with a lateral join, it preserves the correlation with the parent row, allowing each element of the array to become a separate row while retaining other columns from the original row. This is the standard method for normalizing semi-structured data.

Why this answer

LATERAL FLATTEN is designed to explode nested arrays and objects into rows while maintaining the association with the source row. It is the correct tool for transforming semi-structured data into a relational format. The other functions either construct objects, aggregate into arrays, or parse strings, none of which expand arrays into multiple rows.

Exam trap

The trap here is confusing functions that manipulate semi-structured data with those that generate rows; only LATERAL FLATTEN produces the row expansion needed.

182
MCQmedium

Which Snowflake feature allows for the creation of a 'zero-copy' clone of a database or table?

A.Data Replication
B.Zero-copy Cloning
C.Table Partitioning
D.Time Travel
AnswerB

Zero-copy cloning uses metadata pointers to reference existing micro-partitions. This means no data is physically copied, allowing for the creation of clones in seconds regardless of the size of the source object. It is a fundamental feature for agile development and safe production testing in Snowflake.

Why this answer

Cloning in Snowflake creates a metadata-only reference to the existing data. Because it does not copy the actual underlying micro-partitions, it is instantaneous and incurs no additional storage costs until the data in the clone is modified. This is a powerful feature for development, testing, and production environments, allowing users to create fully isolated, writable copies of production data in seconds without duplicating large datasets.

Exam trap

Candidates often confuse zero-copy cloning with 'Time Travel' or 'Fail-safe'. While they relate to data history, cloning is a distinct feature for creating new, independent objects from snapshots.

183
MCQmedium

What is the role of the 'Search Optimization Service' in Snowflake?

A.It speeds up complex join operations.
B.It accelerates point-lookup queries.
C.It enables automatic data partitioning.
D.It optimizes storage space for tables.
AnswerB

Point-lookup queries involve filtering a table to return a small subset of rows based on a specific key value. The Search Optimization Service maintains an index that allows these queries to bypass large-scale scanning, returning results much faster than a standard scan-based query execution would.

Why this answer

The Search Optimization Service is specifically designed to improve the performance of point-lookup queries on large tables. By creating a persistent search index, it allows Snowflake to quickly identify specific rows that match a filter, even in massive datasets. This is essential for applications requiring sub-second response times for single-record lookups, which would otherwise require full table scans that are expensive and slow in traditional analytical environments.

Exam trap

Candidates often mistakenly believe the Search Optimization Service is for general query performance or aggregate functions. It is strictly optimized for point-lookup queries (finding one or few specific records).

184
MCQmedium

What is the benefit of using clustering keys for a table that is queried using range filters?

A.It eliminates the need for a virtual warehouse.
B.It enables efficient partition pruning.
C.It forces the query to use the result cache.
D.It speeds up DML operations like INSERT.
AnswerB

Clustering keys ensure that data within a range is grouped into the same or adjacent micro-partitions. This allows the query optimizer to use metadata to prune (skip) micro-partitions that do not contain data within the requested range, significantly reducing the amount of data read from persistent storage.

Why this answer

Range filters require scanning segments of data defined by start and end values. Without proper clustering, the engine must perform a full table scan. With clustering keys, the table data is physically sorted or organized into micro-partitions based on the key values.

This allows the query optimizer to identify and read only the specific micro-partitions that fall within the range, drastically decreasing I/O and improving query speed for range-based analytical tasks.

Exam trap

Candidates often confuse clustering with sorting data for display purposes. They miss the core mechanism of 'partition pruning,' which is the specific performance benefit of clustering in Snowflake's architecture.

185
MCQhard

Which THREE of the following are benefits of Snowflake's micro-partitioning architecture?

A.Enables efficient data pruning during query execution.
B.Supports traditional B-tree indexing for faster lookups.
C.Allows for automatic clustering of data.
D.Provides high concurrency without requiring locking.
E.Requires manual vacuuming to reclaim disk space.
AnswerA, C, D

Because micro-partitions store metadata about the ranges of values within them, the Cloud Services layer can easily prune entire partitions that do not contain data relevant to the query's filters, drastically reducing the amount of data that needs to be scanned and processed by the compute layer.

Why this answer

Micro-partitions are the core unit of storage in Snowflake. Because they are immutable and contain metadata (like min/max values), Snowflake can perform efficient pruning, skipping irrelevant data during query execution. This architecture allows for automatic clustering, high concurrency without locking, and efficient DML operations.

Understanding these benefits is crucial for optimizing Snowflake performance, as it explains why traditional indexing strategies are largely unnecessary and why Snowflake handles large-scale analytical workloads so efficiently.

Exam trap

Candidates often include 'indexes' as a benefit of micro-partitioning. Snowflake does not use traditional indexes, so selecting an option mentioning indexes is a common fatal error.

186
MCQeasy

Which Snowflake feature allows a user to retrieve the results of a query that was executed 10 minutes ago without consuming additional virtual warehouse credits?

A.Metadata Cache
B.Virtual Warehouse Local Cache
C.Result Set Cache
D.Search Optimization Service
AnswerC

Result Set Cache is a global cache that persists query results for 24 hours. When a query is repeated and the data is unchanged, Snowflake retrieves the result directly from this cache without starting or utilizing a virtual warehouse, effectively making the query execution free of charge.

Why this answer

The Result Set Cache stores the results of queries for 24 hours. If the same query is executed again, the underlying data has not changed, and the query meets certain criteria, Snowflake returns the result directly from the cache. This bypasses the virtual warehouse, resulting in faster response times and zero compute cost.

Exam trap

Test-takers frequently mistake time travel for the result set cache, confusing historical data querying with the zero-cost caching of identical recent queries.

187
MCQeasy

What is the primary purpose of a 'Tag' in Snowflake from a data governance perspective?

A.To increase query performance for joins.
B.To identify and track sensitive data for compliance.
C.To define the access level of a user.
D.To compress data for storage savings.
AnswerB

Tags are essential for data discovery and governance. They allow administrators to mark tables or columns (e.g., 'PII' = 'True') and then use account-level views to query those tags. This makes it easy to audit sensitive data locations and verify compliance with internal and external policies.

Why this answer

Tags in Snowflake are used to label and categorize data objects for governance, reporting, and cost allocation. By applying a tag to a table or column, an administrator can track sensitive data across the entire account. This allows for automated reporting on data lineage and compliance, enabling teams to quickly identify where PII or other critical information resides for regulatory auditing and risk management purposes.

Exam trap

Candidates frequently confuse tags with access control privileges or data masking policies, incorrectly believing that tags themselves restrict access rather than just labeling or categorizing data objects for governance.

188
Multi-Selectmedium

Which TWO of the following statements accurately describe the functionality of Snowflake's separation of storage and compute architecture?

Select 2 answers
A.Storage costs are independent of the warehouse size.
B.Scaling a warehouse requires reloading all data.
C.Compute resources can be scaled up or out without data movement.
D.Data is physically tied to specific compute clusters.
E.Storage is only accessible during warehouse uptime.
AnswersA, C

Because storage is decoupled from compute, customers pay for the amount of data stored regardless of whether a virtual warehouse is currently active or what size it is. This allows companies to keep vast amounts of historical data without paying for expensive compute resources constantly.

Why this answer

Snowflake's architecture decouples storage from compute, allowing each to scale independently. This is foundational to the platform, enabling users to resize compute resources instantly without moving data. Understanding this model is essential because it avoids the classic 'resource contention' issue found in traditional databases where storage and compute are bound, allowing for optimized cost management and highly elastic performance for diverse analytical workloads across the organization.

Exam trap

Candidates often assume that increasing warehouse size affects storage costs, or that scaling compute requires moving underlying data blocks across physical hardware nodes in the cloud.

189
MCQmedium

A Snowflake provider wants to share a secure view with a consumer. The view is defined on a table in a different database than the one containing the view, and the provider must ensure the consumer cannot access the underlying base table directly. Which action should the provider take?

A.Grant USAGE on the database and schema containing the secure view, and SELECT on the secure view, to the share.
B.Grant USAGE on the database containing the base table to the share.
C.Add the base table to the share and rely on the secure view to restrict access.
D.Create a new role with access to the base table and grant that role to the share.
AnswerA

To share a secure view, the provider must grant USAGE on the database and schema that contain the view, and SELECT on the view itself to the share. The base table's database does not need to be shared because the secure view runs with the owner's rights, and the consumer only needs access to the view. This keeps the base table private.

Why this answer

When sharing a secure view that references objects in other databases, the provider must grant USAGE on the database and schema that contain the view, and SELECT on the view, to the share. The base table's database is not shared, and the secure view's owner's rights allow access to the base table without exposing it to the consumer.

Exam trap

The trap here is assuming that the base table's database must also be shared so the view can access it, but secure views execute with the owner's rights and do not require the consumer to have access to the base objects.

190
MCQhard

A Snowflake user executes a complex query that joins a large fact table with several dimension tables. The query takes longer than expected. The user notices that the query plan shows a significant amount of data being spilled to local disk. The warehouse size is currently MEDIUM. What is the most likely cause of the spillage, and what is the recommended action?

A.The query is experiencing contention due to multiple concurrent queries; setting the warehouse to multi-cluster will reduce spillage.
B.The query is too complex for the MEDIUM warehouse; increasing the warehouse size to LARGE will provide more memory and reduce spillage.
C.The query is spilling due to a lack of local disk space on the warehouse; increasing the warehouse size will provide more local disk.
D.The query is spilling because the result cache is disabled; enabling the result cache will prevent spillage.
AnswerB

Spillage to local disk occurs when the warehouse's memory is insufficient to hold intermediate results. Increasing the warehouse size provides more memory per node, which can reduce or eliminate spillage. The MEDIUM warehouse may be undersized for the query's working set. Scaling up to LARGE is a common remedy for memory-intensive operations like large joins and aggregations.

Why this answer

Spillage to local disk indicates that the query's intermediate results exceed the available memory in the warehouse. Increasing the warehouse size provides more memory per node, which can accommodate larger working sets and reduce spillage. This is the recommended action when spillage is observed on a MEDIUM warehouse for a complex query.

Exam trap

The trap here is assuming that multi-cluster warehouses or result caching can solve spillage, when the real issue is per-query memory.

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

192
MCQeasy

A user with the role 'SYSADMIN' wants to grant the privilege to create databases to a custom role 'DB_CREATOR'. Which command should the SYSADMIN execute?

A.GRANT CREATE DATABASE ON DATABASE mydb TO ROLE DB_CREATOR;
B.GRANT CREATE DATABASE TO ROLE DB_CREATOR;
C.GRANT USAGE ON DATABASE mydb TO ROLE DB_CREATOR;
D.GRANT CREATE DATABASE ON ACCOUNT TO ROLE DB_CREATOR;
AnswerD

The CREATE DATABASE privilege is granted at the account level. SYSADMIN has the authority to grant this privilege to other roles. The correct syntax is GRANT CREATE DATABASE ON ACCOUNT TO ROLE DB_CREATOR; This allows the role to create databases within the account.

Why this answer

The CREATE DATABASE privilege is an account-level privilege, so it must be granted with the ON ACCOUNT clause. The SYSADMIN role has the authority to grant this privilege. The correct command is GRANT CREATE DATABASE ON ACCOUNT TO ROLE DB_CREATOR;

Exam trap

The trap here is omitting the ON ACCOUNT clause or trying to grant on a database object, which is invalid for account-level privileges.

193
MCQmedium

A data engineering team is loading a 500 GB CSV file into a Snowflake table using the COPY command. They notice that the load is taking longer than expected and the warehouse is showing high CPU utilization. Which of the following is the MOST likely cause for the slow performance?

A.The COPY command is using a single thread by default and should be configured for multi-threading.
B.The CSV file contains too many columns, causing parsing overhead.
C.The warehouse size is too small and should be increased to handle the file size.
D.The file is too large for a single COPY command and should be split into smaller files.
AnswerD

Snowflake recommends splitting large files into multiple smaller files (typically 100-250 MB compressed) to enable parallel loading. A single large file cannot be processed in parallel, causing one thread to handle the entire load, leading to high CPU on a single node and longer load times. Splitting the file allows the warehouse to distribute the load across multiple nodes.

Why this answer

For optimal load performance, Snowflake recommends splitting large data files into multiple smaller files (100-250 MB compressed) to allow parallel loading across the warehouse nodes. A single large file cannot be parallelized, leading to slower loads and potential resource contention. Increasing warehouse size or tweaking other parameters does not address the fundamental limitation of loading a single large file.

Exam trap

The trap here is assuming that increasing warehouse size will always solve slow data loading, when the real bottleneck is often file size and lack of parallelism.

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

195
MCQhard

A user runs a query that filters on a column with a very high cardinality, such as a timestamp with millisecond precision. The table is extremely large and is not clustered. What is the most likely impact on query performance?

A.The query will scan all micro-partitions because pruning is ineffective for high-cardinality columns.
B.The query will use the search optimization service to quickly find matching rows.
C.The query will benefit from the query result cache because the filter is highly selective.
D.Snowflake will automatically create a clustering key on the high-cardinality column to improve pruning.
AnswerA

Without clustering, Snowflake relies on natural micro-partition pruning based on metadata. For a high-cardinality column, the min/max ranges in each micro-partition overlap significantly, so pruning becomes ineffective. The query must scan most or all micro-partitions, leading to poor performance. This is a common issue with unclustered, high-cardinality filter columns.

Why this answer

For a large, unclustered table, filtering on a high-cardinality column like a millisecond timestamp leads to ineffective micro-partition pruning. Snowflake's pruning relies on min/max metadata, and high-cardinality columns have wide, overlapping ranges across micro-partitions. As a result, the query scans most or all micro-partitions, causing poor performance.

Clustering or search optimization could help, but neither is present here.

Exam trap

The trap here is assuming that Snowflake automatically optimizes or clusters high-cardinality columns, when in fact pruning becomes ineffective without explicit clustering or search optimization.

196
MCQmedium

An administrator discovers that a former employee's user account still exists and is still granted the ANALYST_ROLE. The administrator needs to immediately prevent the account from authenticating while preserving the account and its historical query metadata for an ongoing audit. Which action should the administrator take?

A.Run ALTER USER ... SET DISABLED = TRUE.
B.Run DROP USER on the former employee's account.
C.Run ALTER USER ... SET PASSWORD = NULL.
D.Run REVOKE ROLE ANALYST_ROLE FROM USER on the former employee's account.
AnswerA

Setting DISABLED = TRUE on a user prevents that user from authenticating to Snowflake while leaving the account, its grants, and its metadata intact. This is the documented way to suspend access immediately during an investigation or offboarding without losing audit history, and it can be reversed later if needed by setting DISABLED = FALSE.

Why this answer

Disabling a user with ALTER USER ... SET DISABLED = TRUE immediately blocks authentication while keeping the account, its grants, and its metadata available for audit. Dropping the user or altering credentials does not preserve the account in the desired state, and revoking a role only removes one privilege path rather than blocking sign-in.

Exam trap

The trap here is equating credential removal with account disablement, when Snowflake provides a dedicated DISABLED property that blocks all authentication methods.

197
MCQeasy

Which of the following describes the correct order of precedence for role inheritance in Snowflake?

A.Object-level privileges override role-level inheritance.
B.Privileges are inherited only from the ACCOUNTADMIN role.
C.Parent roles inherit all privileges granted to their child roles.
D.Child roles always inherit the privileges of the parent role.
AnswerC

In Snowflake's hierarchical model, when a role is granted to another, the parent role automatically inherits all privileges assigned to the child role. This allows administrators to manage permissions efficiently by building chains of roles that correspond to the structural requirements of the organization's data access needs.

Why this answer

Snowflake utilizes a hierarchical RBAC model where privileges are additive. When a role is granted to another role, the parent role inherits all privileges assigned to the child role. This design allows for the creation of functional roles that map to business units or job tasks, ensuring that permissions are managed efficiently and transparently throughout the entire organizational structure of the account.

Exam trap

Candidates frequently reverse role inheritance direction, incorrectly assuming child roles inherit privileges from parent roles instead of the reverse.

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

199
Multi-Selecthard

To publish a data listing on the Snowflake Marketplace and make it available to all Snowflake customers, which TWO requirements must the provider fulfill?

Select 2 answers
A.The provider must have a Business Profile that has been approved by Snowflake.
B.The provider must use a Business Critical edition account or higher.
C.The provider must agree to the Snowflake Provider and Marketplace Terms.
D.The provider must pay an annual Marketplace listing fee of $5,000.
E.The provider must share the data exclusively through the Marketplace and not through Direct Shares.
AnswersA, C

A Business Profile is a prerequisite for Marketplace participation. It includes details about the company, its contact information, and its data offerings. Snowflake reviews these profiles to ensure providers meet quality and professional standards, which protects the integrity of the Marketplace and provides consumers with confidence in the data they acquire.

Why this answer

Publishing to the Snowflake Marketplace is a formal process that requires more than just technical setup. Providers must have a verified business profile to establish trust and must adhere to Snowflake's provider policies. These requirements ensure that the Marketplace remains a high-quality environment for data consumers and that providers are legitimate entities capable of supporting their data offerings.

Exam trap

Candidates often assume technical configuration is sufficient, ignoring the administrative and legal requirements like a Snowflake-approved business profile and formal agreement to the Provider Terms.

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

201
MCQeasy

Which of the following describes the purpose of 'Time Travel' from a data governance perspective?

A.To improve query performance by caching historical results.
B.To provide a mechanism for restoring deleted or altered data.
C.To hide sensitive data from users who do not have access.
D.To manage the lifecycle of virtual warehouses automatically.
AnswerB

Time Travel enables users to query data as it existed at any point within the retention period. This allows for the easy recovery of dropped tables or modified rows, providing an essential layer of protection against accidental data loss and supporting organizational data integrity and compliance requirements.

Why this answer

Time Travel allows for the recovery of data that was accidentally deleted or modified, serving as a critical safety net for data governance. By enabling the retention of historical data, Snowflake empowers administrators to restore states after human error, minimizing data loss and operational downtime. This functionality is essential for maintaining data integrity and business continuity, ensuring that the organization can reliably recover from unintended data lifecycle events without needing to restore from full backups.

Exam trap

Candidates often confuse Time Travel with disaster recovery or full system backups, failing to recognize that its primary design purpose is the quick recovery of accidentally deleted, updated, or dropped database objects.

202
MCQmedium

A Snowflake user is designing a table to store semi-structured data from JSON logs. The user wants to query specific fields within the JSON efficiently and also retain the ability to query the entire JSON object. The user also wants to minimize storage costs. Which approach should the user take?

A.Store the JSON as a string in a VARCHAR column.
B.Store the JSON in an external stage and query it using external tables.
C.Shred the JSON into separate relational columns for each field.
D.Store the entire JSON object in a single VARIANT column.
AnswerD

Storing JSON in a VARIANT column allows Snowflake to automatically optimize storage by compressing and storing the JSON in a columnar format internally. Snowflake also extracts frequently accessed paths and stores them as separate micro-partition columns, which can improve query performance for those paths. This approach retains the full JSON object for flexible querying while minimizing storage costs due to Snowflake's automatic optimization. It is the recommended way to store semi-structured data.

Why this answer

Storing JSON in a VARIANT column leverages Snowflake's automatic optimization for semi-structured data, including columnar storage and path extraction. This provides efficient querying of specific fields while retaining the full JSON object, and it minimizes storage costs through compression and automatic micro-partition optimization. Other approaches either increase storage costs, reduce flexibility, or do not utilize Snowflake's native optimizations.

Exam trap

The trap here is assuming that shredding JSON into relational columns is always more efficient, when in fact VARIANT storage is optimized for semi-structured data and can be more cost-effective and flexible.

203
MCQhard

A data steward needs to ensure that a column containing email addresses is masked for all users except those with the role 'COMPLIANCE_OFFICER'. The masking should show a fixed string '****' for unauthorized users. Which Snowflake feature should be used?

A.Masking policy
B.Object tagging
C.Secure view
D.Row access policy
AnswerA

A masking policy is a schema-level object that can be applied to a column to dynamically mask its data based on the user's role. You can define a policy that returns '****' for all roles except 'COMPLIANCE_OFFICER'. This precisely meets the requirement of column-level masking for unauthorized users.

Why this answer

A masking policy in Snowflake allows column-level security by dynamically masking data based on the user's role or other conditions. By applying a masking policy to the email column that returns '****' for all roles except 'COMPLIANCE_OFFICER', the data steward ensures that only authorized users see the actual email addresses. This is the correct feature for column-level masking.

Exam trap

The trap here is confusing row access policies with masking policies; row access policies filter rows, not mask column values.

204
MCQmedium

A user wants to create a table that automatically stays up-to-date with a complex transformation from a source table. The transformation involves multiple joins and aggregations. Which Snowflake object is best suited for this, assuming the user prioritizes ease of management and low latency?

A.Materialized View
B.Dynamic Table
C.Standard View
D.External Table
AnswerB

Dynamic tables allow users to define the results of a query as a table and specify a 'target lag' for freshness. Snowflake automatically handles the complex refresh logic, including joins and aggregations, making it the most efficient and manageable way to handle continuously updated, complex data transformations.

Why this answer

Dynamic Tables represent a shift toward declarative data engineering in Snowflake. Unlike Materialized Views, which have strict limitations on joins and functions, or Tasks/Streams, which require manual orchestration, Dynamic Tables automatically manage the refresh process based on a target lag, simplifying the management of complex data pipelines.

Exam trap

Test-takers often confuse Materialized Views with Dynamic Tables, forgetting that Materialized Views have strict join limitations while Dynamic Tables handle complex transformations seamlessly.

205
MCQmedium

An organization requires that specific sensitive columns in a table be masked for all users except those in the 'DATA_STEWARD' role. Which mechanism should the architect implement to enforce this policy efficiently?

A.Apply a row-level security policy to the table.
B.Create secure views that use a CASE statement to filter columns.
C.Apply a masking policy using the IS_ROLE_IN_SESSION function.
D.Use data replication to create a separate table for stewards.
AnswerC

Dynamic Data Masking policies are the native Snowflake feature for this requirement. Using IS_ROLE_IN_SESSION allows the policy to check the current session's role effectively. This is the standard, scalable approach for enforcing column-level security across an account, ensuring that sensitive data is protected regardless of how it is queried.

Why this answer

Dynamic Data Masking (DDM) provides a centralized way to protect sensitive data by applying masking policies to columns. By using the IS_ROLE_IN_SESSION function within the policy, the system evaluates the user's active role dynamically during query execution. This ensures that only members of the DATA_STEWARD role see unmasked data, while others see the masked output, maintaining governance consistency without needing to physically alter the underlying data storage or create multiple filtered views.

Exam trap

Candidates often assume that creating multiple views with different permissions is the correct approach, failing to realize that DDM is more efficient, centralized, and avoids the maintenance overhead of managing numerous views.

206
MCQmedium

A user with the role DATA_ANALYST has been granted the USAGE privilege on a database and schema, but when they try to query a table in that schema, they receive an error that the table does not exist. The table exists and is owned by the role DATA_ENGINEER. What is the most likely cause of this issue?

A.The table is owned by DATA_ENGINEER, and ownership transfers all privileges, so DATA_ANALYST cannot access it.
B.The DATA_ANALYST role lacks the SELECT privilege on the table.
C.The DATA_ANALYST role does not have USAGE on the database and schema.
D.The table is a secure view, and secure views require additional privileges.
AnswerB

In Snowflake, having USAGE on a database and schema allows you to see the schema and potentially list objects, but to query a table, you need the SELECT privilege on that table. Without SELECT, the table appears as if it does not exist when queried. The error message 'table does not exist' is often misleading; it can also mean the user lacks privileges. Granting SELECT on the table to DATA_ANALYST would resolve the issue.

Why this answer

In Snowflake, to query a table, a role must have the SELECT privilege on that table. Having USAGE on the database and schema only allows navigation and listing. Without SELECT, the table is effectively inaccessible, and Snowflake returns a 'table does not exist' error to avoid leaking information.

Granting SELECT to DATA_ANALYST resolves the problem. Ownership by another role does not prevent granting privileges.

Exam trap

The trap here is interpreting the 'table does not exist' error literally, when it often indicates a missing privilege rather than a missing object.

207
MCQhard

Refer to the exhibit. What is the primary advantage of using the VARIANT data type in this scenario?

A.It forces the data into a rigid relational schema.
B.It enables seamless querying of semi-structured data using SQL.
C.It converts all data to string format for storage.
D.It increases storage costs by requiring a fixed-width format.
AnswerB

By storing data in the VARIANT format, users can navigate nested JSON hierarchies using Snowflake's dot-notation and colon-notation syntax directly within SQL queries. This allows for powerful analytical operations on semi-structured data without requiring it to be transformed into a flat relational structure first.

Why this answer

The VARIANT data type in Snowflake allows for the storage of semi-structured data like JSON, Avro, or Parquet in a native format. By using VARIANT, Snowflake parses the data upon ingestion and stores it in an optimized internal representation. This enables users to query semi-structured data using standard SQL, providing a bridge between the flexibility of NoSQL and the reliability and performance of relational databases.

Exam trap

Candidates often think VARIANT is only for storing raw files. They overlook the critical advantage that Snowflake parses this data upon ingestion to enable native SQL querying capabilities.

208
Multi-Selecthard

A platform team is evaluating Snowflake's Time Travel feature for a production database. They need to understand which capabilities Time Travel provides for recovering from accidental data changes and for querying historical data. (Choose two.)

Select 2 answers
A.Restore a dropped table, schema, or database within the retention period using UNDROP or by cloning from a historical point.
B.Encrypt historical data with a separate customer-managed key that is distinct from the key used for current data.
C.Automatically fail over read and write operations to a secondary account in a different region without data loss.
D.Permanently retain all historical versions of every table indefinitely without any retention period configuration.
E.Query data as it existed at a specific point in the past using an AT or BEFORE clause in the SELECT statement.
AnswersA, E

Time Travel enables recovery of dropped objects within the defined retention period. A dropped table can be restored with UNDROP TABLE, and historical versions can be cloned to create a new object reflecting an earlier state. This capability is a primary reason Time Travel is used for accidental deletion recovery in production databases.

Why this answer

Time Travel provides two core capabilities: querying data as it existed at a past point using AT or BEFORE, and recovering dropped or modified objects within the retention period through UNDROP or historical cloning. Both are directly supported by the feature and are commonly used for auditing and accidental-change recovery, while failover and indefinite retention are handled by other mechanisms.

Exam trap

The trap here is conflating Time Travel with cross-region failover or assuming historical data is retained indefinitely rather than for a bounded retention period.

209
MCQhard

A provider wants to share a database with a consumer but must prevent the consumer from seeing the database's table and schema names in its own account. The provider also wants the consumer's queries to be isolated from the provider's own warehouse usage. Which approach satisfies both requirements?

A.Create a secure view that projects the data and grant only the view to the share, then let the consumer use its own warehouse.
B.Use a database replication task to copy the data into the consumer's account.
C.Create a reader account for the consumer and grant the consumer's role access to the provider's warehouse.
D.Grant SELECT on each table directly to the share and let the consumer create a database from the share.
AnswerA

Sharing a secure view hides the underlying table and schema names, since the consumer sees only the view. When the consumer creates a database from the share, it uses its own warehouse for queries, so the provider's warehouse is not consumed. This combination satisfies both the concealment and isolation requirements.

Why this answer

A secure view exposes only the projected result, so the consumer never sees the underlying table or schema names. Because the consumer creates a database from the share and queries it with its own warehouse, the provider's warehouse is untouched. Together, the secure view and consumer-owned warehouse meet both the naming-concealment and usage-isolation requirements.

Exam trap

The trap here is assuming that sharing tables directly conceals their names, when only a secure view hides the underlying schema and table identifiers from the consumer.

210
MCQmedium

Which Snowflake architecture feature enables seamless data sharing between two different Snowflake accounts without the need to copy or move data?

A.Database Replication
B.Secure Data Sharing
C.Zero-Copy Cloning
D.Virtual Private Snowflake
AnswerB

Secure Data Sharing is the standard Snowflake feature for sharing data between accounts. It uses the underlying metadata layer to grant access to specific objects in the provider account to one or more consumer accounts, ensuring data is never copied and always remains under the control of the provider.

Why this answer

Secure Data Sharing relies on Snowflake's unique architecture where data is stored in a centralized location while being accessed by multiple compute environments. By granting permissions to an object, a provider can expose data to a consumer account. Because no data movement is required, the shared data is always up-to-date and reflects the current state of the provider's database, providing a real-time collaboration experience without the overhead of traditional ETL.

Exam trap

Candidates often assume that sharing data requires creating a new database copy or using an ETL process to move data to the consumer's account.

211
MCQeasy

A user runs a query that filters on a column with a high cardinality and the table is not clustered. The query scans a large number of micro-partitions. Which action would most directly reduce the number of micro-partitions scanned?

A.Add a clustering key on the filtered column.
B.Use a larger warehouse with multi-cluster scaling.
C.Increase the size of the virtual warehouse.
D.Enable result caching for the session.
AnswerA

Clustering keys reorganize the micro-partitions so that data with similar values is stored together. When a query filters on the clustered column, the optimizer can use the clustering metadata to prune micro-partitions that do not contain the filter value. This directly reduces the number of micro-partitions scanned, improving performance for high-cardinality columns.

Why this answer

Clustering keys physically sort data so that similar values are co-located in micro-partitions. This enables the optimizer to prune partitions based on filter predicates, directly reducing the number of micro-partitions scanned. Larger warehouses or caching do not change the volume of data scanned for the initial query.

Exam trap

The trap here is thinking that a bigger warehouse reduces data scanned; it only makes scanning faster, not narrower.

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

213
MCQmedium

A provider has created a share and added a table. The provider now wants to revoke access for a specific consumer account without affecting other consumers. Which command should the provider use?

A.DROP SHARE my_share;
B.ALTER SHARE my_share REMOVE ACCOUNT = consumer_account;
C.REVOKE USAGE ON SHARE my_share FROM ACCOUNT consumer_account;
D.REVOKE SELECT ON TABLE my_table FROM SHARE my_share;
AnswerB

The ALTER SHARE ... REMOVE ACCOUNT command is the correct way to revoke a consumer's access to a share. It removes the specified account from the share, immediately terminating their ability to access the shared data. This action does not affect other consumers who are still added to the share, making it the precise method for this scenario.

Why this answer

To revoke access for a specific consumer, the provider must remove that account from the share using ALTER SHARE ... REMOVE ACCOUNT. This action only affects the specified account and leaves other consumers unaffected.

Dropping the share or revoking table privileges would impact all consumers, which is not desired. The correct command is precise and reversible if needed.

Exam trap

The trap here is using REVOKE or DROP commands that affect the entire share or all consumers, rather than the targeted ALTER SHARE ... REMOVE ACCOUNT command.

214
MCQhard

A data engineer needs to transform a JSON column stored in a VARIANT type into a relational table. The JSON contains a top-level array of objects, each with keys `id`, `name`, and `tags`, where `tags` is itself an array of strings. The engineer wants each object to become a row, with the `tags` array flattened into a separate column containing one tag per row. Which combination of Snowflake functions will produce one row per tag while preserving `id` and `name`?

A.`ARRAY_TO_STRING(json_col:tags, ',')` followed by `SPLIT_TO_TABLE` on the resulting string.
B.`OBJECT_KEYS(json_col)` to extract the array elements, then `GET` to access each tag.
C.`LATERAL FLATTEN(input => json_col:tags)` combined with `json_col:id::INT` and `json_col:name::STRING` in the SELECT list.
D.`PARSE_JSON` on the VARIANT column followed by `FLATTEN` on the entire JSON object.
AnswerC

`LATERAL FLATTEN` is designed to explode an array into multiple rows. When applied to `json_col:tags`, it produces one row per element of the tags array. The outer query can still reference `json_col:id` and `json_col:name` because the lateral join preserves the original row context. This yields exactly one row per tag with the corresponding id and name, which matches the requirement.

Why this answer

To explode a nested array within a VARIANT column, `LATERAL FLATTEN` is the correct tool. It takes an array as input and returns one row per element, while the lateral join keeps the original row's other columns accessible. Referencing `json_col:id` and `json_col:name` in the SELECT list preserves those attributes.

Other functions either treat the array as a string, operate on object keys, or flatten the wrong level of the JSON structure, so they do not produce the required one-row-per-tag output.

Exam trap

The trap here is confusing object-key extraction with array flattening; `OBJECT_KEYS` works on objects, while `FLATTEN` is required for arrays.

215
MCQeasy

A Snowflake data provider creates a Reader Account for a consumer who does not have a Snowflake account. Who is responsible for the compute costs incurred by the queries executed within this Reader Account?

A.The consumer, who is billed directly by Snowflake via a credit card registered to the Reader Account.
B.Snowflake, as part of the free tier benefits for new data consumers.
C.The provider, who is billed for all virtual warehouse usage within the Reader Account.
D.The cost is split equally between the provider and the consumer at the end of each billing cycle.
AnswerC

Reader accounts are managed by the provider, who is responsible for all credit consumption generated by the consumer's activity. The provider can set up resource monitors to control and limit the amount of credits the Reader Account can use. This ensures the provider can share data without facing unexpected or unmanaged costs.

Why this answer

Reader accounts are a feature designed to allow providers to share data with organizations that are not yet Snowflake customers. Because the Reader Account is created and owned by the provider, the provider assumes all financial responsibility for the resources consumed. This includes the credits used by virtual warehouses within the Reader Account for querying the shared data.

Exam trap

Candidates often mistakenly believe the consumer using a Reader Account pays for their own queries, ignoring the fact that the provider fully owns and bills for all usage.

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

217
MCQeasy

A developer needs to flatten a VARIANT column named payload that contains a nested JSON array of order line items into individual rows, preserving the parent order attributes alongside each line item. Which Snowflake construct accomplishes this in a single SELECT statement?

A.A PARSE_JSON call applied to the payload column in the SELECT list.
B.A LATERAL FLATTEN of the payload:line_items array joined back to the parent row.
C.A recursive common table expression that walks the JSON hierarchy level by level.
D.A GROUP BY on the VARIANT column with an ARRAY_AGG of the line items.
AnswerB

LATERAL FLATTEN is the native Snowflake table function that expands a VARIANT array or object into one row per element, and using it as a lateral join preserves the parent row's columns. This directly satisfies the requirement to produce one row per line item while retaining order-level attributes, all within a single SELECT statement.

Why this answer

LATERAL FLATTEN is Snowflake's dedicated mechanism for exploding semi-structured arrays and objects into relational rows. Used laterally, it correlates each element with its parent row, so order attributes remain available alongside each line item. This yields a fully relational result set from nested JSON in one statement without manual recursion or aggregation.

Exam trap

The trap here is reaching for generic SQL techniques such as recursive CTEs or aggregation when Snowflake provides a purpose-built FLATTEN table function for semi-structured data.

218
MCQmedium

A user with the role 'ANALYST' needs to be able to see the definition of a secure view named 'sales_view' in the 'sales_db' database. The view owner has granted SELECT on the view to ANALYST. However, when ANALYST runs SHOW VIEWS, the view definition is not visible. What is the most likely cause?

A.The ANALYST role needs the MONITOR privilege on the view to see its definition.
B.The ANALYST role lacks the USAGE privilege on the database and schema.
C.The view definition is only visible if the user has the SELECT privilege on all underlying tables.
D.Secure views do not expose their definition to users who do not have the OWNERSHIP privilege on the view.
AnswerD

Secure views are designed to hide the view definition from users who do not own the view. Even with SELECT privilege, non-owners cannot see the view's SQL definition. This is a security feature to prevent exposure of underlying data or logic.

Why this answer

Secure views intentionally hide their definition from users who do not own the view. Even with SELECT privilege, non-owners cannot see the view's SQL definition. This is a key security feature of secure views.

Exam trap

The trap here is assuming that SELECT privilege includes the right to see the view definition; for secure views, only the owner can see it.

219
MCQmedium

A provider's account is named PROVIDER_ACCT and it has created a share named PARTNER_SHARE that already contains a secure view. The provider now runs: ALTER SHARE PARTNER_SHARE ADD ACCOUNTS = CONSUMER_ACCT; What is the effect of this command in the provider's environment?

A.It fails because the ADD ACCOUNTS clause is only valid at share creation time and cannot be used on an existing share.
B.It grants CONSUMER_ACCT the ability to read the share, but a database must still be created in CONSUMER_ACCT before any shared data is visible there.
C.It immediately creates a read-only database in CONSUMER_ACCT containing all objects in the share, usable without any further consumer action.
D.It converts the share into a listing that is publicly discoverable on the Snowflake Marketplace by all Snowflake accounts.
AnswerB

Adding an account to a share only authorizes that consumer account and places a share object in its 'inbound' area; nothing is readable until a consumer-side role with CREATE DATABASE runs CREATE DATABASE ... FROM SHARE. Until that database is created, the consumer sees only an available share, not tables. This is exactly how data sharing provisioning works.

Why this answer

A share is only an authorization container; adding a consumer account simply permits that account to see an inbound share. Consumers must then create a database from the share with a role that has CREATE DATABASE before any tables become queryable. The provider cannot perform that step on the consumer's behalf, which is why the data is not instantly usable after the ALTER SHARE command.

Exam trap

The trap here is assuming that adding a consumer account to a share also creates the shared database in that consumer account, when the consumer must perform the CREATE DATABASE ... FROM SHARE step.

220
MCQhard

A provider wants to share data with a consumer but needs the shared data to reflect changes in the provider's source tables in near real time. The provider also wants to avoid granting the consumer access to the underlying base tables. Which approach best meets these requirements?

A.Grant SELECT on the base tables directly to the share and instruct the consumer not to modify them.
B.Create a secure view over the base tables and grant SELECT on the view to the share.
C.Create a materialized view over the base tables and grant SELECT on the materialized view to the share.
D.Copy the base tables into a separate database and grant SELECT on the copies to the share.
AnswerB

A secure view queries the base tables at runtime, so consumers always see current data without any refresh process. Because the view is secure, its definition is hidden and consumers cannot infer underlying table structures. Granting SELECT on the view to the share provides access without exposing the base tables, satisfying both requirements.

Why this answer

A secure view provides real-time access to base table data because it executes the underlying query at runtime. It also hides the view definition and base table details from consumers. Granting SELECT on the secure view to the share meets both the freshness and the access restriction requirements, unlike copies or direct table grants.

Exam trap

The trap here is assuming materialized views can be shared like regular views, when shares only support specific object types and materialized views are not among them.

221
MCQeasy

Which Snowflake feature provides an 'always-on' mechanism to allow users to instantly query the state of data as it existed at any point in the past within a defined retention period?

A.Database Snapshots
B.Time Travel
C.Materialized Views
D.Data Sharing
AnswerB

Time Travel allows users to access historical data versioning by utilizing Snowflake's micro-partition metadata. This feature is integrated natively into the platform, providing the ability to perform point-in-time recovery and analysis without the need for additional administration or storage management by the user.

Why this answer

Time Travel is a core Snowflake feature that maintains historical data states, allowing users to query data as it existed at a specific timestamp or offset. This feature is vital for data recovery, auditing, and comparing current data against historical trends. By leveraging the metadata-heavy architecture of Snowflake, it provides near-instantaneous access to previous data versions without requiring costly manual backups or complex database snapshots.

Exam trap

Candidates often confuse Time Travel with Fail-safe or manual table snapshots, incorrectly assuming Time Travel requires active user-managed backups to function.

222
MCQmedium

A query that previously ran in 5 seconds now takes 2 minutes. The Query Profile shows that most of the time is spent in 'Remote Disk I/O'. What is the most likely cause for this performance degradation?

A.The warehouse is under-provisioned and needs to be scaled up.
B.The warehouse cache was cleared or the data was not in the local cache.
C.The query is experiencing resource contention from other users.
D.The table has too many micro-partitions and needs to be deleted.
AnswerB

Snowflake warehouses use local SSDs to cache data from micro-partitions. When a warehouse is resumed after being suspended, or if it has not queried this data recently, it must fetch the data from remote cloud storage. This 'cold' cache scenario results in significant Remote Disk I/O and slower performance.

Why this answer

Understanding where time is spent in the Query Profile is critical for troubleshooting performance issues. Remote Disk I/O indicates that the virtual warehouse is reading data from cloud storage rather than its local SSD cache. This usually happens when the cache is 'cold' or when the data volume exceeds the cache capacity.

Exam trap

Test-takers frequently assume performance degradation stems from warehouse sizing issues rather than recognizing that a cold cache forces expensive remote disk I/O operations.

223
Multi-Selecthard

A provider is preparing to share data with a consumer via a direct share. The provider wants to ensure that the consumer can access the data but cannot see the underlying table structure or any other objects in the database. Which two actions should the provider take? (Choose two.)

Select 2 answers
A.Ensure the share contains only the secure view and no other objects.
B.Grant USAGE on the database to the consumer's role.
C.Create a database role and grant it to the consumer.
D.Add the table directly to the share and grant SELECT on the table to the consumer.
E.Create a secure view that selects from the table and add the secure view to the share.
AnswersA, E

To prevent the consumer from seeing any other objects, the provider must ensure that the share contains only the secure view. If other objects are added to the share, the consumer could potentially access them. By limiting the share to the secure view, the provider controls exactly what the consumer can see, aligning with the principle of least privilege.

Why this answer

To share data while hiding the underlying structure, the provider should create a secure view and add it to the share, and ensure the share contains only that view. Secure views prevent consumers from seeing the base table definitions, and limiting the share to the view ensures no other objects are exposed. Other options involve direct table access or ineffective grants that do not meet the security requirements.

Exam trap

The trap here is thinking that adding a table directly to a share is sufficient, when in fact secure views are needed to hide the underlying structure, and extra objects in the share can inadvertently expose data.

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

225
MCQmedium

A query is failing with the error 'Can\'t compile the query as it is too large'. Which action is most likely to resolve this issue while maintaining the query's logical intent?

A.Increase the size of the virtual warehouse to 4X-Large.
B.Break the query into smaller parts using temporary tables or CTEs.
C.Use the Search Optimization Service on the underlying tables.
D.Disable the use of micro-partition pruning for that specific session.
AnswerB

Simplifying the query by breaking it into smaller, manageable chunks or using temporary tables to store intermediate results reduces the complexity the compiler must handle at once. This often resolves 'query too large' errors while keeping the logic identical for the final output.

Why this answer

Snowflake has limits on the complexity of a single SQL statement's compilation. Very large queries with thousands of lines or deeply nested subqueries can hit memory limits in the Cloud Services layer. Simplifying the query structure or breaking it into smaller pieces is the standard approach to resolving compilation errors.

Exam trap

Candidates often suggest increasing the warehouse size, which does not solve compilation-related errors caused by overly complex SQL structures or excessive query size.

Page 2

Page 3 of 4

Page 4

All pages