CertSafari

    Free Snowflake SnowPro Core Certification (COF-C03) Sample Questions

    35 free sample questions from our bank of 561+, covering every exam domain, with answers and detailed explanations. Updated August 2026.

    Domain 1: Snowflake AI Data Cloud Features and Architecture

    1.2 Use Snowflake Interfaces and tools

    1.Which two of the following are benefits of using the Snowflake VS Code extension?(Select 2)

    1. A.It allows for the creation of interactive dashboards to share with business users.
    2. B.It provides SQL syntax highlighting and autocompletion specific to Snowflake.
    3. C.It automatically optimizes the underlying virtual warehouse configuration.
    4. D.It enables running queries and viewing results directly within the VS Code interface.
    5. E.It is the only tool that can be used to load data into Snowflake.
    Show answer & explanation

    Correct answers: B, DIt provides SQL syntax highlighting and autocompletion specific to Snowflake.; It enables running queries and viewing results directly within the VS Code interface.

    • A. Incorrect. The Snowflake VS Code extension is a development tool focused on SQL editing, query execution, and object management. It does not have features for creating interactive dashboards. Dashboarding and data visualization are typically done in Snowsight or dedicated third-party BI tools.
    • B. Correct. A key feature of the extension is its rich SQL editing support, which includes syntax highlighting, intelligent code completion (IntelliSense) for Snowflake-specific functions and keywords, and snippets. This significantly improves developer productivity and reduces errors.
    • C. Incorrect. The VS Code extension does not manage or automatically optimize virtual warehouse configurations. Warehouse sizing, scaling policies, and other optimizations are configured by users through SQL commands or the Snowsight interface, not through the development extension.
    • D. Correct. The extension allows developers to execute SQL queries and view the results in a new tab directly within the VS Code environment. This creates a seamless workflow, enabling developers to write, test, and iterate on their code without switching applications.
    • E. Incorrect. This is a false statement. While the extension can be used to run `PUT` and `COPY` commands, Snowflake supports numerous data loading methods, including the Snowsight UI, the SnowSQL command-line client, Snowpipe for continuous loading, and a wide ecosystem of connectors and third-party ETL/ELT tools.

    1.2 Use Snowflake Interfaces and tools

    2.A developer working in VS Code with the Snowflake Extension wants to browse database objects like tables and views without writing `SHOW` commands. How can they accomplish this?

    1. A.By using the integrated VS Code terminal to run SnowSQL.
    2. B.By viewing the `config.json` file.
    3. C.By using the built-in database explorer panel provided by the extension.
    4. D.This functionality is not available in the VS Code extension.
    Show answer & explanation

    Correct answer: CBy using the built-in database explorer panel provided by the extension.

    • A. Incorrect. While it's possible to run SnowSQL in the integrated terminal, this method would still require the developer to manually write SQL commands like `SHOW TABLES` or `DESCRIBE TABLE`, which contradicts the requirement to browse objects without writing commands.
    • B. Incorrect. The `config.json` file is used for storing configuration and settings for the VS Code extension or workspace. It does not contain a live view or browser for database objects.
    • C. Correct. The Snowflake Extension for VS Code includes a feature called the Database Explorer. This panel provides a graphical, tree-view interface that allows developers to connect to Snowflake and browse databases, schemas, tables, views, and columns visually, without writing any SQL `SHOW` commands.
    • D. Incorrect. This functionality is a core feature of the Snowflake Extension for VS Code. The database explorer panel is specifically designed for this purpose, making object browsing intuitive and efficient.

    1.6 Explain AI/ML and application development features

    3.A company has a data lake in Snowflake containing product manuals in PDF format and structured product specifications in tables. A user wants to search for 'how to replace the battery' and get relevant results from both the manuals and the tables. Which Snowflake feature is best suited to power this type of unified search?

    1. A.Standard SQL `LIKE` operator
    2. B.Cortex Analyst
    3. C.Cortex Search
    4. D.Snowsight search bar
    Show answer & explanation

    Correct answer: CCortex Search

    • A. Incorrect. The standard SQL `LIKE` operator is used for simple pattern matching within string columns in structured tables. It cannot index or search the content of unstructured files like PDFs and lacks the semantic understanding required to interpret a natural language query.
    • B. Incorrect. Snowflake Cortex Analyst is a feature that allows users to ask analytical questions about their structured data in natural language to get insights and generate SQL. It is not designed to build a unified search application across both structured and unstructured data sources.
    • C. Correct. Snowflake Cortex Search is a fully managed service specifically designed for this use case. It uses vector embeddings to enable semantic search across both structured data (tables) and unstructured data (like PDFs in a stage). This allows users to ask natural language questions and get relevant results from a unified index of all their data.
    • D. Incorrect. The Snowsight search bar is a user interface element for navigating the Snowflake environment. It helps find Snowflake objects like databases, schemas, tables, and warehouses, but it does not perform content-based searches within the data itself.

    1.3 Differentiate Snowflake object hierarchy and types

    4.What is the highest-level object in the Snowflake object hierarchy, used to group multiple accounts?

    1. A.Account
    2. B.Organization
    3. C.User
    4. D.Database
    Show answer & explanation

    Correct answer: BOrganization

    • A. Incorrect. An Account is a primary container for Snowflake objects like databases, warehouses, and users, representing a single customer environment. However, it is not the highest-level object, as multiple accounts can be grouped under a single Organization.
    • B. Correct. An Organization is the highest-level object in the Snowflake hierarchy. It is designed to group and manage multiple Snowflake accounts, providing a way to centralize billing, governance, and administration across an entire enterprise.
    • C. Incorrect. A User is an identity or principal defined within an account for authentication and authorization purposes. Users operate inside an account and are not structural containers in the object hierarchy.
    • D. Incorrect. A Database is a logical container for schemas, tables, views, and other data objects. Databases are contained within a single account and are much lower in the overall Snowflake object hierarchy.

    1.3 Differentiate Snowflake object hierarchy and types

    5.What is the purpose of a `SHARE` object in Snowflake?

    1. A.To share a virtual warehouse's compute resources with another user.
    2. B.To securely share database objects for reading with other Snowflake accounts.
    3. C.To create a copy of a table in another database.
    4. D.To define a format for unloading data to a stage.
    Show answer & explanation

    Correct answer: BTo securely share database objects for reading with other Snowflake accounts.

    • A. Incorrect. SHARE objects are used to share data, not compute resources. In Snowflake's data sharing model, the data provider shares the data, but the data consumer uses their own virtual warehouse (compute resources) to query that data.
    • B. Correct. A SHARE object is the core component of Snowflake's Secure Data Sharing feature. It is used to grant other Snowflake accounts (consumers) secure, read-only access to specific database objects like tables, secure views, and UDFs without creating a physical copy of the data.
    • C. Incorrect. A SHARE object provides live, read-only access to the original data; it does not create a copy of a table. This is a fundamental principle of Snowflake's Secure Data Sharing, which avoids data duplication and storage costs associated with traditional sharing methods.
    • D. Incorrect. This describes the function of a FILE FORMAT object. FILE FORMAT objects are used to define the structure and formatting of data files for loading into or unloading from Snowflake stages. SHARE objects are exclusively for sharing database objects between accounts.

    1.1 Describe and use the Snowflake architecture

    6.A developer accidentally runs an UPDATE statement without a WHERE clause, incorrectly modifying millions of rows in a crucial table. The company is using the Enterprise edition of Snowflake. What feature, enabled by the storage layer's architecture, can be used to quickly recover the table to its previous state?

    1. A.Result Cache
    2. B.Zero-Copy Cloning
    3. C.Time Travel
    4. D.Data Masking
    Show answer & explanation

    Correct answer: CTime Travel

    • A. Incorrect. The Result Cache is a performance optimization feature that stores the results of previously executed queries. It does not store historical versions of table data and cannot be used to undo DML operations like an accidental UPDATE.
    • B. Incorrect. Zero-Copy Cloning creates an instant, metadata-only copy of a table. While it could be used to restore data if a clone was proactively created *before* the accidental UPDATE, it does not provide a mechanism to revert the original, modified table to a previous state.
    • C. Correct. Time Travel is a core Snowflake feature, enabled by its immutable storage layer, that preserves the state of data before it is modified. It allows users to query or restore data from any point within a defined retention period (up to 90 days for Enterprise Edition). This feature is designed specifically for scenarios like recovering from accidental DML operations.
    • D. Incorrect. Data Masking is a security feature used to obfuscate sensitive data in columns for specific roles or users at query time. It has no functionality related to data recovery or reversing data modifications.

    1.1 Describe and use the Snowflake architecture

    7.What is a defining characteristic of Snowflake's multi-cluster shared data architecture?

    1. A.Each virtual warehouse has its own copy of the data, which is synchronized periodically.
    2. B.Multiple virtual warehouses can access the same single copy of data simultaneously.
    3. C.Data is shared between different Snowflake accounts by default.
    4. D.A single, massive compute cluster serves all users in an account.
    Show answer & explanation

    Correct answer: BMultiple virtual warehouses can access the same single copy of data simultaneously.

    • A. Incorrect. This describes a shared-nothing architecture. In Snowflake's multi-cluster shared data architecture, data is stored centrally in a single storage layer. Virtual warehouses access this central copy and do not maintain their own persistent, synchronized copies of the data, although they do maintain a local data cache for performance.
    • B. Correct. This is the fundamental principle of Snowflake's architecture. It decouples storage and compute, allowing multiple, independent virtual warehouses (compute clusters) to concurrently access the same single, centralized copy of data. This design enables workload isolation, elastic scaling, and high concurrency without data duplication.
    • C. Incorrect. Data is isolated within a Snowflake account by default. Sharing data with other accounts is a powerful feature, but it is not automatic and must be explicitly configured by a data provider using Snowflake's Secure Data Sharing functionality.
    • D. Incorrect. This describes a traditional, monolithic data warehouse architecture. Snowflake utilizes multiple, independent virtual warehouses that can be started, stopped, and scaled independently to serve different workloads and users, thus avoiding a single compute bottleneck and enabling concurrent, isolated processing.

    1.4 Configure virtual warehouses

    8.What is the key benefit of a Snowpark-optimized warehouse?

    1. A.It provides faster data ingestion from external stages.
    2. B.It has more memory per node for memory-intensive workloads like ML training.
    3. C.It consumes fewer credits than a standard warehouse of the same size.
    4. D.It is designed exclusively for running SQL queries from the Snowsight UI.
    Show answer & explanation

    Correct answer: BIt has more memory per node for memory-intensive workloads like ML training.

    • A. Incorrect. Data ingestion performance is primarily related to COPY command configurations, file formats, and stage settings, rather than the type of virtual warehouse. Snowpark-optimized warehouses are not specifically designed to accelerate data loading.
    • B. Correct. The primary and key benefit of a Snowpark-optimized warehouse is that it provides significantly more memory per node compared to a standard warehouse of the same size. This additional memory is crucial for memory-intensive operations common in machine learning (ML) model training and large-scale data transformations executed via Snowpark (Python, Java, or Scala).
    • C. Incorrect. A Snowpark-optimized warehouse consumes credits at the same rate as a standard warehouse of the same T-shirt size. While it might complete a specific memory-intensive job faster, potentially reducing the total credits for that job, it does not have an inherently lower credit consumption rate.
    • D. Incorrect. Snowpark-optimized warehouses are specifically designed for programmatic and memory-intensive workloads, particularly those using the Snowpark library, not for running general SQL queries from the Snowsight UI. Standard warehouses are typically used for UI-driven SQL analytics.

    1.4 Configure virtual warehouses

    9.An organization notices its single, X-LARGE warehouse has high credit consumption but is underutilized most of the day. However, it experiences significant query queuing during a one-hour peak period. What is a more cost-effective and performant configuration?

    1. A.Keep the X-LARGE warehouse and increase the AUTO_SUSPEND time.
    2. B.Downsize to a smaller warehouse (e.g., Medium) and configure it as a multi-cluster warehouse to handle the peak load.
    3. C.Create multiple X-LARGE warehouses for different teams.
    4. D.Switch the X-LARGE warehouse to the Economy scaling policy.
    Show answer & explanation

    Correct answer: BDownsize to a smaller warehouse (e.g., Medium) and configure it as a multi-cluster warehouse to handle the peak load.

    • A. Incorrect. Increasing the AUTO_SUSPEND time would worsen the cost issue by keeping the expensive X-LARGE warehouse running longer during idle periods, leading to unnecessary credit consumption. This change does not address the core problem of query queuing during the peak period.
    • B. Correct. This is the ideal solution for workloads with fluctuating concurrency. Downsizing to a smaller base warehouse reduces the baseline credit consumption during the long periods of underutilization. Configuring it as a multi-cluster warehouse allows it to automatically scale out by adding more clusters of the same size during the one-hour peak, handling the increased query load and eliminating queuing. This provides both cost-efficiency and performance elasticity.
    • C. Incorrect. Creating multiple X-LARGE warehouses would significantly increase the overall credit consumption and resource footprint, exacerbating the cost problem. While it might isolate workloads, it is not a cost-effective strategy for managing a short, daily peak on a single workload.
    • D. Incorrect. The scaling policy applies to multi-cluster warehouses. Switching a single, oversized warehouse's policy doesn't solve the fundamental issue. Furthermore, the Economy policy is designed to conserve credits by being slower to start new clusters, which would likely worsen query queuing during a sudden peak. The primary problem is the warehouse size, not the scaling policy.

    1.5 Explain Snowflake storage concepts

    10.A data engineer is using a `TRANSIENT` table for an ETL staging process to optimize storage costs. Which two of the following data protection and recovery features are NOT available for this table type?(Select 2)

    1. A.A Time Travel retention period greater than 1 day
    2. B.Fail-safe
    3. C.Zero-copy cloning
    4. D.Table-level permissions
    5. E.Data loading via `COPY INTO`
    Show answer & explanation

    Correct answers: A, BA Time Travel retention period greater than 1 day; Fail-safe

    • A. Correct. According to Snowflake documentation, transient tables support a Time Travel retention period of either 0 or 1 day. This is a significant difference from permanent tables, which can support up to 90 days of Time Travel (depending on the Snowflake edition). Therefore, a retention period greater than 1 day is not an available feature for transient tables.
    • B. Correct. A primary characteristic of transient tables is that they do not have a Fail-safe period. Fail-safe is Snowflake's 7-day data recovery service for permanent tables after the Time Travel period has ended. The absence of Fail-safe is a key reason why transient tables incur lower storage costs.
    • C. Incorrect. Zero-copy cloning is available for transient tables. A transient table can be cloned to create another transient table instantly. The main limitation is that a transient table cannot be cloned to create a permanent table.
    • D. Incorrect. Standard Snowflake role-based access control (RBAC) applies to transient tables. You can grant and revoke privileges on transient tables just as you would with permanent tables. Unlike temporary tables, they are visible to all users who have the necessary permissions.
    • E. Incorrect. The `COPY INTO <table>` command is a core data loading feature in Snowflake and is fully supported for all table types, including transient tables. There are no restrictions on using this command to load data into a transient table.

    1.6 Explain AI/ML and application development features

    11.What is the primary purpose of Snowpark?

    1. A.To provide a graphical interface for building dashboards and visualizations on Snowflake data.
    2. B.To allow developers to query and process data in Snowflake using familiar programming languages.
    3. C.To manage user access and security roles within Snowflake, including role-based access control and authentication.
    4. D.To create and manage virtual warehouses that allocate compute resources for executing queries and loading data.
    Show answer & explanation

    Correct answer: BTo allow developers to query and process data in Snowflake using familiar programming languages.

    • A. Incorrect. Snowpark is a developer framework and API, not a graphical interface for building dashboards. Dashboarding and data visualization are typically done using Snowflake's UI (Snowsight) or third-party Business Intelligence (BI) tools.
    • B. Correct. Snowpark's primary purpose is to provide APIs for languages like Python, Java, and Scala, allowing developers to query and process data using familiar programming constructs. This enables the creation of data pipelines, User-Defined Functions (UDFs), and applications that execute directly within Snowflake's engine, processing data where it resides without needing to move it.
    • C. Incorrect. Managing user access, security roles, and authentication are fundamental administrative tasks in Snowflake handled through SQL commands and the platform's Identity and Access Management (IAM) features, not through the Snowpark framework.
    • D. Incorrect. Virtual warehouses, which provide the compute resources for queries and Snowpark jobs, are created and managed via the Snowflake UI or SQL commands (e.g., CREATE WAREHOUSE). While Snowpark code execution relies on a virtual warehouse, Snowpark itself is not the tool used to manage these compute resources.

    1.5 Explain Snowflake storage concepts

    12.Which three of the following are valid table types in Snowflake?(Select 3)

    1. A.Permanent
    2. B.Volatile
    3. C.Transient
    4. D.Temporary
    5. E.Archived
    Show answer & explanation

    Correct answers: A, C, DPermanent; Transient; Temporary

    • A. Correct. Permanent tables are the default table type in Snowflake. They persist data until explicitly dropped and fully support both Time Travel and Fail-safe features. They are the most common type used for long-lived, business-critical data.
    • B. Incorrect. 'Volatile' is not a recognized table type in Snowflake. While this term is used in some other database systems, Snowflake uses Temporary tables for session-scoped, non-persistent data.
    • C. Correct. Transient tables are designed for data that needs to persist beyond a user session but does not require the high level of data protection offered by Permanent tables. They have a Time Travel period but do not have a Fail-safe period, which results in lower storage costs.
    • D. Correct. Temporary tables exist only for the duration of the user session in which they were created and are automatically dropped when the session ends. They are not visible to other users or sessions and do not have Fail-safe or a configurable Time Travel period beyond one day, making them ideal for storing intermediate results during data processing.
    • E. Incorrect. 'Archived' is not a native table type in Snowflake. While archiving data is a common data lifecycle management strategy, it is handled through other methods like moving data to external stages or using partner tools, not by defining a table with this specific type.

    Domain 2: Account Management and Data Governance

    2.3 Explain monitoring and cost management

    13.A standard Small virtual warehouse consumes 2 credits per hour. If it runs continuously for exactly 30 minutes, how many credits will it consume?

    1. A.0.5 credits
    2. B.1 credit
    3. C.2 credits
    4. D.4 credits
    Show answer & explanation

    Correct answer: B1 credit

    • A. Incorrect. 0.5 credits would be the correct amount if the warehouse consumed 1 credit per hour. However, a Small warehouse consumes 2 credits per hour. The calculation is (2 credits/hour) * (0.5 hours) = 1 credit.
    • B. Correct. A standard Small virtual warehouse consumes 2 credits for a full hour of usage. Snowflake's billing for warehouse compute is prorated per-second with a 60-second minimum. Since the warehouse runs for 30 minutes (0.5 hours), which is well over the minimum, it will consume exactly half of its hourly rate: 2 credits/hour * 0.5 hours = 1 credit.
    • C. Incorrect. 2 credits is the amount consumed for a full 60 minutes of continuous runtime for a Small warehouse. Since it only ran for 30 minutes, the consumption is half of this amount.
    • D. Incorrect. 4 credits would correspond to a Small warehouse running for two full hours, or a Medium warehouse running for one full hour. The consumption for a Small warehouse running for 30 minutes is 1 credit.

    2.1 Explain Snowflake security model and principles

    14.A data pipeline application needs to connect to Snowflake to load data every hour. The process must be automated and cannot involve interactive login prompts for a password. Which authentication method is most suitable and secure for this use case?

    1. A.Key-pair Authentication
    2. B.Multi-Factor Authentication (MFA)
    3. C.Storing the password in the application's source code
    4. D.Single Sign-On (SSO)
    Show answer & explanation

    Correct answer: AKey-pair Authentication

    • A. Correct. Key-pair authentication is specifically designed for secure, non-interactive, programmatic access to Snowflake. It uses a public/private key pair, where the private key is held securely by the client application and the public key is assigned to the Snowflake user. This method is more secure than password-based authentication because the private key is never transmitted and can be rotated easily, making it ideal for automated data pipelines.
    • B. Incorrect. Multi-Factor Authentication (MFA) requires a second form of verification from the user, such as a code from an authenticator app. This interactive step makes it fundamentally unsuitable for fully automated, unattended processes like a data pipeline.
    • C. Incorrect. Storing a password directly in source code is a major security vulnerability. It exposes the credential to anyone with access to the codebase, makes rotation difficult, and violates security best practices. While it would allow automation, it is not a secure method.
    • D. Incorrect. Single Sign-On (SSO) is designed for interactive user authentication, typically involving a browser-based redirection to an Identity Provider (IdP). It is not suitable for headless, automated services like a data pipeline. Key-pair authentication is the standard and recommended method for this use case.

    2.2 Define data governance features and how they are used

    15.Which of the following Snowflake objects can have tags applied to them?(Select 3)

    1. A.Warehouses
    2. B.Tables
    3. C.Query results
    4. D.Users
    5. E.Time Travel data
    Show answer & explanation

    Correct answers: A, B, DWarehouses; Tables; Users

    • A. Correct. Warehouses are taggable objects in Snowflake. This allows for attaching metadata, such as cost center, environment (e.g., dev, prod), or department, which is useful for governance, tracking costs, and managing resource allocation.
    • B. Correct. Tables, along with their columns, are fundamental objects that can be tagged in Snowflake. Tagging is commonly used to classify data at a granular level (e.g., PII, confidential, public) and to implement data governance policies such as dynamic data masking and row-access policies.
    • C. Incorrect. Query results are transient and not persistent Snowflake objects. Therefore, they cannot be tagged. Tagging is reserved for persistent database objects that have a defined metadata lifecycle.
    • D. Correct. Users are taggable objects in Snowflake. This enables attaching metadata like department, business unit, or project affiliation to user accounts, which is valuable for auditing, governance, and applying security policies.
    • E. Incorrect. Time Travel is a data retention feature associated with tables, not a distinct, taggable object itself. Tags are applied to the table object, and this tagging implicitly covers the historical data accessible via Time Travel, but 'Time Travel data' itself cannot be separately tagged.

    2.1 Explain Snowflake security model and principles

    16.A custom role, `ANALYST_ROLE`, was used to create several tables, making it the owner of those tables. An administrator, using their active role `ADMIN_ROLE`, drops the `ANALYST_ROLE`. What happens to the ownership of the tables previously owned by `ANALYST_ROLE`?

    1. A.The tables are dropped because their owning role no longer exists.
    2. B.Ownership is transferred to the `ACCOUNTADMIN` role by default.
    3. C.Ownership is transferred to the `ADMIN_ROLE`.
    4. D.The tables become ownerless, and a new owner must be granted ownership manually.
    Show answer & explanation

    Correct answer: COwnership is transferred to the `ADMIN_ROLE`.

    • A. Incorrect. Dropping a role does not drop the objects it owns. Snowflake's design prevents objects from being orphaned by automatically transferring ownership.
    • B. Incorrect. Ownership is not transferred to `ACCOUNTADMIN` by default. It is transferred to the specific role that executed the `DROP ROLE` command, which was `ADMIN_ROLE` in this scenario.
    • C. Correct. According to Snowflake documentation, if a role that owns objects is dropped, ownership of those objects is automatically transferred to the role that executed the `DROP ROLE` command. In this case, `ADMIN_ROLE` becomes the new owner.
    • D. Incorrect. Objects in Snowflake cannot become ownerless. The system automatically transfers ownership to the role that dropped the previous owning role to ensure they can still be managed.

    2.2 Define data governance features and how they are used

    17.In the context of data governance, what does data lineage track?

    1. A.The total expense of executing queries on a dataset, encompassing compute and storage fees.
    2. B.The movement of data from its source to its destination, including transformations.
    3. C.The list of all users who have been granted access to a dataset and their associated permissions.
    4. D.The replication status for a dataset, tracking its consistency and availability across regions.
    Show answer & explanation

    Correct answer: BThe movement of data from its source to its destination, including transformations.

    • A. Incorrect. Tracking the total expense of executing queries, including compute and storage fees, is a function of cost monitoring and billing, not data lineage. Data lineage focuses on the provenance and transformation of data itself, rather than the economic metrics of its usage.
    • B. Correct. Data lineage precisely documents the lifecycle of data, tracking its movement from its source to its destination, including all transformations. This visibility is crucial for auditing, impact analysis, debugging data pipelines, and ensuring regulatory compliance.
    • C. Incorrect. Tracking the list of users who have been granted access to a dataset and their permissions is a matter of access control and security auditing, managed through roles and privileges. Data lineage is concerned with how the data flows and changes, not who has the rights to view or modify it.
    • D. Incorrect. The replication status of a dataset, tracking its consistency and availability across regions, relates to data availability, redundancy, and disaster recovery strategies. Data lineage tracks the historical journey and transformation of data, not its physical replication state across different locations.

    Domain 3: Data Loading, Unloading, and Connectivity

    3.3 Identify the different Snowflake Connectors and integrations

    18.An API INTEGRATION object is a prerequisite for creating and calling which type of Snowflake object?

    1. A.A Stored Procedure
    2. B.An External Function
    3. C.A Secure View
    4. D.A Stream
    Show answer & explanation

    Correct answer: BAn External Function

    • A. Incorrect. Stored procedures are blocks of SQL or procedural code (like JavaScript) that execute within the Snowflake environment. They do not require an API INTEGRATION object for their creation or invocation. While a stored procedure can be granted network access to call external APIs, this is a separate feature and does not use the API INTEGRATION object, which is specifically for External Functions.
    • B. Correct. An External Function allows Snowflake to call custom code running on an external platform (e.g., AWS Lambda, Azure Functions). The API INTEGRATION object is a mandatory prerequisite for creating an external function. It acts as a secure proxy, storing essential information like the URL of the remote service (e.g., API Gateway endpoint), allowed network prefixes, and authentication credentials, enabling Snowflake to securely authorize and manage outbound calls.
    • C. Incorrect. A Secure View is a database object used for data security and abstraction. It restricts data visibility based on user access privileges and encapsulates query logic entirely within Snowflake. It has no interaction with external services and therefore does not require an API INTEGRATION object.
    • D. Incorrect. A Stream is a Snowflake object that provides Change Data Capture (CDC) capabilities by tracking changes (inserts, updates, deletes) made to a table. It is an internal object used for incremental data processing and does not involve calling external services, so it does not require an API INTEGRATION object.

    3.3 Identify the different Snowflake Connectors and integrations

    19.A large data processing job is written in Apache Spark. The team wants to use Snowflake as both a data source and a sink for the results. Which component provides the most efficient and scalable way to integrate Spark and Snowflake?

    1. A.A custom script using the JDBC driver
    2. B.Exporting data to S3 and using COPY INTO
    3. C.The Snowflake Connector for Spark
    4. D.The Snowflake Connector for Kafka
    Show answer & explanation

    Correct answer: CThe Snowflake Connector for Spark

    • A. Incorrect. While a JDBC driver can establish a connection, it is not optimized for large-scale, parallel data transfers between Spark and Snowflake. It lacks Spark-specific integrations like predicate pushdown and can lead to performance bottlenecks, high memory overhead, and requires manual connection management, making it inefficient for large jobs.
    • B. Incorrect. This describes the underlying mechanism that the Snowflake Connector for Spark uses, but performing it as a manual, multi-step process is inefficient. It requires extra orchestration to manage the export to an S3 stage and then execute the COPY command, adding latency and complexity compared to the dedicated connector which automates this entire workflow.
    • C. Correct. The Snowflake Connector for Spark is the purpose-built solution for this use case. It provides a high-performance, parallel data source and sink for Spark DataFrames. It integrates directly with Spark's APIs and optimizes data transfer by using Snowflake's internal stages and parallel COPY/UNLOAD commands under the hood. It also supports performance-enhancing features like predicate and query pushdown, making it the most efficient and scalable option.
    • D. Incorrect. The Snowflake Connector for Kafka is designed specifically for ingesting streaming data from Apache Kafka topics into Snowflake tables. It is not intended for use with Apache Spark batch or streaming jobs and does not integrate with the Spark DataFrame API.

    3.1 Perform data loading and unloading

    20.A team is loading data from multiple files in a stage. One of the files is completely corrupted. The desired behavior is to skip the single corrupted file entirely and continue loading the data from the other, valid files. Which ON_ERROR option should they use?

    1. A.ABORT_STATEMENT
    2. B.CONTINUE
    3. C.SKIP_FILE
    4. D.ON_ERROR = 'SKIP_CORRUPTED'
    Show answer & explanation

    Correct answer: CSKIP_FILE

    • A. Incorrect. `ABORT_STATEMENT` is the default behavior. It stops the entire load operation upon encountering the first error in any file, which is the opposite of the desired outcome.
    • B. Incorrect. The `CONTINUE` option is used to skip individual erroneous rows within a file and continue loading the valid rows from that same file. It does not skip an entire file if the file itself is corrupted and cannot be parsed.
    • C. Correct. The `SKIP_FILE` option instructs the COPY command to skip the current file entirely if any error is found within it and move on to the next file. This perfectly matches the requirement to bypass a single corrupted file and load the remaining valid ones.
    • D. Incorrect. `ON_ERROR = 'SKIP_CORRUPTED'` is not a valid syntax for the ON_ERROR copy option in Snowflake. The correct value to achieve the desired behavior is `SKIP_FILE`.

    3.2 Perform automated data ingestion

    21.What is the primary purpose of Snowpipe?

    1. A.To execute complex analytical queries on staged data when new files trigger a notification.
    2. B.To continuously load small volumes of data as soon as it's available in a stage.
    3. C.To perform bulk data unloading to an external stage in response to cloud event notifications.
    4. D.To automatically execute SQL tasks on a recurring basis as defined by a standard cron schedule.
    Show answer & explanation

    Correct answer: BTo continuously load small volumes of data as soon as it's available in a stage.

    • A. Incorrect. Snowpipe is a data ingestion service, not a query execution engine. Complex analytical queries are handled by Snowflake's virtual warehouses and query processing engine.
    • B. Correct. Snowpipe is specifically designed for continuous, near real-time data ingestion. It automates the process of loading small volumes of data (micro-batches) as soon as new files are detected in an external or internal stage, making it ideal for event-driven data pipelines.
    • C. Incorrect. Snowpipe's function is to load data into Snowflake tables. Unloading data from Snowflake to an external stage is accomplished using the `COPY INTO <location>` command, not Snowpipe.
    • D. Incorrect. The scheduling of recurring SQL statements or tasks is the specific purpose of Snowflake Tasks. Snowpipe is focused on continuous data ingestion triggered by file arrival, not on a fixed schedule.

    3.1 Perform data loading and unloading

    22.When using the `COPY INTO <table>` command, which copy option allows a user to specify a regular expression to load only a subset of files from a stage location?

    1. A.FILES
    2. B.PATTERN
    3. C.REGEX
    4. D.FILTER
    Show answer & explanation

    Correct answer: BPATTERN

    • A. Incorrect. The `FILES` copy option is used to specify an explicit list of one or more file names to be loaded. It does not accept a regular expression for pattern matching.
    • B. Correct. The `PATTERN` copy option is used to specify a POSIX-style regular expression that filters the set of files to be loaded from a stage. For example, `PATTERN='.*data_2024.*.csv.gz'` would load all gzipped CSV files from the stage path that contain 'data_2024' in their names.
    • C. Incorrect. While the functionality involves using a regular expression, the keyword for the copy option in a `COPY INTO <table>` command is `PATTERN`, not `REGEX`.
    • D. Incorrect. `FILTER` is not a valid copy option for the `COPY INTO <table>` command to filter files based on their names. The correct option is `PATTERN`.

    Domain 4: Performance Optimization, Querying, and Transformation

    4.1 Evaluate query performance

    23.What are two potential causes of data spilling to storage during query execution?(Select 2)

    1. A.A query that processes a volume of data that fits entirely within warehouse memory.
    2. B.A `GROUP BY` operation on a column with very high cardinality.
    3. C.A `SELECT *` from a very small table.
    4. D.A window function with a very large partition.
    5. E.Using the result cache.
    Show answer & explanation

    Correct answers: B, DA `GROUP BY` operation on a column with very high cardinality.; A window function with a very large partition.

    • A. This is incorrect. Data spilling occurs precisely when the data being processed by an operation *exceeds* the available memory of a warehouse node. If the data fits entirely within memory, there is no need to spill to storage.
    • B. This is correct. A `GROUP BY` operation on a high-cardinality column requires creating and maintaining a state for each unique group. If there are millions or billions of unique values, the memory required to hold this aggregation state can easily exceed the available RAM, forcing Snowflake to spill intermediate results to local storage.
    • C. This is incorrect. Processing a very small table requires minimal memory and does not generate large intermediate data structures. It is highly unlikely to cause memory pressure that would lead to data spilling.
    • D. This is correct. Window functions operate on partitions of data. If a single partition is very large, Snowflake may need to hold all the rows for that partition in memory simultaneously to perform the calculation (e.g., sorting). This can exhaust available memory and cause a spill to storage.
    • E. This is incorrect. The result cache is a performance feature that bypasses query execution entirely by returning a previously computed result set. Since the query does not execute, it consumes no warehouse resources and therefore cannot cause data spilling. It is a mechanism to avoid resource usage, not a cause of it.

    4.4 Perform data transformation techniques

    24.A developer has loaded a JSON file containing an array of user tags into a VARIANT column. A sample row looks like this: `{"id": 1, "tags": ["premium", "active"]}`. The developer needs to transform this data so that each tag appears on a separate row. Which function should be used?

    1. A.PARSE_JSON()
    2. B.FLATTEN()
    3. C.SPLIT()
    4. D.UNPIVOT()
    Show answer & explanation

    Correct answer: BFLATTEN()

    • A. Incorrect. The PARSE_JSON() function is used to convert a JSON-formatted string into a VARIANT data type. In this scenario, the data is already in a VARIANT column, so this function is not needed. More importantly, it does not perform the required transformation of exploding array elements into separate rows.
    • B. Correct. The FLATTEN() function is a table function specifically designed to expand semi-structured data, such as an array within a VARIANT, into multiple rows. It produces one row for each element in the array, which is exactly the transformation required to get each user tag on a separate row.
    • C. Incorrect. The SPLIT() function operates on a string, dividing it into an array of substrings based on a specified delimiter. It does not operate on an existing array within a VARIANT column and does not produce separate rows.
    • D. Incorrect. UNPIVOT is a relational operator that transforms columns into rows within a traditional table structure. It is not designed to work with semi-structured data types like arrays stored within a VARIANT column.

    4.3 Use Snowflake caching

    25.Can a user disable the Query Result Cache for their session?

    1. A.No, it is a global setting that cannot be changed.
    2. B.Yes, by using the `ALTER SESSION SET USE_CACHED_RESULT = FALSE;` command.
    3. C.Yes, but only users with the ACCOUNTADMIN role can disable it.
    4. D.No, caching is a fundamental part of the Snowflake architecture and is always active.
    Show answer & explanation

    Correct answer: BYes, by using the `ALTER SESSION SET USE_CACHED_RESULT = FALSE;` command.

    • A. Incorrect. The use of the Query Result Cache is not strictly a global-only setting. It can be controlled and disabled at the session level by individual users.
    • B. Correct. A user can disable the use of the Query Result Cache for their current session by executing the `ALTER SESSION SET USE_CACHED_RESULT = FALSE;` command. This is a session-level parameter that instructs Snowflake not to return cached results for any subsequent queries within that specific session.
    • C. Incorrect. Any user can disable the result cache for their own session. The ACCOUNTADMIN role is not required for this action. While an ACCOUNTADMIN can change account-level defaults for this parameter, they are not required for session-level overrides.
    • D. Incorrect. Although caching is a core and fundamental part of Snowflake's performance architecture, its use is not mandatory and can be disabled for a specific session using the `USE_CACHED_RESULT` session parameter.

    4.2 Optimize query performance

    26.A company stores sales transaction data in a large table. Most of the analytical queries filter the data by `TRANSACTION_DATE`. To improve query performance by reducing the amount of data scanned for these queries, what is the best action to take?

    1. A.Create a materialized view that aggregates all sales data.
    2. B.Enable the Search Optimization Service on the table.
    3. C.Define a clustering key on the `TRANSACTION_DATE` column.
    4. D.Enable the Query Acceleration Service for the warehouse.
    Show answer & explanation

    Correct answer: CDefine a clustering key on the `TRANSACTION_DATE` column.

    • A. Incorrect. A materialized view is designed to pre-compute the results of complex queries, particularly those involving aggregations or joins. While it can improve performance for queries that match its definition, creating a view that simply aggregates all sales data does not directly address the need to reduce data scanned from the base table for arbitrary date-range filters. It wouldn't improve the micro-partition pruning on the base table.
    • B. Incorrect. The Search Optimization Service is a performance feature that accelerates highly selective point lookup queries (e.g., `WHERE id = 'value'`) and certain substring or text searches. It is not designed or optimized for range-based queries, such as filtering on a `TRANSACTION_DATE` range, and therefore would not be the best solution to reduce data scanned in this scenario.
    • C. Correct. Defining a clustering key on the `TRANSACTION_DATE` column co-locates rows with similar dates into the same or adjacent micro-partitions. This physical organization of data allows Snowflake's query optimizer to perform effective micro-partition pruning. When a query filters by `TRANSACTION_DATE`, Snowflake can use the metadata to quickly identify and scan only the relevant micro-partitions, significantly reducing the total amount of data scanned and improving query performance.
    • D. Incorrect. The Query Acceleration Service (QAS) improves the performance of large, complex queries by providing additional, serverless compute resources to offload portions of the query workload. QAS speeds up the query *execution* time but does not reduce the amount of data that needs to be *scanned* from the storage layer. The primary goal stated in the question is to reduce the volume of data scanned.

    4.2 Optimize query performance

    27.Which system functions provide metrics about the clustering health of a table, such as clustering depth? (Choose two.)(Select 2)

    1. A.`SYSTEM$CLUSTERING_DEPTH`
    2. B.`GET_DDL('table', 'my_table')`
    3. C.`TABLE_STORAGE_METRICS`
    4. D.`SYSTEM$CLUSTERING_INFORMATION`
    Show answer & explanation

    Correct answers: A, D`SYSTEM$CLUSTERING_DEPTH`; `SYSTEM$CLUSTERING_INFORMATION`

    • A. Correct. According to Snowflake documentation, the `SYSTEM$CLUSTERING_DEPTH` function specifically computes and returns the average clustering depth for a table. A smaller average depth indicates better clustering, as fewer micro-partitions need to be scanned for queries.
    • B. Incorrect. The `GET_DDL` function is a utility that returns the DDL statement required to recreate a specified object, such as a table. It provides metadata about the table's structure, not performance or health metrics like clustering depth.
    • C. Incorrect. The `TABLE_STORAGE_METRICS` view in the Information Schema provides details about the storage usage of tables, including active bytes, time-travel bytes, and failsafe bytes. It does not provide metrics related to clustering performance or health.
    • D. Correct. The `SYSTEM$CLUSTERING_INFORMATION` function returns a comprehensive JSON object with detailed clustering metrics. This object includes the `average_depth` key, which represents the clustering depth, as well as other useful metrics like `average_overlaps` and a `partition_depth_histogram`.

    4.1 Evaluate query performance

    28.What is the primary benefit of effective query pruning in Snowflake?

    1. A.It reduces the number of virtual warehouses needed by consolidating multiple workloads.
    2. B.It increases the size of the result cache to store more query results for later reuse.
    3. C.It reduces the amount of data scanned from storage, improving performance.
    4. D.It automatically rewrites SQL queries to be more efficient by optimizing join orders.
    Show answer & explanation

    Correct answer: CIt reduces the amount of data scanned from storage, improving performance.

    • A. Incorrect. Query pruning's main purpose is to optimize data scanning for individual queries, not to manage compute infrastructure. While more efficient queries can lead to lower overall compute consumption, pruning does not directly reduce the number of virtual warehouses needed, which is a separate administrative decision.
    • B. Incorrect. Query pruning and the result cache are two distinct and independent performance features in Snowflake. Pruning minimizes the data read from storage based on query predicates, while the result cache stores the final results of previously executed queries to avoid re-computation. Pruning has no effect on the size or operation of the result cache.
    • C. Correct. The primary and most direct benefit of query pruning is that it significantly reduces the amount of data that needs to be scanned from storage. By leveraging metadata stored for micro-partitions, Snowflake's optimizer can determine which partitions do not contain relevant data for a query's filters and skip reading them entirely. This reduction in I/O is the core mechanism through which pruning improves query performance and reduces compute costs.
    • D. Incorrect. Query pruning is a data access optimization technique, not a code modification one. It involves eliminating unnecessary micro-partitions from a table scan. While Snowflake's optimizer does perform various query rewrites to improve efficiency, this is a separate and distinct optimization mechanism from pruning.

    4.3 Use Snowflake caching

    29.What is the primary purpose of the Warehouse Cache?

    1. A.To store final, aggregated query results for 24 hours.
    2. B.To reduce network latency by storing data closer to the compute resources.
    3. C.To store metadata for faster query compilation.
    4. D.To store the role and permissions for the current user session.
    Show answer & explanation

    Correct answer: BTo reduce network latency by storing data closer to the compute resources.

    • A. Incorrect. This describes the Query Result Cache, which stores the results of previously executed queries in the Cloud Services Layer for up to 24 hours (extendable to 30 days with reuse). The Warehouse Cache stores raw data micro-partitions, not aggregated results.
    • B. Correct. The Warehouse Cache (Local Disk Cache) stores micro-partitions on the local SSDs of the virtual warehouse nodes. This reduces the need to fetch data from remote cloud storage, thereby lowering network latency and improving query performance for subsequent queries accessing the same data.
    • C. Incorrect. Metadata caching is handled by the Metadata Cache in the Cloud Services Layer, which stores table schemas, statistics, and other metadata to accelerate query planning and pruning. The Warehouse Cache stores actual data, not metadata.
    • D. Incorrect. Role and permission information is managed by Snowflake's access control system and is not stored in the Warehouse Cache. The Warehouse Cache is solely for caching data micro-partitions to speed up query execution.

    Domain 5: Data Collaboration

    5.3 Share data using the Snowflake Marketplace and listings

    30.What are the primary differences between a public listing and a private listing?(Select 3)

    1. A.Public listings are discoverable by any Snowflake user in the Marketplace.
    2. B.Private listings can only be accessed by accounts specified by the provider.
    3. C.Public listings can only offer free data, while private listings can be paid.
    4. D.Private listings are used for sharing within a Snowflake organization or with specific partners.
    5. E.Only public listings can offer Native Apps.
    Show answer & explanation

    Correct answers: A, B, DPublic listings are discoverable by any Snowflake user in the Marketplace.; Private listings can only be accessed by accounts specified by the provider.; Private listings are used for sharing within a Snowflake organization or with specific partners.

    • A. Correct. Public listings are designed for broad visibility. They are searchable and discoverable by any consumer account within the Snowflake Marketplace, making them suitable for mass distribution of data products.
    • B. Correct. Private listings provide a mechanism for controlled access. The provider explicitly specifies which consumer accounts can discover and access the listing, making it invisible to all other Snowflake accounts. This is also referred to as sharing with specific consumers.
    • C. Incorrect. Both public and private listings support various pricing models, including free, trial-based, and paid offerings. The monetization strategy is independent of the listing's visibility type (public vs. private).
    • D. Correct. This describes a primary use case for private listings. They are the ideal mechanism for sharing data, data services, or Native Apps with a select group of consumers, such as specific business partners, customers, or other accounts within the same organization.
    • E. Incorrect. Snowflake Native Apps can be distributed through both public listings for broad access and private listings for targeted sharing, such as with beta testers or specific enterprise customers.

    5.1 Explain data collaboration and protection

    31.A data analyst needs to compare the current state of the `INVENTORY` table with its state at the end of the business day yesterday. They do not want to restore or create a new table. Which SQL clause would allow them to query the table's historical data?

    1. A.The `HISTORY()` clause.
    2. B.The `AS OF YESTERDAY` clause.
    3. C.The `AT` or `BEFORE` clause.
    4. D.The `VERSION()` clause.
    Show answer & explanation

    Correct answer: CThe `AT` or `BEFORE` clause.

    • A. Incorrect. Snowflake does not have a `HISTORY()` clause for querying the historical state of table data. While Snowflake provides access to historical metadata through functions like `QUERY_HISTORY` or views in the `INFORMATION_SCHEMA`, these are used for auditing and performance analysis, not for retrieving the data within a table as it existed at a past point in time.
    • B. Incorrect. The `AS OF YESTERDAY` syntax is not a valid SQL clause in Snowflake. To query historical data, Snowflake's Time Travel feature requires the use of the `AT` or `BEFORE` clauses with a specific timestamp, offset, or statement ID.
    • C. Correct. The `AT` and `BEFORE` clauses are the core components of Snowflake's Time Travel feature. They allow users to query the state of a table at a specific point in the past without restoring a backup or creating a clone. The analyst could use a query like `SELECT * FROM INVENTORY AT (TIMESTAMP => 'YYYY-MM-DD 23:59:59'::timestamp_ltz)` to see the table's data at the end of the previous day.
    • D. Incorrect. Snowflake SQL does not use a `VERSION()` clause to query historical table data. The correct and supported syntax for accessing past data states is through the `AT` or `BEFORE` clauses as part of Snowflake's Time Travel functionality.

    5.1 Explain data collaboration and protection

    32.Which two factors can impact the total storage costs associated with Time Travel?(Select 2)

    1. A.The number of users querying the historical data.
    2. B.The number of days configured for the data retention period.
    3. C.The size of the virtual warehouse used for queries.
    4. D.The amount of data that is changed or deleted in the tables (data churn).
    5. E.The number of clones created from the tables.
    Show answer & explanation

    Correct answers: B, DThe number of days configured for the data retention period.; The amount of data that is changed or deleted in the tables (data churn).

    • A. Incorrect. The number of users querying historical data impacts compute costs, as queries are processed by virtual warehouses. It does not affect the amount of storage consumed by Time Travel, which is based on the volume of historical data retained, not query activity.
    • B. Correct. The data retention period is a primary factor in Time Travel storage costs. A longer retention period (e.g., 90 days for Enterprise Edition) means Snowflake keeps historical data versions for a longer time, which directly increases the amount of stored historical data and the associated costs.
    • C. Incorrect. The size of a virtual warehouse affects compute costs and query performance. It is completely independent of storage costs, which are billed separately. Time Travel storage is determined by the volume of data, not the compute resources used to query it.
    • D. Correct. The volume of data that is changed or deleted, often referred to as 'data churn', directly impacts Time Travel storage. Every UPDATE or DELETE operation causes Snowflake to retain the previous state of the data in new micro-partitions. High data churn results in more historical data versions being stored, thus increasing storage costs.
    • E. Incorrect. Creating a clone is a zero-copy operation and does not immediately increase storage. While modifications to the clone or the source table after cloning will generate new micro-partitions and accrue storage costs, the mere number of clones created is not a direct factor influencing the Time Travel storage costs of the original table.

    5.2 Explain Snowflake's data sharing capabilities

    33.Which statements are true about the data in a Data Clean Room environment?(Select 2)

    1. A.Both parties can see the raw, row-level data of the other party.
    2. B.The data can be joined and analyzed based on a common identifier.
    3. C.The raw data from each party remains in their own account and is not exposed to the other.
    4. D.All queries in a clean room are run by a neutral third-party Snowflake account.
    5. E.Data Clean Rooms require data to be copied into a shared account.
    Show answer & explanation

    Correct answers: B, CThe data can be joined and analyzed based on a common identifier.; The raw data from each party remains in their own account and is not exposed to the other.

    • A. Incorrect. The fundamental purpose of a Data Clean Room is to prevent parties from seeing each other's raw, row-level data. The goal is to enable joint analysis and derive aggregate insights without exposing sensitive or personally identifiable information, thus preserving data privacy and control.
    • B. Correct. A primary function of a Data Clean Room is to allow different parties to join their respective datasets on a common identifier (e.g., an email address, user ID). This enables collaborative analysis to identify overlaps and insights while using privacy-enhancing techniques to prevent exposure of the underlying raw data.
    • C. Correct. In the Snowflake Data Clean Room model, data does not move or get copied. Each party's raw data remains securely within their own Snowflake account. Access for analysis is provided through secure data sharing, often using secure views or secure user-defined functions (UDFs) that enforce specific privacy rules and prevent direct exposure of the source data.
    • D. Incorrect. While using a neutral third-party account is one possible architectural pattern for a Data Clean Room, it is not a requirement. Queries can be initiated by any of the participating accounts, depending on the specific governance and trust model agreed upon by the parties.
    • E. Incorrect. Data Clean Rooms in Snowflake leverage the platform's native secure data sharing capabilities, which operate on a zero-copy principle. This means data is not copied or moved into a shared account; instead, it is shared live from the provider's account, ensuring data providers retain full control and security over their data.

    5.2 Explain Snowflake's data sharing capabilities

    34.A consumer has created a database named `PROD_SHARE_DB` from a share. They now want to query the `CUSTOMERS` table within the `PUBLIC` schema of that database. Which of the following is a valid query?

    1. A.SELECT * FROM CUSTOMERS;
    2. B.SELECT * FROM PROD_SHARE_DB.PUBLIC.CUSTOMERS;
    3. C.SELECT * FROM provider_account.PROD_SHARE_DB.PUBLIC.CUSTOMERS;
    4. D.QUERY PROD_SHARE_DB.PUBLIC.CUSTOMERS;
    Show answer & explanation

    Correct answer: BSELECT * FROM PROD_SHARE_DB.PUBLIC.CUSTOMERS;

    • A. This query is incorrect because it uses an unqualified table name. It would only succeed if the session's current context (database and schema) was already set to `PROD_SHARE_DB` and `PUBLIC` respectively. Without that context, Snowflake cannot locate the `CUSTOMERS` table. A fully-qualified name is the most reliable and explicit way to reference an object.
    • B. This query is correct. It uses a fully-qualified three-part identifier (`database.schema.table`), which explicitly tells Snowflake where to find the `CUSTOMERS` table. When a consumer creates a database from a share, they query it just like any other database in their account using the name they assigned (`PROD_SHARE_DB` in this case).
    • C. This query is incorrect. Snowflake does not use a four-part identifier that includes the provider's account name for querying shared data. Once a consumer creates a database from a share, that database becomes part of their own account's namespace and is referenced using its local name (`PROD_SHARE_DB`).
    • D. This query is incorrect because it is syntactically invalid. The standard SQL keyword to retrieve data from a table in Snowflake is `SELECT`, not `QUERY`.

    5.3 Share data using the Snowflake Marketplace and listings

    35.A user with the ACCOUNTADMIN role is trying to query a database that was just acquired from the Snowflake Marketplace. The query fails with an error stating the user does not have a warehouse selected. What is the most likely cause of this error?

    1. A.Marketplace data access is restricted to the SYSADMIN role by default.
    2. B.The user's session lacks an active, running virtual warehouse selection.
    3. C.The provider has not granted permission to the user's account yet.
    4. D.The data from the Marketplace has not finished copying to the account yet.
    Show answer & explanation

    Correct answer: BThe user's session lacks an active, running virtual warehouse selection.

    • A. Incorrect. Marketplace data access is not restricted to the SYSADMIN role by default; any role with the necessary privileges, including ACCOUNTADMIN, can query the data. The error message specifically indicates a missing warehouse, not a role-based permission issue.
    • B. Correct. The error "user does not have a warehouse selected" directly means the user's session lacks an active, running virtual warehouse selection. In Snowflake, all queries require a virtual warehouse to execute, regardless of the user's role, including ACCOUNTADMIN.
    • C. Incorrect. If the provider had not granted permission, the error would relate to object existence or authorization, not a missing warehouse. The given error is specific to the absence of a compute resource in the session.
    • D. Incorrect. Marketplace data is shared via Secure Data Sharing and is available immediately upon acquisition; it is not copied into the account. The error points to a missing warehouse, not a data availability or replication delay.

    Want the full experience?

    These are just samples. Practice the full Snowflake SnowPro Core Certification (COF-C03) question bank in quiz mode — free, no signup, with domain practice and exam simulation.