CertSafari

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

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

    Domain 1: Snowflake AI Data Cloud Features and Architecture

    Subdomain 1.2: Use Snowflake Interfaces and tools

    1.A platform team wants one command-line tool they can use inside CI to manage Snowpark Container Services, Git repositories, and Streamlit deployments without opening a browser. Which tool should they adopt?

    1. A.Adopt the Snowflake CLI, an open-source command-line tool that manages Snowpark Container Services, Git repositories, and Streamlit deployments in scripts.
    2. B.Adopt the VS Code extension, which requires an interactive editor session and cannot run unattended inside a headless CI pipeline.
    3. C.Adopt Snowsight's web interface, which requires manual browser clicks for each deployment step and offers no scriptable command interface.
    4. D.Adopt SnowSQL exclusively, since it was designed specifically for container service and Git repository management beyond plain SQL execution.
    Show answer & explanation

    Correct answer: A — Adopt the Snowflake CLI, an open-source command-line tool that manages Snowpark Container Services, Git repositories, and Streamlit deployments in scripts.

    • A. The Snowflake CLI is the open-source command-line tool purpose-built for scripted, developer-centric workloads, covering Snowpark Container Services, Git integration, and Streamlit deployment commands that a CI pipeline can call directly.
    • B. The VS Code extension is designed for interactive use inside an editor session and is not intended to run unattended in a headless continuous integration pipeline.
    • C. Snowsight is a graphical browser interface requiring manual clicks for each step, which does not provide the scriptable, headless command interface the team needs for CI automation.
    • D. SnowSQL was designed for interactive and scripted SQL execution, not for managing container services or Git repositories, so it is not the right tool for this broader automation need.

    Subdomain 1.5: Explain Snowflake storage concepts

    2.A data platform team is migrating an existing data lake, currently organized as Parquet files under Apache Iceberg table metadata in an S3 bucket, so that Snowflake can both read and write to it while other engines like Spark continue reading the same files. They want Snowflake to fully manage compaction and metadata maintenance for the tables it writes to. Which storage object and catalog configuration fits this goal?

    1. A.An Apache Iceberg table configured with Snowflake as the catalog, using an external volume to point at the S3 bucket so Snowflake handles read/write and maintenance.
    2. B.A standard external table over the S3 bucket, since external tables natively understand Iceberg snapshots and automatically compact files on Snowflake's schedule.
    3. C.A transient table loaded nightly from the S3 bucket via `COPY INTO`, since transient tables can register themselves as an Iceberg catalog for other engines.
    4. D.A materialized view built on top of a stage referencing the S3 bucket, since materialized views can write Iceberg-compatible Parquet files back to the same location.
    Show answer & explanation

    Correct answer: A — An Apache Iceberg table configured with Snowflake as the catalog, using an external volume to point at the S3 bucket so Snowflake handles read/write and maintenance.

    • A. This is correct: an Iceberg table with Snowflake configured as the catalog and an external volume pointing at the bucket gives Snowflake full read/write access and automatic lifecycle maintenance like compaction, while the open Iceberg format keeps the files readable by other engines.
    • B. This is incorrect because standard external tables are read-only metadata layers over files and do not understand Iceberg snapshot semantics or perform any compaction; they cannot write back to the source files at all.
    • C. This is incorrect because transient tables are regular Snowflake-managed tables with no ability to register as an Iceberg catalog or expose their storage format to external engines like Spark.
    • D. This is incorrect because materialized views store their results as Snowflake-internal storage tied to a base query, not as Iceberg-format Parquet files in customer-managed cloud storage, so they cannot serve as a shared data lake object.

    Subdomain 1.5: Explain Snowflake storage concepts

    3.A SaaS vendor wants to share a curated dataset with customers through a view, but must ensure customers cannot see the view's SQL definition, the names of the underlying base tables, or bypass row-level filtering logic embedded in the view by inspecting query plans. Which view configuration meets this requirement?

    1. A.A secure view, because it hides the view definition and underlying table details from users who only have privileges to query the view itself.
    2. B.A standard view, because Snowflake automatically hides the SQL definition of every view from any role that was not used to create it originally.
    3. C.A materialized view, because materializing the results physically separates the output from the base tables, preventing any visibility into source data.
    4. D.A dynamic table, because its declarative refresh pipeline automatically strips base table references from the query plan shown to downstream consumers.
    Show answer & explanation

    Correct answer: A — A secure view, because it hides the view definition and underlying table details from users who only have privileges to query the view itself.

    • A. This is correct: a secure view is specifically designed to hide the view's definition and details of the underlying base tables from users who can only query the view, and it prevents query optimization from leaking data that row-level filtering is meant to protect, which fits data-sharing scenarios.
    • B. This is incorrect because a standard, non-secure view does not hide its definition from all roles; other privileged users can inspect the view's SQL text and the optimizer may expose underlying data through query plan details.
    • C. This is incorrect because materializing a view's results does not, by itself, hide the view's definition or prevent visibility into filtering logic; secrecy is controlled by the secure view property, not by whether results are stored.
    • D. This is incorrect because dynamic tables are a refresh mechanism for materializing query results and have no built-in feature for hiding base table references or definitions from downstream consumers.

    Subdomain 1.4: Configure virtual warehouses

    4.A team notices that their reporting warehouse consistently shows an hour of billed compute even on days when the last query finished only 10 minutes into that hour. AUTO_SUSPEND is set to 3600 seconds. What should they change?

    1. A.Lower AUTO_SUSPEND to a much shorter interval, such as 60-300 seconds, so the warehouse suspends soon after the last query finishes instead of billing for a full extra hour idle.
    2. B.Disable auto-resume entirely so the warehouse can never restart automatically again, which the team hopes stops it from accumulating any further idle credit charges after that last query.
    3. C.Switch the warehouse to Snowpark-optimized so its extra per-node memory somehow offsets the credit cost that the long idle period between queries is currently adding to the bill.
    4. D.Increase MIN_CLUSTER_COUNT so a second cluster shares the idle billing load, which the team expects will reduce the effective credits charged per cluster-hour during that idle stretch.
    Show answer & explanation

    Correct answer: A — Lower AUTO_SUSPEND to a much shorter interval, such as 60-300 seconds, so the warehouse suspends soon after the last query finishes instead of billing for a full extra hour idle.

    • A. A 3600-second AUTO_SUSPEND keeps the warehouse resumed for a full hour of idle time after the last query, so shortening it to a couple of minutes stops billing once activity actually ends.
    • B. Disabling auto-resume only changes how the warehouse restarts for new queries; it does not shorten how long an already-resumed warehouse stays billing while idle, which is controlled by AUTO_SUSPEND.
    • C. Snowpark-optimized warehouses add per-node memory for ML and UDF workloads at a higher cost, which does not offset or reduce idle-time billing caused by a long AUTO_SUSPEND value.
    • D. Adding a second cluster via MIN_CLUSTER_COUNT increases, rather than shares or reduces, the credits billed per hour since each active cluster is billed independently at the warehouse's per-cluster rate.

    Subdomain 1.4: Configure virtual warehouses

    5.A team resizes a warehouse from Medium to X-Large while a long-running query is already executing on it, expecting the query to speed up immediately. What actually happens?

    1. A.The already-running query keeps executing on the original compute resources it started with, and only queries submitted after the resize completes benefit from the added compute.
    2. B.The running query is automatically requeued and restarted entirely from the beginning, so it can immediately take advantage of the newly available, larger warehouse size instead.
    3. C.The resize request is rejected outright by Snowflake whenever any query happens to be actively running on the warehouse that the team is trying to resize.
    4. D.The running query is paused mid-execution until the resize operation finishes, then resumes automatically using the newly added compute nodes to complete its remaining work.
    Show answer & explanation

    Correct answer: A — The already-running query keeps executing on the original compute resources it started with, and only queries submitted after the resize completes benefit from the added compute.

    • A. A warehouse resize does not migrate a query already in flight onto new compute; that query keeps running on the resources it started with, and only subsequently submitted queries get the added capacity.
    • B. Snowflake does not restart in-flight queries to move them onto newly added compute after a resize; the running query is left untouched and continues on its original nodes.
    • C. Resizing a warehouse while queries are running is a supported operation and is not rejected; it simply does not retroactively speed up queries already executing.
    • D. Snowflake does not pause an executing query to wait for a resize to complete; the query continues uninterrupted on its original compute allocation.

    Subdomain 1.6: Explain AI/ML and application development features

    6.A data engineer has a pre-trained fraud-scoring model and wants every row inserted into a transactions table to be scored automatically as part of a SQL `INSERT ... SELECT` pipeline, with the model logic executing inside Snowflake's compute rather than in an external service. Which Snowpark capability accomplishes this?

    1. A.A Snowpark Python UDF that wraps the pre-trained model and is invoked as a function directly inside the SQL `SELECT` clause of the pipeline.
    2. B.A Streamlit in Snowflake app that displays scored predictions on a dashboard after a user manually uploads a batch of transaction rows.
    3. C.A Snowflake Notebook cell that scores a DataFrame interactively, requiring a person to manually rerun the cell whenever new transactions arrive.
    4. D.A Cortex Analyst semantic model that translates natural-language questions into SQL aggregations over the transactions table.
    Show answer & explanation

    Correct answer: A — A Snowpark Python UDF that wraps the pre-trained model and is invoked as a function directly inside the SQL `SELECT` clause of the pipeline.

    • A. A Snowpark Python UDF is correct because it packages the model's scoring logic as a callable SQL function, letting the `INSERT ... SELECT` statement apply it row-by-row entirely within Snowflake compute, with no external service call.
    • B. A Streamlit app is a UI layer for human interaction and manual uploads; it does not integrate model scoring into an automated SQL insert pipeline.
    • C. A notebook cell requires manual, interactive re-execution and is not wired into an automated SQL pipeline that scores every inserted row.
    • D. Cortex Analyst converts natural-language questions into SQL against a semantic model for analytics; it has no role in embedding a custom fraud-scoring model into a row-level SQL pipeline.

    Subdomain 1.6: Explain AI/ML and application development features

    7.A developer wants business users to ask both "summarize the complaints in these support call transcripts" and "what were total returns by region last quarter" from one chat interface, with the structured revenue question answered from tables and the unstructured transcript question answered from indexed text. Which Cortex capability is designed to orchestrate both in a single governed workflow?

    1. A.Cortex Agents, which coordinate Cortex Analyst for structured SQL generation and Cortex Search for unstructured retrieval within one workflow.
    2. B.A single Cortex Analyst semantic model, which can generate SQL over structured tables but has no mechanism for retrieving unstructured transcripts.
    3. C.A single Cortex Search service, which indexes and retrieves text passages but cannot generate SQL aggregations over structured revenue tables.
    4. D.The `AI_COMPLETE` function called directly on raw table exports, which sends unbounded data to a model rather than routing each question appropriately.
    Show answer & explanation

    Correct answer: A — Cortex Agents, which coordinate Cortex Analyst for structured SQL generation and Cortex Search for unstructured retrieval within one workflow.

    • A. Cortex Agents are correct because they are designed to unify structured and unstructured data access, invoking Cortex Analyst for SQL generation and Cortex Search for text retrieval as needed within a single governed conversation.
    • B. Cortex Analyst alone can answer the structured revenue question but has no retrieval mechanism for the unstructured call transcripts, so it cannot cover both question types by itself.
    • C. Cortex Search alone can retrieve relevant transcript passages but cannot translate the revenue question into SQL aggregations over structured tables.
    • D. Calling `AI_COMPLETE` directly on raw exported data bypasses semantic routing, governance, and the dedicated retrieval or SQL-generation mechanisms, making it an unreliable substitute for orchestrated agents.

    Subdomain 1.1: Describe and use the Snowflake architecture

    8.A schema owner attaches a masking policy to the `ssn` column of a shared table. When a consumer with a role that lacks unmask privileges queries the column, Snowflake evaluates the policy and returns masked values before the compute layer returns any rows to the client. Which layer performs this policy evaluation?

    1. A.Database Storage layer
    2. B.Cloud Services layer
    3. C.Compute layer
    4. D.Cloud Services layer, but only for row access policies, not column masking
    Show answer & explanation

    Correct answer: B — Cloud Services layer

    • A. Incorrect. Storage persists the raw column values in encrypted micro-partitions; it has no logic for evaluating a caller's role against a masking policy.
    • B. Correct. The Cloud Services layer resolves the querying role's privileges and applies the attached masking policy as part of query compilation, before the plan is handed to compute for execution.
    • C. Incorrect. The compute layer executes the compiled query plan it receives; the decision to mask the column is made earlier, during optimization and authorization in the services layer.
    • D. Incorrect. Masking policy evaluation for column data and row access policy evaluation are both handled by the same services layer authorization logic, not split across two layers.

    Subdomain 1.1: Describe and use the Snowflake architecture

    9.A healthcare analytics company must store protected health information (PHI) in Snowflake and needs the account itself to support HIPAA and PCI DSS compliance requirements. Which is the lowest edition that meets this requirement?

    1. A.Business Critical Edition, which adds support for PHI data under HIPAA and HITRUST CSF along with PCI DSS support
    2. B.Enterprise Edition, which adds these compliance features on top of the Standard edition's baseline security
    3. C.Standard Edition, since HIPAA and PCI DSS support is a baseline feature included with every Snowflake account
    4. D.Virtual Private Snowflake, since compliance certifications are only offered there as a paid add-on regardless of edition
    Show answer & explanation

    Correct answer: A — Business Critical Edition, which adds support for PHI data under HIPAA and HITRUST CSF along with PCI DSS support

    • A. Correct. Business Critical Edition is the lowest tier that adds support for PHI data in accordance with HIPAA and HITRUST CSF, along with PCI DSS support, making it the minimum edition for this healthcare requirement.
    • B. Incorrect. Enterprise Edition adds features like multi-cluster warehouses, column-level security, and materialized views, but it does not add HIPAA/HITRUST or PCI DSS compliance support; that starts at Business Critical.
    • C. Incorrect. Standard Edition provides the baseline platform without the enhanced security and compliance features needed for regulated PHI or payment card data, so it does not meet this requirement.
    • D. Incorrect. VPS does include these compliance capabilities as part of its fully isolated environment, but it is not the lowest edition that satisfies the requirement, since Business Critical already meets it at a lower tier.

    Subdomain 1.3: Differentiate Snowflake object hierarchy and types

    10.A team runs COPY INTO statements against a dozen different tables that all load pipe-delimited files with the same date format and header settings. Instead of repeating the same FIELD_DELIMITER, DATE_FORMAT, and SKIP_HEADER options in every COPY INTO statement, what should they create?

    1. A.A named file format object that captures the shared FIELD_DELIMITER, DATE_FORMAT, and SKIP_HEADER settings once, and reference it by name in each COPY INTO.
    2. B.A named internal stage that stores the FIELD_DELIMITER, DATE_FORMAT, and SKIP_HEADER options, and point every COPY INTO statement at that stage instead.
    3. C.A sequence object configured with the shared delimiter and date settings, then reference the sequence inside each table's DEFAULT clause to apply formatting.
    4. D.A stored procedure that wraps each COPY INTO call and hardcodes the delimiter and date settings as literal arguments passed to the command every time.
    Show answer & explanation

    Correct answer: A — A named file format object that captures the shared FIELD_DELIMITER, DATE_FORMAT, and SKIP_HEADER settings once, and reference it by name in each COPY INTO.

    • A. A named file format object is exactly designed to capture parsing options like FIELD_DELIMITER, DATE_FORMAT, and SKIP_HEADER once, so it can be referenced by name across many COPY INTO statements instead of repeating the same options each time.
    • B. A stage defines a storage location for files, not parsing rules; while a stage can have a default file format attached, the delimiter and date settings themselves belong to a file format object, not to the stage definition itself.
    • C. Sequences only generate incrementing numeric values for use as identifiers; they have no capability to store or apply file-parsing settings such as delimiters or date formats.
    • D. Hardcoding the same delimiter and date settings as literal arguments inside a stored procedure still repeats the configuration in code rather than centralizing it in a single reusable object, and it adds unnecessary procedural overhead for a simple parsing configuration.

    Subdomain 1.3: Differentiate Snowflake object hierarchy and types

    11.A user's current database is `ANALYTICS` and current schema is `PUBLIC`. They run `SELECT * FROM orders;` without qualifying the table name. Assuming no SEARCH_PATH override, how does Snowflake resolve `orders`?

    1. A.By searching every schema the current role has USAGE privilege on across all databases, and returning the first table named `orders` found alphabetically.
    2. B.Snowflake refuses to resolve it and raises a compilation error, because every table reference must be fully qualified with database and schema names.
    3. C.Using the current session's database and schema context, effectively querying `ANALYTICS.PUBLIC.orders`, because unqualified DML names default to the active context.
    4. D.Against the ACCOUNTADMIN role's default namespace regardless of the current user's active role, because unqualified names always resolve relative to that system role.
    Show answer & explanation

    Correct answer: C — Using the current session's database and schema context, effectively querying `ANALYTICS.PUBLIC.orders`, because unqualified DML names default to the active context.

    • A. Snowflake does not perform an alphabetical, privilege-wide search across every accessible schema for an unqualified table name in a DML statement; that broader search-path behavior applies only within the SEARCH_PATH mechanism used for other contexts, not this default resolution.
    • B. Snowflake does not require full qualification for every table reference; unqualified names are routinely accepted in DML statements and resolved using the session's current database and schema context.
    • C. Unqualified object names in DML statements resolve using the session's active database and schema, set via USE DATABASE and USE SCHEMA, so `orders` is treated as `ANALYTICS.PUBLIC.orders` in this session, matching the described context.
    • D. Name resolution is based on the current session's active database and schema context, not on the ACCOUNTADMIN role's namespace; the active role granted to the session has no special bearing on how an unqualified table name resolves.

    Domain 2: Account Management and Data Governance

    Subdomain 2.1: Explain Snowflake security model and principles

    12.By default, users who authenticate through SSO with a corporate identity provider are not challenged for Snowflake MFA, because the identity provider is trusted to enforce its own MFA. A security team wants to require Snowflake-native MFA as an additional step specifically for SSO users, on top of whatever the identity provider already enforces. How should this be configured?

    1. A.Grant the SSO users' role the ENFORCE MFA privilege, which forces a Duo challenge for any session in that role regardless of which authentication method was originally used.
    2. B.Enable MFA enrollment in the identity provider's admin console, since Snowflake MFA settings are entirely inherited from whatever the identity provider configures for its own users.
    3. C.Set a network policy restricting SSO logins to the office IP range, since network policies are the documented mechanism Snowflake uses to layer a second authentication factor onto SSO sessions.
    4. D.Create an authentication policy that requires SSO users to complete Snowflake MFA after authenticating with the identity provider, and apply that policy to the relevant users or the account.
    Show answer & explanation

    Correct answer: D — Create an authentication policy that requires SSO users to complete Snowflake MFA after authenticating with the identity provider, and apply that policy to the relevant users or the account.

    • A. Incorrect. Snowflake does not provide an ENFORCE MFA privilege that can be granted to a role; MFA requirements for SSO users are configured through authentication policies, not role-based privileges.
    • B. Incorrect. Enabling MFA in the identity provider's console only affects that provider's own login flow; it does not configure or trigger Snowflake's separate, native MFA challenge after the SSO assertion is received.
    • C. Incorrect. Network policies restrict which IP addresses may connect; they do not add an authentication factor and are not the mechanism Snowflake uses to require MFA on top of SSO.
    • D. Correct. Snowflake authentication policies can be configured to require Snowflake MFA for SSO users even though MFA is not required for SSO by default, layering a Snowflake-enforced second factor on top of the identity provider's own authentication.

    Subdomain 2.1: Explain Snowflake security model and principles

    13.A team wants to capture structured trace events, with a payload of key-value fields rather than free-text messages, from a Python UDF so they can later query and aggregate the data in the active event table. Which telemetry approach fits this need best?

    1. A.Emitting trace events using the tracing API and setting the TRACE_LEVEL parameter appropriately, since trace events carry a structured payload suited to later data analysis.
    2. B.Emitting plain log messages with `SYSTEM$LOG` at the ERROR level, since log messages automatically attach structured key-value fields once LOG_LEVEL is set to its highest severity.
    3. C.Writing the values directly to a permanent table from within the UDF, since event tables cannot store any data with a defined schema of key-value fields.
    4. D.Increasing the account's QUERY_TAG parameter to include the key-value pairs, since query tags are ingested into the event table as structured trace payloads automatically.
    Show answer & explanation

    Correct answer: A — Emitting trace events using the tracing API and setting the TRACE_LEVEL parameter appropriately, since trace events carry a structured payload suited to later data analysis.

    • A. Correct. Trace events are the telemetry type designed to carry a structured payload of fields, and emitting them through the tracing API with an appropriate TRACE_LEVEL setting is the documented way to capture this kind of structured, analyzable data.
    • B. Incorrect. Log messages are free-text records rather than structured payloads, and raising LOG_LEVEL severity does not change a log message into a structured, key-value trace event.
    • C. Incorrect. Writing directly to a separate permanent table bypasses the built-in telemetry pipeline entirely; event tables do support structured trace data, so this workaround is unnecessary for the stated goal.
    • D. Incorrect. QUERY_TAG is a session parameter used to label queries for identification purposes; it is not ingested into the event table as structured trace payload data.

    Subdomain 2.3: Explain monitoring and cost management

    14.A capacity planner queries WAREHOUSE_METERING_HISTORY expecting to see credits from a warehouse that just resumed two minutes ago, but no row appears yet for that activity. What is the most likely explanation?

    1. A.ACCOUNT_USAGE views can lag by up to a few hours, so very recent activity may not be loaded into the view yet
    2. B.The warehouse must be fully suspended again before its metering data becomes visible in the ACCOUNT_USAGE views
    3. C.WAREHOUSE_METERING_HISTORY only records activity for warehouses larger than Medium size in this account
    4. D.The planner's role needs the CREATE WAREHOUSE privilege before any metering rows become visible to it
    Show answer & explanation

    Correct answer: A — ACCOUNT_USAGE views can lag by up to a few hours, so very recent activity may not be loaded into the view yet

    • A. Correct. ACCOUNT_USAGE views, including WAREHOUSE_METERING_HISTORY, have a data latency that can range up to several hours depending on the view, so activity from just two minutes ago has likely not been loaded yet and will appear once the view catches up.
    • B. Incorrect. Metering rows are generated based on billing intervals as the warehouse runs, not based on the warehouse returning to a suspended state; a warehouse does not need to be re-suspended for its usage to eventually appear.
    • C. Incorrect. WAREHOUSE_METERING_HISTORY records credit usage for warehouses of every size, including Extra Small; there is no size threshold below which usage is excluded from the view.
    • D. Incorrect. Seeing rows in ACCOUNT_USAGE views depends on having IMPORTED PRIVILEGES or an appropriate database role on SNOWFLAKE, not on holding CREATE WAREHOUSE, which is unrelated to read access on metering history.

    Subdomain 2.3: Explain monitoring and cost management

    15.By default, which system-defined role is required to create a resource monitor in Snowflake?

    1. A.ACCOUNTADMIN
    2. B.SYSADMIN
    3. C.SECURITYADMIN
    4. D.USERADMIN
    Show answer & explanation

    Correct answer: A — ACCOUNTADMIN

    • A. Correct. Only the ACCOUNTADMIN role can create resource monitors by default, since monitors control account and warehouse spend and Snowflake restricts that capability to the top-level administrative role unless privileges are explicitly extended.
    • B. Incorrect. SYSADMIN typically manages warehouses, databases, and other objects, but it does not have the privilege to create resource monitors unless it is specifically granted that access.
    • C. Incorrect. SECURITYADMIN is focused on managing grants and security-related objects such as network policies; it does not have inherent rights to create resource monitors.
    • D. Incorrect. USERADMIN manages users and roles; it has no built-in privilege to create resource monitors, which are governed separately as a cost-control mechanism reserved for ACCOUNTADMIN.

    Subdomain 2.2: Define data governance features and how they are used

    16.A data platform team wants to apply governance tags to nearly every column of a 60-column CUSTOMERS table for lineage and classification purposes. Which constraint must they plan around before assigning tags column by column?

    1. A.Columns within a single table share a separate limit of 50 tags, counted independently from the object-level tag limit
    2. B.Each table may have at most 50 tags total across all of its columns combined, counted against the table's own object limit
    3. C.Tagging more than 30 columns in one table requires enabling tag propagation first at the database level
    4. D.Column-level tags count toward the same 50-tag ceiling as the table's own object-level tags, sharing one combined pool
    Show answer & explanation

    Correct answer: A — Columns within a single table share a separate limit of 50 tags, counted independently from the object-level tag limit

    • A. Columns in a table share their own 50-tag limit that is tracked separately from the table object's own 50-tag limit, so column-level tagging has its own ceiling to plan for independent of the table-level count.
    • B. The 50-tag ceiling for columns is not the same pool as the table's object-level tag limit; they are counted independently rather than combined into one shared total.
    • C. Tag propagation is a separate Enterprise Edition feature controlling how tags flow to descendant objects; it is not a prerequisite gate tied to a column count threshold like 30.
    • D. Column tags and the table's own object-level tags are tracked against two separate 50-tag limits, not merged into a single combined pool.

    Subdomain 2.2: Define data governance features and how they are used

    17.A table's active encryption key rotated 30 days ago as scheduled, becoming a retired key, and a new active key took over. A batch job now writes fresh rows into that table. Which key encrypts the newly written rows, and what role does the retired key still play?

    1. A.The new active key encrypts the fresh rows, while the retired key is used only to decrypt data encrypted before rotation
    2. B.The retired key still encrypts the fresh rows because retired keys remain valid for new writes for an additional 30-day grace period
    3. C.Both the active and retired keys jointly encrypt the fresh rows to allow either one to decrypt them going forward
    4. D.Neither key encrypts the fresh rows directly; a temporary session key handles new writes until the next scheduled rotation
    Show answer & explanation

    Correct answer: A — The new active key encrypts the fresh rows, while the retired key is used only to decrypt data encrypted before rotation

    • A. After rotation, all new data is encrypted with the current active key, while a retired key is retained solely to decrypt data that was encrypted before it was retired; retired keys are never used to encrypt new data.
    • B. There is no grace period during which a retired key continues encrypting new writes; encryption of new data switches to the active key immediately upon rotation.
    • C. New rows are not jointly encrypted by two keys; only the current active key is used for encrypting newly written data at any given time.
    • D. Snowflake does not insert a separate temporary session key into this process; the active key handles new writes directly following rotation.

    Domain 3: Data Loading, Unloading, and Connectivity

    Subdomain 3.1: Perform data loading and unloading

    18.A data engineering team is choosing between listing exact file names in the `FILES` parameter versus using a `PATTERN` regular expression when running COPY INTO against a stage path containing several thousand files, only 30 of which need to be loaded today. Which tradeoff should inform their choice?

    1. A.`FILES` is generally faster because it avoids evaluating every file in the path against an expression, but it is capped at 1,000 file names per statement.
    2. B.`PATTERN` is always faster than `FILES` because Snowflake pre-indexes stage paths by regular expression before any COPY statement begins execution.
    3. C.`FILES` and `PATTERN` perform identically in all cases because Snowflake internally converts every `FILES` list into an equivalent regular expression first.
    4. D.`PATTERN` cannot be combined with a stage path narrower than the full bucket root, so `FILES` is the only option when files sit in a specific subfolder.
    Show answer & explanation

    Correct answer: A — `FILES` is generally faster because it avoids evaluating every file in the path against an expression, but it is capped at 1,000 file names per statement.

    • A. Explicitly listing files avoids the overhead of evaluating a regular expression against every file in the path, generally making `FILES` the fastest option for a known, discrete set, but Snowflake documents a 1,000 file name limit on that parameter.
    • B. Snowflake does not pre-index stage contents by regular expression, and `PATTERN` matching is generally described as slower than an explicit file list because it must evaluate the expression against file names in the path at execution time.
    • C. `FILES` and `PATTERN` are documented as having different performance characteristics rather than being internally converted to the same mechanism, so treating them as always equivalent misstates how Snowflake selects files for a COPY operation.
    • D. `PATTERN` can be applied to any stage path, including a narrow subfolder, to match a subset of files within that path, so there is no such restriction forcing the use of `FILES` for narrower paths.

    Subdomain 3.1: Perform data loading and unloading

    19.Which file format is native to Snowflake for storing semi-structured VARIANT data efficiently on unload, preserving nested structure and column types without requiring the consumer to re-parse a text-based encoding?

    1. A.Parquet
    2. B.CSV
    3. C.TSV
    4. D.Fixed-width text
    Show answer & explanation

    Correct answer: A — Parquet

    • A. Parquet is a columnar binary format that preserves nested structure and typed columns, and Snowflake supports unloading VARIANT and other semi-structured data to Parquet so consumers can read typed, structured output directly instead of re-parsing text.
    • B. CSV is a flat, delimited text format with no native support for nested structures, so semi-structured VARIANT data unloaded to CSV would need to be serialized to a text representation the consumer must reparse.
    • C. TSV is functionally the same as CSV but tab-delimited, and it shares the same limitation of being a flat text format that cannot natively represent nested VARIANT structures.
    • D. Fixed-width text format requires predefined column widths for flat scalar values and has no mechanism for representing nested or variable-length semi-structured data at all.

    Subdomain 3.2: Perform automated data ingestion

    20.Which compute resource model does Snowpipe use to execute the COPY statements defined within a pipe object?

    1. A.A dedicated user-managed virtual warehouse that the account administrator must explicitly resize whenever ingestion volume changes.
    2. B.The compute pool configured for the account's default Snowpark Container Services runtime, shared across all serverless features.
    3. C.Whatever virtual warehouse is active in the session that issued the `CREATE PIPE` statement, automatically resumed on each new file arrival.
    4. D.Snowflake-managed serverless compute that is automatically sized and billed per second based on the actual load activity Snowpipe performs.
    Show answer & explanation

    Correct answer: D — Snowflake-managed serverless compute that is automatically sized and billed per second based on the actual load activity Snowpipe performs.

    • A. Pipes do not run on a user-managed warehouse that an administrator sizes; that model describes ordinary scheduled COPY jobs or tasks, not Snowpipe.
    • B. Snowpark Container Services compute pools are a separate feature for running containerized workloads and are unrelated to the compute Snowpipe uses to load files.
    • C. Snowpipe does not reuse or resume the warehouse from the session that created the pipe; the pipe definition's compute is entirely decoupled from any session's warehouse context.
    • D. Snowpipe uses Snowflake-managed serverless compute that Snowflake automatically provisions and scales for each load, with billing based on the resources actually consumed rather than a fixed warehouse size.

    Subdomain 3.2: Perform automated data ingestion

    21.A dynamic table has been refreshing incrementally for weeks with sub-minute lag. An engineer then alters the base table by adding a new column and updates the dynamic table's defining query to reference it. On the next refresh cycle, query profile shows the dynamic table processed the entire source dataset instead of only recent changes. What explains this one-time behavior?

    1. A.Dynamic Tables permanently disable incremental refresh forever after any base table schema change, requiring the object to be dropped and fully recreated.
    2. B.The refresh fell back to full mode because the dynamic table's target lag was configured as `DOWNSTREAM`, which always forces full refresh cycles.
    3. C.A structural change to the query or base table can force one full refresh, since incremental processing needs a fresh change-tracking baseline afterward.
    4. D.Adding a column to the base table invalidated the underlying stream objects Snowflake creates internally, permanently converting the table to manual refresh mode.
    Show answer & explanation

    Correct answer: C — A structural change to the query or base table can force one full refresh, since incremental processing needs a fresh change-tracking baseline afterward.

    • A. Incremental refresh is not permanently disabled after a schema change; the behavior described is a one-time reinitialization, and dropping and recreating the object is not required to restore incremental refresh afterward.
    • B. A DOWNSTREAM target lag setting coordinates refresh timing with consuming dynamic tables; it is not a setting that unconditionally forces full refresh cycles on every run.
    • C. A structural change to the query or the base table schema can require Snowflake to reinitialize the change-tracking baseline the incremental engine depends on, causing exactly one full-dataset refresh before incremental processing resumes on subsequent cycles.
    • D. Adding a column does not permanently convert the dynamic table to a manual refresh mode; refresh scheduling continues automatically, and the full-refresh behavior observed here is a one-time reinitialization rather than a lasting mode change.

    Subdomain 3.3: Identify the different Snowflake Connectors and integrations

    22.A platform team is building a Java-based ETL scheduler that must connect to Snowflake through a broad set of existing client tools already standardized on a common database connectivity API. Which driver best fits this requirement?

    1. A.The JDBC driver, because it implements the widely adopted Java Database Connectivity standard that most Java tools already expect.
    2. B.The Node.js driver, because its asynchronous interface targets JavaScript runtimes rather than Java-based scheduler tooling.
    3. C.The Go Snowflake driver, because Go applications expose their own native interface rather than a JDBC-compatible surface.
    4. D.The PHP PDO driver, because PDO is PHP's own abstraction layer and is not consumed by Java-based scheduler tools.
    Show answer & explanation

    Correct answer: A — The JDBC driver, because it implements the widely adopted Java Database Connectivity standard that most Java tools already expect.

    • A. The JDBC driver implements the standard Java Database Connectivity API, which is exactly the interface Java-based schedulers and most client tools already expect, giving the broadest compatibility described.
    • B. The Node.js driver targets JavaScript runtimes and does not provide a JDBC interface, so it would not satisfy a requirement built around Java-based tooling and JDBC compatibility.
    • C. Go applications use the Go Snowflake driver's own native interface; Go does not natively expose a JDBC-compatible surface, so this does not meet the stated requirement.
    • D. PDO is PHP's own database abstraction layer and is unrelated to JDBC, so Java-based tooling cannot consume it without an entirely different integration layer.

    Subdomain 3.3: Identify the different Snowflake Connectors and integrations

    23.A team wants developers to commit and push small SQL fixes directly from a Snowflake Notebook back to a connected GitHub branch, without leaving the Snowsight environment. Which capability supports this workflow?

    1. A.Git integration supports committing and pushing changes from Workspaces, Streamlit apps, and notebooks to the remote branch.
    2. B.Notebooks can only read files from a Git repository object, with no supported path for pushing local changes back at all.
    3. C.Committing back to GitHub requires exporting the notebook to a local machine and using a separate Git client entirely.
    4. D.Git repository objects are read-only synchronized clones, so no push-back capability exists anywhere in the integration.
    Show answer & explanation

    Correct answer: A — Git integration supports committing and pushing changes from Workspaces, Streamlit apps, and notebooks to the remote branch.

    • A. Snowflake's Git integration explicitly supports committing and pushing changes from Workspaces, Streamlit apps, and notebooks back to the connected remote, which covers the developer workflow described in the scenario.
    • B. Notebooks are not limited to read-only access; Snowflake's Git integration documentation describes commit and push support from notebooks, so this understates the actual capability.
    • C. The workflow does not require exporting the notebook or leaving Snowsight, since commit and push operations are supported directly from within the connected notebook environment.
    • D. While the underlying repository clone reflects the remote's history, Snowflake's Git integration does support push-back operations from supported surfaces like notebooks, so this incorrectly labels the feature as entirely read-only.

    Domain 4: Performance Optimization, Querying, and Transformation

    Subdomain 4.1: Evaluate query performance

    24.A single warehouse runs both short interactive BI dashboard queries and long-running nightly ETL transformations. Dashboard users complain that queries queue behind the ETL jobs during business hours. Which workload management change addresses this?

    1. A.Reduce the number of micro-partitions in the underlying tables so ETL jobs scan less data during business hours.
    2. B.Switch the shared warehouse to a smaller size so ETL jobs finish faster and free up the warehouse sooner.
    3. C.Group similar workloads onto separate warehouses, moving ETL transformations off the BI dashboard warehouse.
    4. D.Increase the result cache retention period so dashboard queries always return the previously cached ETL output instead.
    Show answer & explanation

    Correct answer: C — Group similar workloads onto separate warehouses, moving ETL transformations off the BI dashboard warehouse.

    • A. Micro-partition count is a storage-layer characteristic tied to data volume and load pattern; reducing it is not a workload management lever and would not resolve concurrency contention between two workload types.
    • B. Shrinking the shared warehouse reduces available compute for both workloads and would typically make ETL jobs run longer, worsening rather than relieving the contention dashboard users experience.
    • C. Grouping similar workloads onto dedicated warehouses is a core Snowflake workload management practice: separating long-running ETL from short interactive BI queries removes the contention that causes dashboard queries to queue behind heavier jobs.
    • D. Extending result cache retention only helps when an identical query reruns on unchanged data; it does not prevent new dashboard queries from queuing behind an actively running ETL job on the same warehouse.

    Subdomain 4.2: Optimize query performance

    25.Before turning on the query acceleration service account-wide, an architect wants data-driven evidence of whether a specific set of already-executed queries would actually benefit, and by roughly how much, at different scale factors. Which approach should they use?

    1. A.Call SYSTEM$ESTIMATE_QUERY_ACCELERATION on the historical query IDs to get projected execution times across candidate scale factors before enabling the feature.
    2. B.Review the Query Profile for each historical query and manually calculate the ratio of pruned to scanned micro-partitions to estimate the acceleration benefit ahead of time.
    3. C.Enable acceleration on a cloned warehouse for a full week and compare average credit consumption against the production warehouse's existing baseline over that period.
    4. D.Query the ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY view to compare credit usage before and after enabling the feature on the production warehouse directly.
    Show answer & explanation

    Correct answer: A — Call SYSTEM$ESTIMATE_QUERY_ACCELERATION on the historical query IDs to get projected execution times across candidate scale factors before enabling the feature.

    • A. This is correct because SYSTEM$ESTIMATE_QUERY_ACCELERATION is the purpose-built function that evaluates a historical query ID and reports projected execution time improvements at different scale factors before the feature is turned on broadly.
    • B. This is incorrect because micro-partition pruning ratios in Query Profile describe clustering and scan efficiency, not whether a query is eligible for or would benefit from serverless acceleration offload.
    • C. This is incorrect because running a live week-long experiment on a cloned warehouse spends real credits and time to get an answer that the estimate function can already provide directly from past query history.
    • D. This is incorrect because this approach requires actually enabling the feature in production first to measure an after-state, which defeats the architect's goal of getting evidence before making that change.

    Subdomain 4.4: Perform data transformation techniques

    26.A dashboard needs an approximate count of distinct visitor IDs across a clickstream table with several billion rows, refreshed frequently, where an exact count would be too slow for interactive use. Which approach best balances speed and accuracy for this use case?

    1. A.Use `APPROX_COUNT_DISTINCT(visitor_id)`, applying a HyperLogLog-based estimate to return a close approximation far faster than an exact scan-and-sort of billions of rows.
    2. B.Use `COUNT(DISTINCT visitor_id)` as usual, and rely on Snowflake's result cache alone to make repeated executions of the exact calculation feel instantaneous every time.
    3. C.Use `COUNT(visitor_id)` without DISTINCT, treating the row count as an acceptable stand-in for the distinct visitor count since duplicates are assumed to be rare.
    4. D.Use `MEDIAN(visitor_id)` to estimate the central tendency of visitor activity, treating that summary statistic as a reasonable proxy for the total distinct visitor count.
    Show answer & explanation

    Correct answer: A — Use `APPROX_COUNT_DISTINCT(visitor_id)`, applying a HyperLogLog-based estimate to return a close approximation far faster than an exact scan-and-sort of billions of rows.

    • A. APPROX_COUNT_DISTINCT is built specifically for fast, memory-efficient approximate distinct counting on very large datasets, trading a small, bounded error for substantially lower compute cost than an exact DISTINCT count.
    • B. The result cache only helps when the identical query has already run against unchanged data; on a frequently refreshing clickstream table the underlying data changes constantly, so the exact COUNT DISTINCT still has to be recomputed and stays slow.
    • C. Counting all rows without DISTINCT counts every click event rather than unique visitors, so it systematically overstates the distinct visitor count whenever any visitor generates more than one row.
    • D. MEDIAN computes a positional statistic over numeric or comparable values and has no relationship to counting how many distinct visitor identifiers appear in the data.

    Subdomain 4.4: Perform data transformation techniques

    27.A transformation script processes a VARIANT column where a field named `attributes` is sometimes a JSON array and sometimes a single JSON object, depending on which upstream source produced the record. Before applying array-specific logic like FLATTEN, the script needs to branch based on the field's actual runtime type. Which function should it use to check this?

    1. A.`IS_ARRAY(attributes)`, which returns TRUE only when the VARIANT value currently holds an array, allowing the script to branch before applying array-only logic.
    2. B.`TRY_CAST(attributes AS ARRAY)`, which silently converts any VARIANT value, object or array, into an array representation without ever raising an error or returning NULL.
    3. C.`ARRAY_SIZE(attributes)`, which always returns a positive integer count of elements regardless of whether the underlying value is an object, an array, or a scalar.
    4. D.`OBJECT_KEYS(attributes)`, which returns the list of top-level keys for any VARIANT value, including arrays, making it usable to detect the array case.
    Show answer & explanation

    Correct answer: A — `IS_ARRAY(attributes)`, which returns TRUE only when the VARIANT value currently holds an array, allowing the script to branch before applying array-only logic.

    • A. IS_ARRAY is a type-checking function that returns TRUE specifically when a VARIANT value's runtime type is an array, which is exactly the branching check needed before deciding whether to apply FLATTEN or object-specific handling.
    • B. TRY_CAST to ARRAY does not silently normalize every input; casting a VARIANT object value to ARRAY is not a defined lossless conversion, so relying on it to unify both shapes does not behave as described.
    • C. ARRAY_SIZE is intended for array inputs and does not return a meaningful, consistent count when applied to an object or scalar VARIANT value, so it cannot reliably be used as a type-detection check.
    • D. OBJECT_KEYS is designed to return the keys of an object-typed VARIANT and does not return a meaningful key list for an array, so it does not serve as a reliable way to distinguish the two shapes.

    Subdomain 4.3: Use Snowflake caching

    28.A SELECT statement calls an external function with the same arguments on two separate executions, with no underlying data changes between them. Does the second execution reuse the persisted result from the first?

    1. A.Yes, Snowflake caches external function outputs by argument signature, so identical arguments always trigger a persisted-result hit.
    2. B.No, external functions instead populate the local disk cache with their responses, bypassing the cloud services result cache tier.
    3. C.Yes, but only for the first repeat call, since Snowflake reuses the cached results exactly once per external function before invalidating them.
    4. D.No, queries involving external functions are excluded from result cache reuse, since the external call is not guaranteed deterministic.
    Show answer & explanation

    Correct answer: D — No, queries involving external functions are excluded from result cache reuse, since the external call is not guaranteed deterministic.

    • A. Snowflake does not maintain a separate argument-keyed cache for external function calls; such queries are instead excluded from persisted result reuse altogether.
    • B. The local disk cache stores scanned table data pages within a warehouse, not the responses of external function calls, so this misdescribes where such responses would go.
    • C. There is no rule granting a single one-time reuse for external function queries; they are excluded from result cache reuse on every execution, not just after the first repeat.
    • D. Because an external function's output cannot be guaranteed deterministic across calls, Snowflake excludes any query referencing one from persisted result cache reuse entirely.

    Subdomain 4.1: Evaluate query performance

    29.In a multi-stage transformation query, an intermediate Join node in the middle of the plan outputs far more rows than either of its inputs, and a Filter applied several steps later removes most of those rows before the final result. What tuning approach addresses the root cause?

    1. A.Increase the warehouse size so the extra rows produced by the join are processed faster before the later filter runs.
    2. B.Enable the result cache for the intermediate stage so the exploded row set only needs to be computed once.
    3. C.Add a clustering key to the output table so the exploded rows are pruned more efficiently in later query stages.
    4. D.Correct the join condition or push the filter earlier so the join never produces the exploded row set at all.
    Show answer & explanation

    Correct answer: D — Correct the join condition or push the filter earlier so the join never produces the exploded row set at all.

    • A. A larger warehouse can process the exploded row set faster, but it still pays the cost of generating and moving far more rows than necessary; it treats the symptom rather than the missing or late filter causing the explosion.
    • B. The result cache applies to identical repeated queries on unchanged data, not to intermediate operators within a single query's execution plan, so it cannot reduce the row count produced by one internal join step.
    • C. Clustering keys affect pruning on table scans for future queries against stored data; they do not change how many rows an in-flight join operator produces within the current query's execution.
    • D. Filtering earlier or correcting the join condition prevents the row explosion from happening in the first place, which is more effective than paying the cost of processing billions of extra rows only to discard most of them later.

    Subdomain 4.2: Optimize query performance

    30.After running the clustering-information function on a large table, an engineer sees a high average clustering depth, and representative queries scan a much larger share of the table's micro-partitions than the share of data they actually select. The table is queried heavily throughout the day but is only bulk-loaded once per week. Based on this, what should the engineer conclude?

    1. A.The table is a strong candidate for a clustering key, since poor pruning and a high query-to-DML ratio mean the reclustering cost is likely outweighed by the gain.
    2. B.The table is a poor candidate for clustering, since a high clustering depth by itself always means the underlying column has too many distinct values to ever prune well.
    3. C.The table should get a materialized view instead, since clustering depth only measures storage layout and has no relationship to how efficiently queries prune partitions.
    4. D.These clustering metrics are not actionable, since Snowflake only reports depth and pruning ratio for tables that already have an explicit clustering key defined.
    Show answer & explanation

    Correct answer: A — The table is a strong candidate for a clustering key, since poor pruning and a high query-to-DML ratio mean the reclustering cost is likely outweighed by the gain.

    • A. This is correct because a poorly pruned table that is queried far more often than it is loaded is exactly the profile where defining a clustering key pays off, since the reclustering cost is amortized against heavy, frequent query benefit.
    • B. This is incorrect because a high clustering depth reflects how the data happens to be laid out today, not an inherent property of the column's cardinality; an appropriate clustering key can still reduce that depth.
    • C. This is incorrect because clustering depth and pruning ratio are direct measures of how efficiently queries can skip micro-partitions, which is precisely what a clustering key, not a materialized view, is meant to influence.
    • D. This is incorrect because the clustering-information function can be run against any table, including ones without an explicit clustering key defined, to evaluate whether defining one would help.

    Domain 5: Data Collaboration

    Subdomain 5.1: Explain data collaboration and protection

    31.A schema migration script ran ten minutes ago and left several tables in an inconsistent state, but the exact query ID of the statement that caused the problem is known from the query history. The team wants a schema-level snapshot as it existed right before that statement executed, without touching the current schema. What should they do?

    1. A.Run CREATE SCHEMA new_schema CLONE original_schema BEFORE(STATEMENT => 'the_query_id') to produce a snapshot from before that statement ran.
    2. B.Run UNDROP SCHEMA original_schema to revert the entire schema back to whatever state it held right before the migration script began executing.
    3. C.Run CREATE SCHEMA new_schema CLONE original_schema AT(OFFSET => 0) to capture the schema exactly as it exists at this current moment in time.
    4. D.Manually script DDL statements that reverse each change the migration made, then apply those reversing statements directly to the original schema.
    Show answer & explanation

    Correct answer: A — Run CREATE SCHEMA new_schema CLONE original_schema BEFORE(STATEMENT => 'the_query_id') to produce a snapshot from before that statement ran.

    • A. The BEFORE(STATEMENT) clause on a clone operation reconstructs the referenced object's state immediately prior to the named query, which precisely matches the requirement to snapshot the schema before that specific statement ran.
    • B. UNDROP only restores objects that have been dropped; the schema here was not dropped, it was modified in place, so UNDROP has no applicable target and would not address the inconsistency.
    • C. An OFFSET of 0 clones the schema as it exists at the current moment, which captures the already-inconsistent post-migration state rather than the state before the problematic statement executed.
    • D. Hand-writing reversing DDL is error-prone, requires knowing every change the script made, and directly risks further damaging the live schema, whereas cloning to a new object leaves the original untouched while producing the needed snapshot.

    Subdomain 5.1: Explain data collaboration and protection

    32.A finance team is comparing the cost of distributing a dataset via a nightly file export to partners versus distributing it through a Snowflake share, given that the dataset changes several times per day and several partner accounts need to query it. What cost and freshness difference should they expect from using a share instead?

    1. A.Consumers incur no additional storage cost for the shared data and see changes as soon as the provider commits them, since a share references live data.
    2. B.Consumers incur the same storage cost as the provider for the shared data, but they see updates only after the next scheduled share refresh job completes.
    3. C.Consumers incur no storage cost, but updates only become visible once each consumer manually re-imports the share into a brand-new local database.
    4. D.Consumers incur reduced but nonzero storage cost, which scales roughly in proportion to how many partner accounts consume the same shared database.
    Show answer & explanation

    Correct answer: A — Consumers incur no additional storage cost for the shared data and see changes as soon as the provider commits them, since a share references live data.

    • A. Because a share exposes the provider's data directly through Snowflake's metadata layer without copying it, consumers pay no storage cost for the shared objects and any change the provider commits is visible to consumers immediately, unlike a periodic file export.
    • B. Consumers do not incur the provider's storage cost at all, and there is no scheduled refresh job involved in Secure Data Sharing; updates propagate in real time rather than on a batch schedule.
    • C. Once a consumer creates a database from a share, that database automatically reflects the provider's live data without any manual re-import step being required to see new changes.
    • D. Storage cost for shared data is not split or reduced proportionally among consumers; it remains zero for every consumer regardless of how many other accounts also consume the same share.

    Subdomain 5.2: Explain Snowflake's data sharing capabilities

    33.Which statement accurately describes what a Snowflake share is?

    1. A.A named account-level object that records which databases, schemas, and objects a provider has granted access to, and which consumer accounts may access them.
    2. B.A physical replica of a database that Snowflake continuously copies into every consumer account listed as a recipient of that particular sharing configuration.
    3. C.A scheduled export job that writes provider table data out to a staging area which each consumer account periodically polls and reloads from.
    4. D.A temporary credential that grants a consumer account direct login access into the provider's own account for a limited, time-boxed session.
    Show answer & explanation

    Correct answer: A — A named account-level object that records which databases, schemas, and objects a provider has granted access to, and which consumer accounts may access them.

    • A. A share is the named object that packages the grants on provider objects together with the list of consumer accounts allowed to use them, all tracked in the provider's account metadata.
    • B. Sharing does not copy data into consumer accounts; the whole point of Secure Data Sharing is that data stays in the provider's storage and is accessed through metadata, not replication.
    • C. There is no scheduled export or polling mechanism involved in Secure Data Sharing; consumers query the provider's live data directly through the share, not through a staged copy.
    • D. A share does not grant login access to the provider's account; consumers query shared objects from within their own account after creating a database from the share.

    Subdomain 5.3: Share data using the Snowflake Marketplace and listings

    34.A consumer finds a Native App listing on the Marketplace and clicks to install it into their own Snowflake account. What actually happens in the consumer's account as a direct result of this installation?

    1. A.Snowflake creates an application object in the consumer's account and runs the setup script to create the app's required objects
    2. B.Snowflake copies the provider's raw application package object directly into the consumer's account for the consumer to edit
    3. C.Snowflake grants the consumer's role direct SELECT privileges on the provider's underlying base tables in the provider's account
    4. D.Snowflake creates a reader account on the consumer's behalf so the provider's team can manage the app remotely
    Show answer & explanation

    Correct answer: A — Snowflake creates an application object in the consumer's account and runs the setup script to create the app's required objects

    • A. Installing a Native App causes Snowflake to instantiate an application object in the consumer's account and execute the setup script defined in the manifest to create the objects the app needs, all isolated within that account. This is the documented installation behavior for the framework.
    • B. The application package itself is not copied into the consumer's account; it remains the provider's development and distribution artifact, while the consumer only receives the installed application object.
    • C. Native Apps are designed to avoid exposing the provider's base tables directly to consumers; access is mediated through the app's own objects and setup script rather than direct grants on provider tables.
    • D. Reader accounts are a separate mechanism for consumers who lack their own Snowflake account, and installing a Native App into an existing consumer account does not create or require a reader account.

    Subdomain 5.2: Explain Snowflake's data sharing capabilities

    35.A logistics company wants to give a delivery partner access to a subset of shipment data for analysis, but the partner is not a Snowflake customer and does not want to license its own Snowflake account. Which approach lets the logistics company grant this access while remaining the party responsible for compute costs?

    1. A.Create a reader account for the partner, add it to the share, and let the partner query the shared data using compute that the logistics company's account pays for.
    2. B.Add the partner's email as a role on the existing share, and let the partner authenticate through the logistics company's own account without provisioning any new account.
    3. C.Export the shipment tables to a cloud storage bucket the partner can read directly, bypassing shares entirely so no Snowflake account is needed on either side.
    4. D.Create a full paid Snowflake account for the partner and configure database replication so the partner's account continuously copies the shared shipment tables.
    Show answer & explanation

    Correct answer: A — Create a reader account for the partner, add it to the share, and let the partner query the shared data using compute that the logistics company's account pays for.

    • A. A reader account is a managed account the provider creates specifically so a party without its own Snowflake license can query shared data, and the creating provider's account is billed for the compute it consumes.
    • B. Snowflake does not authenticate external parties through someone else's account by adding an email to a share; access to shared data requires either a consumer account, a reader account, or a listing subscription.
    • C. Bypassing Secure Data Sharing to export files to storage abandons the governed, no-copy sharing model and does not satisfy the requirement to keep the provider responsible for ongoing compute costs.
    • D. Requiring the partner to purchase a full paid account contradicts the stated constraint that the partner does not want its own account, and replication is not how Secure Data Sharing exposes data to consumers.

    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.