DAA-C01 Question 136
Single answerUse clones as required by specific use-casesA retail analytics team wants to test a major rewrite of a production reporting pipeline before the holiday season. The production schema contains large fact tables and several views used by dashboards. The team needs a full, isolated copy of the schema for development and validation, but they must minimize storage usage and create the environment quickly. They also want any changes made in the test environment to remain separate from production. Which approach should the data analyst recommend?
- A
Create a zero-copy clone of the production schema, and run development and validation in the cloned schema.
- B
Use Time Travel to query the production schema at an earlier point in time and run all testing there.
- C
Unload the production tables to external stage files and reload them into a new schema for testing.
- D
Create materialized views in a new schema that reference the production tables, then modify those views during testing.
Show answer and explanation
Correct answer: A
Explanation
The best answer is to use a zero-copy clone of the production schema. Snowflake cloning is designed for use cases such as development, testing, QA, and what-if analysis because it creates near-instant copies of databases, schemas, and tables without initially copying the physical data. Storage is only consumed for changed data after cloning due to copy-on-write behavior. This makes cloning ideal when teams need a fast, isolated environment that preserves the current production state while allowing independent modifications. By contrast, Time Travel is for accessing historical data, not for creating a separate mutable environment. Reloading from exported files is operationally heavier and less efficient. Materialized views do not provide object-level isolation for schema-wide testing. Relevant Snowflake documentation includes the sections on zero-copy cloning and cloning considerations for databases, schemas, and tables.
- A. Correct.
Correct. A zero-copy clone creates a logically independent copy of the production schema almost instantly without initially duplicating underlying micro-partition storage. This is the recommended approach when a team needs an isolated environment for testing or development while minimizing storage and setup time. Changes made in the clone are independent of production because Snowflake uses copy-on-write semantics after the clone is created.
- B. Incorrect.
Incorrect. Time Travel allows querying or restoring historical data versions, but it does not provide an isolated environment for development changes. Testing directly against production objects, even at a past point in time, does not meet the requirement to keep test changes separate from production.
- C. Incorrect.
Incorrect. Unloading and reloading data would create a separate environment, but it is slower, more operationally complex, and typically uses more storage than a zero-copy clone. This option does not align with the requirement to create the environment quickly and minimize storage usage.
- D. Incorrect.
Incorrect. Materialized views are not a substitute for cloning a schema. They do not create a full isolated copy of all schema objects, and they remain dependent on underlying production tables. This would not allow safe end-to-end pipeline testing with independent changes.