SnowPro Associate: Platform Question 345
Single answer● CloningA development team needs a full copy of the production SALES database for testing a new reporting feature. The team wants the copy to be created quickly, avoid duplicating storage for unchanged data, and allow developers to make changes without affecting production. Which Snowflake approach best meets these requirements?
- A
Create a clone of the SALES database and give the development team access to the cloned database
- B
Use Time Travel to query the SALES database directly from development sessions
- C
Unload the SALES database to stage files and reload it into a new database for development
- D
Create a database from a data share of the SALES database and let developers update the shared objects
Show answer and explanation
Correct answer: A
Explanation
The best answer is to create a zero-copy clone of the SALES database. Snowflake cloning is commonly used to create development, test, and QA environments because it is fast and storage-efficient. At the time of cloning, Snowflake does not duplicate all table data; instead, the clone references the existing micro-partitions, and only changed data after the clone leads to additional storage usage. This provides isolation for developers while minimizing cost and setup time. Time Travel is for accessing historical data states, not for provisioning a writable environment. Data sharing is designed for secure read-only sharing across accounts. Unload/reload methods work but are less efficient and not aligned with Snowflake best practices for this scenario. These behaviors are described in Snowflake documentation for zero-copy cloning, Time Travel, and secure data sharing.
- A. Correct.
Correct. Zero-copy cloning creates a new database quickly without physically copying all underlying data at creation time. The clone initially shares the same micro-partitions as the source, so unchanged data does not consume additional storage. After cloning, changes made in the cloned database are independent of production, which makes this the best fit for development and testing scenarios.
- B. Incorrect.
Incorrect. Time Travel allows querying and restoring historical data versions within retention limits, but it does not create an isolated writable copy for development. Developers working directly against production objects would not meet the requirement for safe independent changes.
- C. Incorrect.
Incorrect. Unloading and reloading would create a separate copy, but it is slower and operationally heavier than cloning. It also duplicates storage unnecessarily compared to zero-copy cloning, which is specifically designed for fast environment creation.
- D. Incorrect.
Incorrect. A database created from a share is for read-only access to shared data. Consumer accounts cannot directly update shared objects. This does not satisfy the requirement for developers to make changes independently in their own test environment.