Snowflake · Free Practice Questions · Last reviewed May 2026
30real exam-style questions organised by domain, each with the correct answer highlighted and a plain-English explanation of why it's right — and why the others are wrong.
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?
The consumer, who is billed directly by Snowflake via a credit card registered to the Reader Account.
Snowflake, as part of the free tier benefits for new data consumers.
The provider, who is billed for all virtual warehouse usage within the Reader Account.
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.
The cost is split equally between the provider and the consumer at the end of each billing cycle.
Refer to the exhibit. A provider has executed these commands to prepare data for a consumer. What is the final mandatory step required before the consumer can access the 'campaign_stats' table?
The provider must execute: ALTER SHARE marketing_share ADD ACCOUNTS = <consumer_account_locator>;
The 'ALTER SHARE' command with the 'ADD ACCOUNTS' clause is the definitive step that authorizes a specific consumer account to view and mount the share. Until this command is executed, the share remains private to the provider. This step completes the handshake by identifying exactly which external Snowflake accounts are permitted to access the data.
The consumer must execute: CREATE DATABASE marketing_data FROM SHARE <provider_account>.marketing_share;
The provider must refresh the metadata of the 'marketing_share' object using the 'COMMIT SHARE' command.
The provider must grant the 'IMPORTED PRIVILEGES' role to the share for the campaign_stats table.
A consumer has mounted a shared database named 'SALES_DATA_SHARED'. They need to add a new column to one of the tables in this database to store local annotations. Which statement best describes the outcome if they attempt this?
The operation will succeed, but the changes will only be visible to the consumer's account.
The operation will fail because shared databases are read-only for consumers.
Any DDL or DML attempt on a shared database results in an error. The read-only nature is a fundamental security and architectural constraint of Snowflake's sharing model. This ensures that the provider remains the sole authority for the data and that the consumer's role is limited to data analysis and retrieval.
The operation will succeed only if the provider has granted the 'MODIFY' privilege to the share.
The operation will fail unless the consumer is using the 'ACCOUNTADMIN' role.
To publish a data listing on the Snowflake Marketplace and make it available to all Snowflake customers, which TWO requirements must the provider fulfill?
The provider must have a Business Profile that has been approved by Snowflake.
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.
The provider must use a Business Critical edition account or higher.
The provider must agree to the Snowflake Provider and Marketplace Terms.
Legal and operational compliance is mandatory for Marketplace participation. Providers must agree to specific terms that govern how data is shared, how intellectual property is handled, and how transactions are managed. This legal framework protects both the provider and Snowflake while setting clear expectations for the consumer relationship.
The provider must pay an annual Marketplace listing fee of $5,000.
The provider must share the data exclusively through the Marketplace and not through Direct Shares.
Refer to the exhibit. Based on the JSON configuration for this Snowflake listing, who will be able to discover and access this data?
Any Snowflake customer in the same region as the provider.
Only the users within the provider's own Snowflake account.
Only the specific accounts 'ORG_A.ACCOUNT_1' and 'ORG_B.ACCOUNT_2'.
Because the listing is marked as private and specifies target accounts, only those named accounts will see the listing in their 'Private Sharing' area. This configuration is ideal for B2B data sharing where the provider wants to leverage the Marketplace's UI and tracking but keep the data restricted to specific partners.
All accounts belonging to ORG_A and ORG_B, regardless of the individual account names.
A provider wants to ensure that a Reader Account they created does not exceed a budget of 50 credits per month. What is the most effective way to implement this control?
Set a hard limit on the 'READER_ACCOUNT_CREDITS' parameter in the provider account settings.
Create a Resource Monitor in the provider account and assign it to the Reader Account.
Resource Monitors allow providers to set quotas on credit consumption for a specific time interval, such as monthly. When the Reader Account's warehouses consume credits, the monitor tracks the total. If the limit is reached, the monitor can automatically suspend the Reader Account's compute resources, preventing further unbudgeted costs.
Ask the consumer to monitor their own usage and stop querying when they hit 50 credits.
The provider must manually drop the Reader Account once the 50-credit threshold is reached each month.
Want more Data Collaboration practice?
Practice this domainA data administrator needs to identify which users have failed to log in successfully over the last 30 days due to authentication errors. Which Snowflake object should they query?
The ACCESS_HISTORY view.
The LOGIN_HISTORY view.
LOGIN_HISTORY records all login attempts, including timestamps, usernames, client IP addresses, and the success status of the request. It is the definitive source for auditing authentication failures. Accessing this view requires the ACCOUNTADMIN role or a role with specific privileges granted to view account-level metadata.
The QUERY_HISTORY view.
The SESSIONS view.
Refer to the exhibit. User 'jdoe' holds the 'manager' role. Which privileges does 'jdoe' possess regarding roles and data access?
jdoe has the privileges of the manager role only.
jdoe has the privileges of the manager and analyst roles.
The GRANT command establishes a hierarchy where the parent role inherits all privileges of the child role. Since jdoe holds the manager role, and manager holds the analyst role, jdoe inherently possesses the combined set of privileges from both roles, enabling access to all underlying objects.
jdoe must explicitly switch to the analyst role to see its data.
jdoe only has access to objects created by the analyst role.
A security administrator needs to ensure that all data loaded into Snowflake is encrypted using a customer-managed key. Which feature should be configured?
Snowflake-managed keys with automatic rotation.
Tri-Secret Secure.
Tri-Secret Secure combines a customer-managed key (stored in their cloud provider's key management service) with a Snowflake-managed key. This setup provides an additional layer of security and auditability, ensuring that Snowflake cannot decrypt customer data without access to the customer-provided key material.
Always Encrypted feature.
Column-Level Security encryption.
Which feature in Snowflake allows you to track and audit all SQL queries executed across the entire account?
ACCESS_HISTORY.
QUERY_HISTORY.
The QUERY_HISTORY view (and corresponding table function) captures the full SQL statement, the user, the start/end times, and the warehouse used for every query. It is the comprehensive source for auditing account-wide query activity and is essential for security auditing and performance monitoring tasks.
SESSION_HISTORY.
DATA_TRANSFER_HISTORY.
Refer to the exhibit. If a user with the 'ANALYST' role queries a table protected by this policy, what will they see?
The actual email addresses.
The string '***@***.com'.
Because the 'ANALYST' role is not part of the allowed list, the policy execution falls through to the default masking value defined in the ELSE clause. This ensures that sensitive information is properly obscured for unauthorized users, maintaining the integrity of the data governance policy.
An error message indicating insufficient privileges.
NULL values.
An administrator wants to ensure that a specific role can only access Snowflake from the corporate office IP range. Which tool should they use?
Row Access Policies.
Granting specific network privileges.
Network Policies.
Network Policies allow administrators to specify a list of IP addresses that are permitted (or blocked) from connecting to the Snowflake account. These policies can be applied globally or to specific users, providing a flexible and secure way to enforce location-based access controls.
Setting a Session Policy.
Want more Account Management and Data Governance practice?
Practice this domainA data architect is designing a multi-cluster warehouse to handle unpredictable peak concurrent user sessions. Which scaling property ensures that Snowflake automatically starts additional warehouse clusters to prevent query queuing while maintaining performance?
Auto-resume
Scaling Policy
Multi-cluster warehouse configuration
Setting a value greater than 1 for MAX_CLUSTER_COUNT enables the multi-cluster warehouse capability. This allows Snowflake to automatically start additional clusters when the current load results in query queuing, directly addressing the requirement for maintaining performance during peak concurrent usage scenarios within the Snowflake architecture.
Warehouse auto-suspend
Which TWO of the following statements accurately describe the function of the Snowflake Cloud Services layer?
It handles query parsing, compilation, and optimization.
The Cloud Services layer is responsible for the entire lifecycle of a query request before it is sent to a warehouse for execution. This includes parsing the SQL, validating permissions, compiling the execution plan, and applying advanced optimizations to ensure the query runs as efficiently as possible.
It stores the actual table data in micro-partitions.
It manages authentication, security, and access control.
All security-related operations, including user authentication, role-based access control, and session management, are centralized in the Cloud Services layer. This provides a unified security model across the entire platform, ensuring that policy enforcement is consistent regardless of which compute warehouse is used for query processing.
It provides compute resources to execute DML statements.
It performs the final data shuffling for JOIN operations.
What is the primary benefit of the Snowflake architecture's decoupling of storage and compute?
It allows data to be stored in multiple cloud regions simultaneously.
It enables independent scaling of storage and compute resources.
Decoupling allows users to scale storage to accommodate massive datasets while keeping compute clusters small, or conversely, to spin up large compute warehouses for short-term heavy processing on a small dataset, all without physical data movement or the need to resize entire infrastructure clusters at once.
It automatically encrypts all data at rest and in transit.
It eliminates the need for virtual warehouses.
When a query is submitted to Snowflake, which component is responsible for retrieving the metadata required to build the query execution plan?
The Virtual Warehouse
The Cloud Services Layer
The Cloud Services layer includes the metadata repository that manages table definitions, micro-partition locations, and data statistics. This layer is responsible for interpreting the SQL request and using this metadata to generate an efficient execution plan before delegating the physical processing tasks to the chosen virtual warehouse.
The Database Storage Layer
The Query Results Cache
Which THREE of the following are benefits of Snowflake's micro-partitioning architecture?
Enables efficient data pruning during query execution.
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.
Supports traditional B-tree indexing for faster lookups.
Allows for automatic clustering of data.
Snowflake automatically organizes data into micro-partitions based on the natural ingestion order or defined clustering keys. This automatic maintenance ensures that data remains performant over time without requiring manual database administrator intervention to reorganize or re-index the underlying table structures as new data arrives.
Provides high concurrency without requiring locking.
Since micro-partitions are immutable, read and write operations do not compete for locks on the same physical files. When data is modified, Snowflake simply creates new micro-partitions, allowing multiple users and processes to read from the existing ones simultaneously without any contention or blocking of concurrent operations.
Requires manual vacuuming to reclaim disk space.
Which feature allows Snowflake to automatically utilize results from previous queries without consuming compute resources?
Warehouse Caching
Query Result Cache
The Query Result Cache is a persistent storage feature in the Cloud Services layer that holds the output of queries. Because it stores the finished result sets, the system can return the data without executing the query plan, which requires zero compute usage from the warehouse.
Metadata Cache
Micro-partition Pruning
Want more Snowflake AI Data Cloud Features and Architecture practice?
Practice this domainWhich type of Snowflake stage is automatically created for every user and cannot be dropped or altered?
Named Internal Stage
Table Stage
User Stage
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.
External Stage
A developer is running a COPY INTO command to load 1,000 CSV files. The requirement is that if even one row in any file fails due to a data type mismatch, the entire load operation must stop and no data should be committed to the table. Which ON_ERROR setting is required?
ON_ERROR = CONTINUE
ON_ERROR = SKIP_FILE
ON_ERROR = ABORT_STATEMENT
ABORT_STATEMENT is the default behavior for the COPY command. It ensures that if any error is detected in any of the files being loaded, the entire operation is halted immediately. No records from any of the files are committed to the target table, maintaining the highest level of data consistency for the load.
ON_ERROR = SKIP_FILE_1%
A Python developer wants to upload a Pandas DataFrame to a Snowflake table as efficiently as possible without manually writing files to a local stage. Which function from the Snowflake Connector for Python should be used?
cursor.execute("INSERT INTO...")
write_pandas()
The write_pandas() function is the optimized method for loading data from a Pandas DataFrame into Snowflake. It handles the underlying complexity of chunking data, uploading it to a stage, and performing a bulk load. This method is much faster than row-by-row inserts and is the recommended practice for data science and engineering workflows using Python.
snowflake.load_df()
pd.to_sql() with the default engine
For optimal parallel loading performance using a Snowflake virtual warehouse, what is the generally recommended compressed file size range for data files in a stage?
1KB to 100KB
10MB to 100MB
The 10MB to 100MB range is the 'sweet spot' for Snowflake's data ingestion engine. This size allows for efficient distribution of files across the CPUs in a virtual warehouse. It balances the need for parallelism with the need to minimize the number of files the system must track, resulting in the fastest possible bulk loading performance.
1GB to 5GB
Exactly 256MB to match HDFS blocks
A company is using an external S3 stage to load data daily. They want Snowflake to automatically delete the source files from the S3 bucket only after they have been successfully loaded into the table. Which COPY INTO option should they enable?
DELETE_AFTER_LOAD = TRUE
REMOVE_FILES = TRUE
PURGE = TRUE
Setting PURGE = TRUE is the standard method for cleaning up files after a successful load. It is particularly useful for internal stages to keep them from hitting storage limits. For external stages like S3, it requires that the Snowflake IAM role has the appropriate permissions to delete objects from the specified bucket.
AUTO_CLEAN = TRUE
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?
Parquet files are always smaller than CSV files regardless of the data content.
Parquet files contain schema metadata, allowing for easier mapping of complex data.
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.
Parquet files can be loaded using the PUT command directly into a table.
Parquet is the only format that supports the ON_ERROR = CONTINUE parameter.
Want more Data Loading, Unloading, and Connectivity practice?
Practice this domainA query is experiencing performance degradation, and the Query Profile indicates 'Remote Disk Spilling'. Which action is the most direct solution to resolve this specific bottleneck?
Enable the Search Optimization Service on the table.
Scale up the virtual warehouse to a larger size.
Scaling up doubles the local memory and SSD storage at each increment, allowing the warehouse to handle larger intermediate datasets locally. This prevents the system from needing to spill data to remote storage, which is the primary cause of the performance degradation observed when local resources are insufficient.
Implement a clustering key on the table's join columns.
Create a Materialized View for the underlying query.
Refer to the exhibit. Based on the Query Profile snippet, which optimization strategy would most likely address the high execution time and massive row production?
Apply a clustering key to the primary keys of both tables.
Enable the Query Acceleration Service for the warehouse.
Review the SQL to ensure a valid join predicate exists between the tables.
A Cartesian product indicates that the SQL lacks a restrictive join condition, causing an explosion in the result set size. By defining a proper predicate, the optimizer can use more efficient join algorithms like Hash Joins, drastically reducing the number of rows processed and the total execution time.
Increase the warehouse size to 4X-Large to handle the volume.
A data engineer needs to transform a variant column containing an array of objects into a relational format. Which TWO Snowflake features or functions are required to achieve this?
The FLATTEN function
The FLATTEN table function is specifically designed to convert semi-structured data into a relational representation. It takes a VARIANT, OBJECT, or ARRAY and explodes it into multiple rows, providing columns for the index, key, and value of the nested elements, which is essential for flattening arrays.
The UNPIVOT clause
The LATERAL keyword
The LATERAL keyword allows a correlated subquery or table function like FLATTEN to reference columns from other tables appearing earlier in the FROM clause. This is necessary to maintain the relationship between the original row and the individual elements extracted from its nested array during transformation.
The PARSE_JSON function
The STRTOK_TO_ARRAY function
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?
Metadata Cache
Virtual Warehouse Local Cache
Result Set Cache
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.
Search Optimization Service
When considering the implementation of a clustering key on a large table, which TWO scenarios indicate that clustering will provide the most significant performance benefit?
The table is frequently updated with small DML operations.
Queries against the table typically filter on a specific dimension column.
When queries consistently use a specific column in WHERE clauses, clustering the table on that column ensures that data is physically grouped together. This maximizes the efficiency of partition pruning, as the system can quickly identify and skip micro-partitions that do not match the filter criteria.
The table size is less than 50 GB and fits in the local cache.
The Query Profile shows that a large percentage of partitions are scanned.
If the Query Profile reveals that nearly all micro-partitions are being scanned for a selective query, it indicates poor natural clustering. Implementing a clustering key will reorganize the data, allowing the engine to scan only the necessary partitions and significantly reducing I/O and execution time.
The table is used exclusively for full table scans and exports.
How does Snowflake's architecture handle the storage and querying of semi-structured data like JSON to optimize performance?
JSON is stored as a raw BLOB and parsed at execution time.
Individual keys are automatically extracted into a hidden relational schema.
Data is compressed and stored in a columnar format based on common paths.
When JSON is ingested into a VARIANT column, Snowflake identifies common paths and stores them columnarly. This enables the optimizer to prune and only retrieve the specific data needed for a query, combining the flexibility of semi-structured data with the performance of relational storage.
Users must manually define a schema before JSON data can be queried efficiently.
Want more Performance Optimization, Querying, and Transformation practice?
Practice this domainThe COF-C03 exam has 60–90 questions and must be completed in 120 minutes. The passing score is 700/1000.
Scenario-based questions covering exam objectives with detailed answer explanations.
The exam covers 5 domains: Data Collaboration, Account Management and Data Governance, Snowflake AI Data Cloud Features and Architecture, Data Loading, Unloading, and Connectivity, Performance Optimization, Querying, and Transformation. Questions are weighted by domain — higher-weight domains appear more on your actual exam.
No. These are original exam-style practice questions written against the official Snowflake COF-C03 exam objectives. They are not copied from the real exam. Courseiva focuses on genuine understanding, not memorisation of braindumps.
Courseiva tracks your accuracy per domain and routes you toward weak areas automatically. Free, no account required.