Reviewed by the FlashGenius certification content team · Last updated: November 2026 · Aligned to the Snowflake SnowPro Core COF-C03 exam (launched February 2026, replacing COF-C02) · 4,424 SnowPro Core answers logged by FlashGenius learners
What to expect on the SnowPro Core COF-C03 exam
SnowPro Core is Snowflake's foundational certification and the prerequisite for every SnowPro Advanced exam. COF-C03 replaced COF-C02 in 2026, moving from 6 domains to 5 and adding Snowflake's AI Data Cloud features such as Cortex.
100 Questions
115 min Time limit
750 Passing score (of 1000)
$175 Exam fee (USD)
Question types: Multiple choice and multiple select, many built around SQL snippets and scenarios
Delivery: Pearson VUE test center or online proctored
Experience: 6+ months of hands-on Snowflake use recommended; no prerequisites
Validity: 2 years; renew with the recertification exam or an Advanced/Specialty exam
The 5 SnowPro Core COF-C03 domains
The architecture domain alone is almost a third of the exam. Each domain has 10 free questions.
Domain 1: Snowflake AI Data Cloud Features & Architecture (31%)
Secure Data Sharing, secure views, reader accounts, listings and the Snowflake Marketplace, and cross-region sharing. Practice Data Collaboration questions
12 Free SnowPro Core COF-C03 Practice Questions with Answers
Weighted like the real exam, from architecture to data sharing. Pick your answer, then use Show answer to check it and read why it beats the other options. Where enough FlashGenius learners have answered a question, you can see how many got it right.
Question 1 — Snowflake AI Data Cloud Features & Architecture
A finance manager asks what happens to the company’s data if all Snowflake virtual warehouses are automatically suspended overnight to save costs. They are concerned that tables might become unavailable or be moved to cheaper storage.
As the Snowflake architect, how should you explain what happens when warehouses are suspended?
A. Table data becomes temporarily inaccessible because warehouses own the storage layer, and data is reloaded when warehouses resume.
B. Table data remains fully stored in Snowflake’s centralized storage layer; suspending warehouses only stops compute usage for queries. (Correct answer)
C. Only the largest warehouse retains a copy of the data; smaller warehouses lose access when suspended.
D. Data is automatically archived to external cloud storage whenever all warehouses in an account are suspended.
Correct answer: B
Explanation: In Snowflake’s multi-cluster shared data architecture, storage and compute are logically separate. Table data is stored in Snowflake’s centralized storage layer and persists independently of any virtual warehouse state. Suspending a warehouse simply stops compute usage (and associated compute charges) for that warehouse; it does not move, archive, or delete data. When a warehouse is resumed or another warehouse is used, they can immediately query the same underlying data. Why the other options are wrong:
- Option A: This incorrectly assumes warehouses own or store the data. Virtual warehouses are compute-only; they do not hold persistent storage, so there is no reloading of data when they resume. - Option C: This implies each warehouse has its own copy of the data and that only one warehouse retains it. In Snowflake, all warehouses access the same shared data storage; no warehouse retains its own separate copy. - Option D: Snowflake does not automatically archive data to external storage when warehouses are suspended. Suspending warehouses affects compute billing only; storage continues as normal inside Snowflake.
Question 2 — Snowflake AI Data Cloud Features & Architecture
An enterprise wants to give business users a chat-style interface to ask natural-language questions about governed sales and finance data already stored in Snowflake. The solution must:
- Respect existing roles, row access policies, and object-level permissions
- Run fully inside Snowflake’s governed environment
- Require minimal custom application development
Which Snowflake capability most directly meets these requirements?
A. Cortex Analyst, to provide a governed, in-platform conversational interface over Snowflake data (Correct answer)
B. Streamlit in Snowflake, with a custom Python chatbot UI and external LLM integration
C. Cortex LLM functions embedded into ad hoc SQL queries executed by analysts
D. A Native App from Snowflake Marketplace that exports data to an external chatbot service
Correct answer: A
Explanation: Cortex Analyst is designed as a governed, in-platform AI assistant that allows users to ask natural-language questions about data in Snowflake while respecting existing roles, policies, and object-level permissions. It specifically addresses the need for a conversational interface over governed data with minimal custom development. Why the other options are wrong:
- Option B: Streamlit can host custom chat UIs, but developers would need to build and maintain the entire experience and ensure policy enforcement manually or via code, which conflicts with the requirement to minimize custom app development. - Option C: Cortex LLM functions can be used by technical users in SQL, but they do not, by themselves, provide an end-user conversational experience or automatically manage conversational context and governed data access in the same way Cortex Analyst does. - Option D: A Native App that exports data to an external chatbot would move data outside Snowflake’s governed environment and complicate enforcement of existing RBAC and policies, contradicting the requirement to keep the solution fully in-platform and governed.
Question 3 — Snowflake AI Data Cloud Features & Architecture
A data engineering team currently runs complex transformations in a separate Python environment, pulling data out of Snowflake, processing it, and then writing results back. They want to reduce data movement and run the transformations directly inside Snowflake while still using Python as their main language.
Which Snowflake capability best fits this requirement?
A. Use Snowpark to write Python transformations that execute inside Snowflake’s compute layer. (Correct answer)
B. Use Cortex LLM functions to automatically convert Python transformations into SQL.
C. Use Streamlit in Snowflake so Python code runs on the BI dashboards instead of in the database.
D. Use Snowflake ML to automatically create models that replace all Python transformation logic.
Correct answer: A
Explanation: Snowpark is designed for data processing in languages like Python, executed inside Snowflake’s compute layer. It lets the team define transformations in Python while keeping execution close to the data, leveraging Snowflake’s scalability and governance and avoiding data movement in and out of external environments. Cortex focuses on AI/LLM use cases, Streamlit on interactive apps, and Snowflake ML on model training/inference, none of which directly address general-purpose Python transformations on data. Why the other options are wrong:
- Option B: Cortex LLM functions provide AI capabilities such as text generation and summarization, not automatic code translation of arbitrary Python transformations into SQL for production pipelines. - Option C: Streamlit in Snowflake is for building interactive apps and UIs, not for running backend batch transformation pipelines at scale inside the database. - Option D: Snowflake ML is for building and serving machine learning models. It does not replace arbitrary transformation logic and is not intended as a general-purpose ETL framework.
Question 4 — Snowflake AI Data Cloud Features & Architecture
A global retailer runs analytics on product and clickstream data using multiple engines (Snowflake and a separate open-source engine). They want:
- A single physical copy of the data stored in cloud object storage.
- To use an open table format that the external engine can read directly.
- To manage and query this data from Snowflake with governance and security policies.
- To avoid duplicating the datasets into separate Snowflake-native tables.
Which Snowflake table strategy best aligns with these requirements?
A. Create external tables over CSV files stored in the object storage bucket
B. Use Iceberg tables managed by Snowflake on the shared object storage (Correct answer)
C. Copy the data into Snowflake-native internal tables and share them via data sharing
D. Store the data only in a Snowflake stage and query it directly with ad-hoc COPY INTO commands
Correct answer: B
Explanation: Iceberg tables in Snowflake are built on the Apache Iceberg table format, typically stored in external cloud object storage. They enable Snowflake to manage and query the data while allowing interoperability with other engines that support Iceberg. This satisfies the requirement for a single physical copy in object storage, open table format, multi-engine access, and Snowflake governance without duplicating the datasets. Why the other options are wrong:
- Option A: External tables over CSVs allow Snowflake to read data in cloud storage, but CSV is not an open table format like Apache Iceberg that external engines commonly use for table semantics (schema evolution, snapshots, etc. ). It lacks the interoperable table-layer abstraction required. - Option C: Copying data into internal Snowflake tables would create at least two physical copies (one in Snowflake-managed storage and one in object storage for the external engine), violating the requirement for a single physical copy. - Option D: Stages combined with ad-hoc COPY INTO focus on loading data into Snowflake or querying files, not maintaining a shared interoperable table format across multiple engines. They do not provide the open table abstraction and shared metadata required.
Question 5 — Performance Optimization, Querying, and Transformation
A data engineering team runs a nightly ELT job that consists of a few very large aggregation queries on a single fact table. The job runs alone in its own warehouse with no other concurrent workloads, but it is taking 3 hours to complete and must be reduced to about 1 hour. There is no queuing observed in the query history, only long execution times.
What is the most appropriate Snowflake change to try first?
A. Increase the size of the existing virtual warehouse to a larger size (Correct answer)
B. Convert the existing warehouse into a multi-cluster warehouse with more clusters
C. Create a second warehouse for the same ELT job and split the queries between them manually
D. Enable search optimization on the fact table used by the ELT job
Correct answer: A
Explanation: Because the workload is a small number of long-running, compute-intensive queries with no concurrency or queuing, the bottleneck is per-query compute, not concurrency. Scaling up the existing warehouse (choosing a larger size) increases the compute resources per cluster and is the best first action to reduce individual query runtimes. Multi-cluster scaling, extra warehouses, or search optimization do not directly address this single-query performance issue. Why the other options are wrong:
- Option B: Multi-cluster warehouses improve concurrency by adding more clusters of the same size. They do not make a single query run faster than it would on one cluster of that size, so they do not address long execution time in a low-concurrency workload. - Option C: Splitting the ELT job across two same-sized warehouses adds operational complexity but does not increase compute per query. Each query still runs on a single cluster of the same size, so individual query speed is unlikely to improve meaningfully. - Option D: Search optimization is designed for highly selective point-lookups and some semi-structured patterns. It does not target large scan-heavy aggregations and would add unnecessary maintenance cost without being the best way to reduce the ELT runtime.
Question 6 — Performance Optimization, Querying, and Transformation
An application frequently runs highly selective point lookups against a large Snowflake table that stores customer events. Typical queries search for one or a few specific event IDs and return only a handful of rows. Query profiles show high bytes scanned relative to the tiny number of rows returned. The table is already used by many other analytic workloads, and the team wants to minimize impact on those workloads.
Which Snowflake feature is most appropriate to improve performance for these highly selective point lookups?
A. Increase the size of the warehouse used by the application
B. Define a clustering key on the event ID column
C. Enable search optimization on the event ID column (Correct answer)
D. Create a materialized view that filters only recent events
Correct answer: C
Explanation: Search optimization is designed to accelerate highly selective point or small-range lookups, including equality filters on specific columns. Enabling search optimization on the event ID column adds an auxiliary structure that can locate the needed rows with far fewer bytes scanned, without reorganizing the entire table and while preserving its use for other workloads. Why the other options are wrong:
- Option A: Increasing warehouse size can reduce execution time for CPU- or I/O-intensive queries, but it does not address the root issue of scanning far more data than necessary for highly selective filters. It also increases cost without improving pruning. - Option B: A clustering key can help with pruning when data is organized by the clustering column, but reorganizing a large table around event ID may be expensive and may negatively impact other workloads. Search optimization is better suited specifically for point lookups. - Option D: A materialized view limited to recent events could help queries that only care about a recent subset, but the scenario describes arbitrary point lookups by ID that may hit any part of the table, not necessarily recent data. It also does not directly solve the high bytes scanned for arbitrary IDs.
Question 7 — Account Management and Data Governance
A healthcare company stores patient data in Snowflake. Compliance requires that:
- All users can query every row in the PATIENTS table.
- The SSN column must appear masked for most users.
- Only users with the PRIVILEGED_HEALTHCARE role should see the real SSN values.
Which Snowflake feature is the most appropriate to meet this requirement?
A. Attach a column-level masking policy to the SSN column that returns unmasked values only when CURRENT_ROLE() = 'PRIVILEGED_HEALTHCARE' (Correct answer)
B. Create a row access policy on the PATIENTS table to filter out rows where SSN is not allowed to be seen
C. Use a secure view that filters out the SSN column completely for all users
D. Apply a tag to the SSN column and rely on the tag alone to hide the values
Correct answer: A
Explanation: Column-level masking policies are designed to transform returned values based on session context such as CURRENT_ROLE(). By attaching a masking policy to the SSN column that checks for PRIVILEGED_HEALTHCARE, all rows remain visible, but the SSN is dynamically masked for unauthorized roles and unmasked only for privileged users. Why the other options are wrong:
- Option B: Row access policies control which rows are visible, not how column values are masked. Using a row access policy here would incorrectly restrict rows instead of just masking SSNs. - Option C: A secure view could hide the SSN column entirely, but the requirement states that some users must see the real SSN while others see masks. A single secure view alone cannot provide dynamic masking by role without additional logic, and would typically hide the column rather than mask it. - Option D: Tags provide classification and metadata but do not themselves enforce security. A tag on its own will not cause Snowflake to mask the SSN values without a masking policy or other enforcement mechanism using that tag.
Question 8 — Account Management and Data Governance
A data engineer accidentally deleted several rows from a critical Snowflake table 12 hours ago. The table has a Time Travel retention period of 2 days, and the account uses the standard Snowflake Fail-safe configuration.
The engineer wants to restore the table to its state just before the accidental delete, without involving Snowflake Support.
Which capability should the engineer use?
A. Query the table using Time Travel to an "as of" timestamp and restore the data from that snapshot (Correct answer)
B. Request Snowflake Support to restore the table from Fail-safe because Fail-safe is for user-driven recovery
C. Create a zero-copy clone of the database, which automatically includes the state before deletion
D. Use a row access policy to filter out all rows modified in the last 12 hours
Correct answer: A
Explanation: Time Travel is designed for user-accessible recovery of historical data within the configured retention period. With a 2-day retention and the delete occurring 12 hours ago, the engineer can query the table as of a timestamp just before the delete and either copy the data back or restore the table directly using Time Travel features, without involving Snowflake Support. Why the other options are wrong:
- Option B: Fail-safe is a Snowflake-managed retention meant for disaster recovery and is not directly user-accessible via SQL. It is not the primary mechanism for routine user-driven recovery within the Time Travel window. - Option C: Zero-copy cloning creates a snapshot at the moment of cloning, not retroactively at a prior point in time. Cloning now would include the state after the delete, so it would not help recover the lost rows. - Option D: Row access policies control row visibility based on predicates but do not restore deleted data. Once rows are deleted, they must be recovered using Time Travel, not filtered back in with a policy.
Question 9 — Data Loading, Unloading, and Connectivity
A company keeps raw CSV files in an Amazon S3 bucket. Security requires that Snowflake must not store long‑lived S3 access keys in stage definitions and access must be restricted to a specific bucket/prefix. Data engineers will run COPY INTO commands from this location into Snowflake tables.
Which Snowflake approach best satisfies these requirements?
A. Create an internal named stage and upload the files from S3 into the stage using SnowSQL before running COPY INTO.
B. Create an external stage that directly embeds the S3 access key and secret key, then reference this stage in COPY INTO.
C. Create an external stage that uses a storage integration configured for the S3 bucket/prefix, then reference this stage in COPY INTO. (Correct answer)
D. Use each table’s table stage (@%table_name) and reference the S3 bucket path directly in the COPY INTO command.
Correct answer: C
Explanation: An external stage is required to read files directly from S3. When accessing cloud storage, Snowflake best practice is to configure the stage to use a storage integration, which centralizes and secures credentials and restricts access to specific buckets/prefixes. This satisfies the requirement to avoid long‑lived keys in the stage definition while allowing COPY INTO to load from S3. Why the other options are wrong:
- Option A: Internal named stages are fully managed by Snowflake and avoid external credentials, but this approach requires a separate process to move data from S3 into the internal stage first. It does not directly satisfy the requirement to read from S3 while centrally managing S3 access at the Snowflake boundary. - Option B: Embedding S3 access keys directly in the external stage definition conflicts with the requirement to avoid long‑lived credentials. Snowflake recommends using storage integrations instead of embedding access keys directly in the stage. - Option D: Table stages are internal stages automatically created per table. They cannot themselves reference an external S3 bucket path; an external stage object (or direct S3 URL with credentials) is needed to encapsulate the external storage configuration.
Question 10 — Data Loading, Unloading, and Connectivity
An IoT platform generates individual sensor readings from millions of devices. A custom Java service already processes these events and needs to push each record into Snowflake within a few seconds of arrival. There is no existing cloud object storage layer in the pipeline, and the team wants to avoid managing numerous small files. Which Snowflake ingestion approach best fits this scenario?
A. Buffer events into small CSV files in cloud storage and configure a Snowpipe to load them continuously.
B. Use a Snowpipe Streaming client in the Java service to stream row-based events directly into a Snowflake table. (Correct answer)
C. Use the JDBC driver from the Java service to periodically run large batch INSERT statements every 10 minutes.
D. Write the events to a stage and periodically run COPY INTO <table> from the staged files.
Correct answer: B
Explanation: Snowpipe Streaming is explicitly designed for low-latency ingestion of row-based data without relying on intermediate staged files. Integrating a Snowpipe Streaming client into the existing Java service allows each sensor event (or small micro-batches) to be pushed directly into Snowflake tables within seconds, aligning with the latency and operational requirements. Why the other options are wrong:
- Option A: Building and managing many small files in cloud storage introduces extra components and complexity that the team wants to avoid. It also adds file-level latency that is unnecessary when a row-based streaming solution exists. - Option C: Batch INSERTs via JDBC every several minutes increase latency and require manual batching logic and connection management, which is less efficient and lower fidelity than using Snowpipe Streaming for per-row or small-batch ingestion. - Option D: This approach still relies on creating and managing staged files and batch COPY operations, which conflicts with the goal of pushing events within a few seconds and avoiding file management.
Question 11 — Data Collaboration
A data provider runs Snowflake in AWS us-east-1. A large customer runs Snowflake in Azure in a European region. The customer wants to consume a shared product usage database directly in their Azure account and keep the data in the European Azure region for compliance reasons. The provider agrees that:
- The customer should query the data using their own compute
- The provider will manage and pay for data storage
- No bulk file movement workflows should be built
What must the provider do to enable this cross-cloud, cross-region data sharing in a compliant way?
A. Create a secure share from the AWS us-east-1 database directly to the customer’s Azure account, because shares automatically work across all Snowflake regions
B. Replicate the product usage database to a secondary database in the customer’s Azure European region and then create a secure share (or listing) from that replica to the customer’s Azure account (Correct answer)
C. Export the product usage data from AWS us-east-1 to encrypted files in cloud storage and let the customer load it into their Azure Snowflake account
D. Create a reader account in AWS us-east-1 for the customer and configure network routing so their Azure account can query that reader account
Correct answer: B
Explanation: Cross-region or cross-cloud sharing in Snowflake requires replication of the provider’s database (or account) to the target region. The provider should replicate the product usage database to a secondary database in the customer’s Azure European region and then create a secure share or listing from that replica. The data remains stored in the European Azure region, and the customer queries it using their own compute in that region. Why the other options are wrong:
- Option A: Secure shares do not automatically work across all regions and clouds. Cross-cloud and cross-region sharing requires explicit replication of data or listings to the target region before creating shares from the replica. - Option C: File exports break the requirement to avoid bulk file movement workflows and lose the live, zero-copy sharing benefits. It also shifts ingestion responsibility to the customer rather than using built-in replication and sharing. - Option D: Reader accounts must be in the same region as the provider and are meant for consumers without their own Snowflake account. Here, the customer has their own Azure Snowflake account and wants data in their region, so a reader account in AWS is not appropriate.
Question 12 — Data Collaboration
An HR analytics team wants to share employee data with an internal finance department via Snowflake secure data sharing. Some columns contain sensitive personal information that must not be visible to finance users, but finance needs detailed metrics derived from this data. The HR team has already created non-secure views that perform the required derivations. What is the best way to prepare the data for secure sharing while enforcing these governance requirements?
A. Include the base tables and existing non-secure views in a share and rely on the finance account to apply its own masking.
B. Create SECURE VIEWs that expose only the allowed columns and derived metrics, include those secure views in the share, and exclude the underlying base tables from the share. (Correct answer)
C. Share only the base tables and ask the finance team to recreate the same derivations in their account on top of the shared data.
D. Copy the sensitive columns into a separate table and only share that table so that finance cannot see the original data.
Correct answer: B
Explanation: Non-secure views cannot be directly included in a Snowflake share. To share derived logic while controlling which columns are exposed, the provider should create SECURE VIEWs that implement the necessary derivations and omit or transform sensitive columns. Those secure views can be included in the share while excluding the underlying base tables, giving finance the required metrics without exposing sensitive personal information. Why the other options are wrong:
- Option A: Incorrect because non-secure views are not eligible for inclusion in a share, and relying on the consumer to apply masking does not enforce provider-side governance over what is exposed. - Option C: Incorrect because sharing only the base tables forces the finance team to recreate the HR derivations, leading to duplication and possible inconsistencies, and it does not ensure that sensitive columns are hidden before they reach the consumer. - Option D: Incorrect because sharing only a table of sensitive columns neither hides the sensitive data nor provides the required detailed derived metrics. It also misuses table structure instead of secure views for governance.
SnowPro Core vs SnowPro Advanced: which first?
Take SnowPro Core first. A current Core certification is the prerequisite for every SnowPro Advanced exam (Architect, Data Engineer, Data Analyst, Administrator) and for the Specialty exams.
Core checks broad Snowflake fluency across architecture, performance, governance, loading and sharing; the Advanced exams go deep on one role.
Frequently asked questions about the SnowPro Core exam
What is the SnowPro Core COF-C03 exam?
SnowPro Core (COF-C03) is Snowflake's foundational certification. It covers the AI Data Cloud architecture, performance optimization, account management and governance, data loading and connectivity, and data collaboration, and it is the prerequisite for all SnowPro Advanced and Specialty certifications.
What changed from COF-C02 to COF-C03?
COF-C03 launched on 16 February 2026 and replaced COF-C02, which retired in May 2026. The content moved from 6 domains to 5, with much more on Snowflake's AI Data Cloud (including Cortex AI features) and updated coverage of performance and governance. The format stayed the same: 100 questions, 115 minutes, 750 out of 1000 to pass.
What are the 5 COF-C03 domains and their weights?
Snowflake AI Data Cloud Features & Architecture (31%); Performance Optimization, Querying, and Transformation (21%); Account Management and Data Governance (20%); Data Loading, Unloading, and Connectivity (18%); and Data Collaboration (10%).
Does COF-C03 cover Snowflake AI features?
Yes. The largest domain now includes Snowflake's AI capabilities, such as Cortex functions, Cortex Analyst and Document AI, alongside virtual warehouses, micro-partitions and the cloud services layer. You need to know what each feature does and when to use it, not ML engineering.
How many questions are on the COF-C03 exam and how long is it?
100 multiple-choice and multiple-select questions in 115 minutes, just under 70 seconds per question.
What score do I need to pass SnowPro Core?
750 on a scaled score out of 1000. Because the score is scaled there's no fixed percentage; aim for 80% or better on practice tests.
How much does the SnowPro Core exam cost?
$175 (USD) per attempt, with lower regional pricing in some countries. You register through Pearson VUE.
How long is SnowPro Core valid?
Two years. You can renew by taking the shorter SnowPro Core recertification exam, by passing a SnowPro Advanced or Specialty exam, or through Snowflake's continuing education program.
How hard is the SnowPro Core exam?
It's foundational, but it assumes real hands-on use. People who have only read the documentation often struggle with scenario questions on warehouse sizing, caching and access control. With 6+ months of Snowflake experience and structured practice, most candidates pass.
Are these real SnowPro Core exam questions?
No. Real Snowflake exam questions are confidential and dump sites break Snowflake's certification agreement. Every question here is original, written to the COF-C03 domains, with an explanation for every answer.