SnowPro Advanced: Data Engineer · 20% of the exam

Storage and Data Protection: free practice questions

5 sample questions from our 50-question bank for this domain — answers and explanations included. These are the same scenario-based style as the real Snowflake exam.

1. A data engineer is building a backup and recovery strategy for a critical Snowflake database. The requirements are: (1) Recovery Point Objective (RPO) of less than 1 hour, (2) Recovery Time Objective (RTO) of less than 15 minutes, and (3) the recovery copy must be in a different cloud region. Which combination of Snowflake features BEST meets all three requirements?

  • A. Set DATA_RETENTION_TIME_IN_DAYS = 1 on all tables and use AT/BEFORE queries to restore data within the same region; rely on Fail-safe for cross-region recovery.
  • B. Configure a FAILOVER GROUP with a secondary account in another region, set the replication schedule to run every 30 minutes, and automate failover using the ALTER FAILOVER GROUP ... FAILOVER command.✓ Correct
  • C. Create daily zero-copy clones of the database and store them in a separate Snowflake account in another region using cross-account data sharing.
  • D. Use Snowflake's continuous data loading from an external stage in a different cloud region to keep a separate table in sync in real time.
Explanation

A FAILOVER GROUP with a 30-minute replication schedule achieves an RPO of less than 1 hour (30 minutes between refreshes). When a failure occurs, executing ALTER FAILOVER GROUP ... FAILOVER promotes the secondary to primary in minutes, satisfying the RTO of less than 15 minutes. The secondary account is in a different cloud region, meeting requirement 3. Option A is incorrect on multiple counts: AT/BEFORE is not a cross-region mechanism, and Fail-safe is not accessible to customers for self-service recovery. Option C is incorrect — daily clones only meet an RPO of ~24 hours, far exceeding the 1-hour requirement; also, data sharing doesn't provide a writable copy for failover. Option D is incorrect — this describes a custom data pipeline, not a Snowflake-native DR feature, and would be complex to maintain while likely not meeting the RTO.

2. An organization's secondary Snowflake database in a DR region becomes the primary after a failover event. A data engineer queries the newly promoted primary and finds that some recent transactions from the original primary are missing. What is the most likely explanation for this data loss?

  • A. Snowflake replication uses synchronous replication, so no data loss should be possible; the issue must be a query filter
  • B. The secondary database was not fully refreshed before failover, and Snowflake database replication is asynchronous with potential replication lag✓ Correct
  • C. The failover process automatically rolls back uncommitted transactions in the secondary database
  • D. Data loss occurred because REPLICATION GROUP does not support transactional consistency across databases
Explanation

Snowflake database replication is asynchronous. The secondary database is refreshed periodically (on a schedule or manually), meaning it may lag behind the primary. If a failover occurs before the latest refresh completes, any transactions committed to the primary after the last successful refresh will not be present in the newly promoted primary, resulting in data loss. Option A is wrong because Snowflake replication is asynchronous, not synchronous. Option C is wrong because the failover process does not perform rollbacks; it promotes the secondary as-is. Option D is partially misleading — REPLICATION GROUP does support multi-object consistency within a refresh cycle, but it does not eliminate lag-based data loss.

3. A company has a Snowflake account in AWS us-east-1. They want to share a live dataset with a partner organization that uses Google BigQuery. The partner does not have a Snowflake account. Which Snowflake feature enables this cross-platform sharing without requiring the partner to use Snowflake?

  • A. Snowflake Secure Data Sharing, configured with a reader account provisioned for the partner.
  • B. Delta Sharing, which implements an open REST protocol allowing non-Snowflake platforms like BigQuery to access the shared dataset.✓ Correct
  • C. An external table pointed at a shared S3 bucket, which BigQuery can also query using its BigLake feature.
  • D. Cross-cloud replication to a GCP Snowflake account that the partner can access through BigQuery Omni.
Explanation

