📖 Scenario: You work at a company that uses Snowflake for data storage. Your team wants to create copies of a database for different purposes like development, testing, and backups without using extra storage space.
🎯 Goal: Build Snowflake commands step-by-step to create a database clone, configure it for testing, and set up a backup clone.
📋 What You'll Learn
Create a database named sales_db with sample data
Create a clone of sales_db named sales_db_dev for development
Create a clone of sales_db named sales_db_test for testing
Create a clone of sales_db named sales_db_backup for backup
💡 Why This Matters
🌍 Real World
Cloning databases in Snowflake is useful for creating isolated environments for development, testing, and backups without duplicating data storage.
💼 Career
Many cloud data engineers and analysts use cloning to manage data environments efficiently and reduce costs.
Progress0 / 4 steps
1
Create the original database sales_db
Write a Snowflake SQL command to create a database called sales_db.
Snowflake
Hint
Use the CREATE DATABASE statement followed by the database name.
2
Create a development clone sales_db_dev
Write a Snowflake SQL command to create a clone of the sales_db database named sales_db_dev for development use.
Snowflake
Hint
Use CREATE DATABASE <new_name> CLONE <source_name> to create a clone.
3
Create a testing clone sales_db_test
Write a Snowflake SQL command to create a clone of the sales_db database named sales_db_test for testing purposes.
Snowflake
Hint
Clone the original database again with a new name for testing.
4
Create a backup clone sales_db_backup
Write a Snowflake SQL command to create a clone of the sales_db database named sales_db_backup to serve as a backup.
Snowflake
Hint
Create one more clone for backup purposes using the same syntax.
Practice
(1/5)
1. What is the main benefit of using CLONE in Snowflake for development?
easy
A. It moves data to a different cloud provider automatically.
B. It permanently deletes the original data after copying.
C. It creates a quick, space-saving copy of data without affecting the original.
D. It encrypts the data for security during development.
Solution
Step 1: Understand cloning purpose in development
Cloning creates a copy of data instantly without changing the original, allowing safe development.
Step 2: Identify benefits of cloning
It saves storage by sharing unchanged data and avoids risks to original data.
Final Answer:
It creates a quick, space-saving copy of data without affecting the original. -> Option C
Quick Check:
Clone = quick, safe copy [OK]
Hint: Clones copy data fast without changing original [OK]
Common Mistakes:
Thinking clone deletes original data
Believing clone moves data between clouds
Confusing clone with encryption
2. Which of the following is the correct syntax to clone a table named sales_data in Snowflake?
easy
A. CREATE TABLE sales_data_clone CLONE sales_data;
B. CREATE TABLE sales_data_clone AS CLONE sales_data;
C. CLONE TABLE sales_data TO sales_data_clone;
D. COPY TABLE sales_data TO sales_data_clone;
Solution
Step 1: Recall Snowflake clone syntax
The correct syntax is CREATE TABLE new_table CLONE source_table;.
Step 2: Match syntax to options
CREATE TABLE sales_data_clone CLONE sales_data; matches the correct syntax exactly.
Final Answer:
CREATE TABLE sales_data_clone CLONE sales_data; -> Option A
Quick Check:
CREATE TABLE ... CLONE ... = correct syntax [OK]
Hint: Use CREATE TABLE new_table CLONE source_table syntax [OK]
Common Mistakes:
Using AS CLONE instead of CLONE
Using COPY instead of CLONE
Incorrect order of keywords
3. Given the following commands:
CREATE TABLE orders (id INT, amount FLOAT); INSERT INTO orders VALUES (1, 100.0), (2, 200.0); CREATE TABLE orders_clone CLONE orders; INSERT INTO orders_clone VALUES (3, 300.0); SELECT COUNT(*) FROM orders;
What will be the result of the SELECT COUNT(*) FROM orders; query?
medium
A. 2
B. 3
C. 0
D. Error
Solution
Step 1: Understand cloning effect on data
Cloning creates a copy at that moment. Changes to clone do not affect original.
Step 2: Analyze inserts and counts
Original table has 2 rows inserted. The clone gets a new row inserted separately.
Step 3: Query original table count
Original table still has 2 rows; clone changes do not affect it.
Final Answer:
2 -> Option A
Quick Check:
Original rows unchanged after clone insert [OK]
Hint: Clone changes don't affect original data count [OK]
Common Mistakes:
Assuming clone insert adds to original
Thinking clone shares insert changes
Expecting error due to cloning
4. You cloned a database for testing but later found that some data changes in the clone are missing. Which is the most likely cause?
medium
A. You forgot to commit the changes in the clone before querying.
B. Cloning only copies metadata, not data.
C. Changes were made in the original, not the clone.
D. You cloned the database before the data was inserted.
Solution
Step 1: Understand cloning timing
Cloning copies data as it exists at clone time; later changes in source are not included.
Step 2: Analyze missing data cause
If clone was made before data insertion, clone won't have that data.
Final Answer:
You cloned the database before the data was inserted. -> Option D
Quick Check:
Clone snapshot time matters for data presence [OK]
Hint: Clone captures data state at clone time only [OK]
Common Mistakes:
Assuming clone updates with source changes
Confusing metadata-only clone
Forgetting to commit changes
5. You want to create a backup of a large production schema without using extra storage. Which Snowflake feature should you use and why?
hard
A. Use CREATE DATABASE AS COPY which compresses data automatically.
B. Use CLONE to create a schema copy because it shares unchanged data and saves storage.
C. Create a new schema and manually copy all tables to save storage.
D. Export data to CSV files and store externally for backup.
Solution
Step 1: Identify backup needs
Backup should be space-efficient and quick for large data.