COF-C03 Question 23
Single answerDatabase objectsA data engineering team maintains a database named PROD_DB that contains several schemas and tables used by downstream reporting tools. Before a major ETL change, the team wants to create a point-in-time copy of the entire database so they can test changes without affecting production. They also want the copy to be created quickly and without duplicating all underlying storage immediately. Which Snowflake object operation best meets these requirements?
- A
Create a database clone of PROD_DB at the current point in time
- B
Create a database replica of PROD_DB in the same account for testing
- C
Export all schemas and tables from PROD_DB to stage files, then recreate them in a new database
- D
Create a share on PROD_DB and use the shared objects as the test environment
Show answer and explanation
Correct answer: A
Explanation
The best answer is to create a database clone. Snowflake zero-copy cloning supports creating point-in-time copies of databases, schemas, and tables very quickly by reusing existing micro-partitions instead of physically copying all data at creation time. This makes cloning ideal for test, QA, and development scenarios where teams need isolated environments based on production data. In contrast, replication is intended for cross-account or cross-region continuity scenarios, shares provide read-only data access rather than independent writable environments, and unloading/reloading data is unnecessarily expensive and complex. This aligns with Snowflake documentation and best practices for database objects, especially around CLONE and Time Travel-based point-in-time object creation.
- A. Correct.
Correct. A database clone creates a zero-copy, point-in-time copy of the source database, including its contained schemas and objects. Cloning is designed for fast creation of development or test environments without immediately duplicating all data storage. Additional storage is only consumed for changes made after the clone is created.
- B. Incorrect.
Incorrect. Replication is used for copying data objects across accounts or regions/clouds for business continuity and disaster recovery use cases, not for quickly creating a same-account test copy of a database. It is not the best fit for this scenario.
- C. Incorrect.
Incorrect. Exporting and recreating objects would be much slower, operationally complex, and would duplicate data movement unnecessarily. It does not align with Snowflake's zero-copy cloning capability, which is specifically intended for rapid point-in-time copies.
- D. Incorrect.
Incorrect. A share provides secure data access to other accounts without copying data, but it does not create an isolated writable test environment. Shared objects are read-only to consumers, so this would not support testing ETL changes safely.