Delta Sharing is an open protocol developed by Databricks and supported in Snowflake that allows data to be shared with any platform that implements the Delta Sharing client protocol, including non-Snowflake consumers like BigQuery, pandas, Apache Spark, and others — without requiring a Snowflake account. Option A is incorrect — Secure Data Sharing with a reader account still requires the consumer to use Snowflake's query engine; it doesn't serve BigQuery natively. Option C is a workaround using external storage rather than a Snowflake-native sharing feature, and it doesn't use Snowflake's access controls or governance. Option D is architecturally complex and incorrect — BigQuery Omni queries data on GCP but doesn't natively connect to a Snowflake secondary database.

4. A data engineer at a healthcare company needs to audit what data existed in a PATIENT_RECORDS table exactly 72 hours ago, without modifying the current table state. The table is permanent and was created with default settings. Which query correctly retrieves the historical snapshot?

  • A. SELECT * FROM patient_records BEFORE (TIMESTAMP => DATEADD('hour', -72, CURRENT_TIMESTAMP()));
  • B. SELECT * FROM patient_records AT (OFFSET => -259200);
  • C. SELECT * FROM patient_records AT (TIMESTAMP => DATEADD('hour', -72, CURRENT_TIMESTAMP()));✓ Correct
  • D. SELECT * FROM patient_records AT (STATEMENT => DATEADD('hour', -72, CURRENT_TIMESTAMP()));
Explanation

Option C is correct: the AT clause with TIMESTAMP accepts a timestamp expression, and DATEADD('hour', -72, CURRENT_TIMESTAMP()) computes the point 72 hours ago. Option A uses BEFORE instead of AT — BEFORE is valid but means 'just before the given point', and more importantly its syntax uses the same sub-clause keywords (TIMESTAMP, OFFSET, STATEMENT), so it would technically work, but the real issue is that AT is the appropriate and precise choice for 'exactly at' a timestamp, and the BEFORE keyword retrieves the state just before the timestamp, not at it — making it subtly wrong for an exact-snapshot audit requirement. Option B uses OFFSET, which takes an integer number of seconds relative to now (negative = in the past); -259200 seconds is indeed 72 hours, but this option is provided with the wrong unit label 'hour', making it a distractor that conflates OFFSET (seconds) with a time expression. Option D uses STATEMENT, which requires a query ID string (UUID), not a timestamp expression, making it invalid in this context.

5. A company stores large volumes of historical event data in Apache Parquet format on Amazon S3. They need to enable both Snowflake and their existing Apache Spark and Apache Flink pipelines to read and write to the same dataset concurrently, with full ACID transaction guarantees and a shared, consistent view of the data. Which Snowflake feature best satisfies all of these requirements?

  • A. Snowflake External Tables with metadata refresh using AUTO_REFRESH = TRUE
  • B. Snowflake Iceberg Tables with an external catalog (e.g., AWS Glue) managing the Iceberg metadata✓ Correct
  • C. Snowflake Iceberg Tables with Snowflake as the catalog (Snowflake-managed Iceberg)
  • D. Snowflake External Tables with a directory table and manual metadata refresh
Explanation

Option B is correct: Iceberg Tables with an external catalog (such as AWS Glue) allow multiple compute engines — Snowflake, Spark, Flink — to share and access the same Iceberg metadata catalog. This provides the open table format interoperability and ACID semantics of Iceberg while allowing concurrent multi-engine read and write access managed by the shared external catalog. Option A is wrong: External Tables in Snowflake are read-only from Snowflake's perspective; Snowflake cannot write back to the underlying S3 files via an external table, and there are no ACID guarantees for concurrent multi-engine access. Option C is wrong: when Snowflake manages the Iceberg catalog, it maintains exclusive control over the Iceberg metadata — other engines like Spark cannot write to the table through a Snowflake-managed catalog. This breaks the requirement for shared concurrent read/write access from multiple engines. Option D is wrong: directory tables and manual metadata refresh are mechanisms for managing staged files, not for ACID-compliant multi-engine table access; this option does not address the concurrent write or ACID requirements.

45 more questions in this domain

Practice the full bank with instant grading, flashcards, and a timed mock exam.

Start practicing free
Storage and Data Protection — Free SnowPro Advanced: Data Engineer Practice Questions | DataCertPrep — Certification Prep