A Task in Snowflake is a way to schedule and automate SQL statements to run at specific times or intervals without manual intervention.
Click to reveal answer
beginner
How do you create a simple recurring Task in Snowflake?
Use the CREATE TASK statement with a schedule clause, for example: CREATE TASK my_task WAREHOUSE = my_wh SCHEDULE = 'USING CRON 0 * * * * UTC' AS SELECT CURRENT_TIMESTAMP(); This runs every hour.
Click to reveal answer
intermediate
What is the purpose of the WAREHOUSE parameter in a Snowflake Task?
The WAREHOUSE parameter specifies which compute resource runs the SQL statements of the Task. Snowflake automatically resumes the warehouse if it is suspended.
Click to reveal answer
beginner
How can you enable or disable a Task in Snowflake?
Use ALTER TASK <task_name> RESUME; to enable and ALTER TASK <task_name> SUSPEND; to disable the Task.
Click to reveal answer
intermediate
What happens if a Task's SQL statement fails during execution?
The Task logs the failure in the TASK_HISTORY view. The Task will try to run again at the next scheduled time. Failures do not stop future executions automatically.
Click to reveal answer
Which Snowflake object is used to schedule SQL statements automatically?
AStage
BStream
CTask
DWarehouse
✗ Incorrect
Tasks are designed to schedule and automate SQL statements in Snowflake.
What is required for a Task to run its SQL statements?
AA Database
BA Stream
CA Stage
DA Warehouse
✗ Incorrect
A Warehouse must be specified in the Task; Snowflake automatically resumes it if suspended.
How do you stop a Task from running temporarily?
AALTER TASK <name> SUSPEND;
BDROP TASK <name>;
CCREATE TASK <name>;
DALTER TASK <name> RESUME;
✗ Incorrect
SUSPEND pauses the Task without deleting it.
Which schedule format can be used in Snowflake Tasks?
AXML format
BCRON expressions
CJSON format
DYAML format
✗ Incorrect
Snowflake Tasks support CRON expressions for scheduling.
Where can you find the history of Task executions and errors?
ATASK_HISTORY view
BINFORMATION_SCHEMA.TABLES
CWAREHOUSE_MONITOR
DQUERY_HISTORY
✗ Incorrect
TASK_HISTORY shows execution details and errors for Tasks.
Explain how to create, enable, and schedule a Task in Snowflake.
Think about the SQL commands and parameters needed.
You got /4 concepts.
Describe what happens when a Task fails and how to monitor its execution.
Consider error handling and monitoring tools.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of a TASK in Snowflake?
easy
A. To create user accounts
B. To store large amounts of data
C. To automate running SQL statements on a schedule
D. To manage network security
Solution
Step 1: Understand the role of TASK in Snowflake
A TASK is designed to run SQL commands automatically at set times.
Step 2: Compare TASK purpose with other options
Storing data, creating users, and managing security are handled by other Snowflake features, not TASKS.
Final Answer:
To automate running SQL statements on a schedule -> Option C
Quick Check:
Task = automate SQL schedule [OK]
Hint: Tasks run SQL automatically on schedule [OK]
Common Mistakes:
Confusing TASK with data storage
Thinking TASK creates users
Assuming TASK manages security
2. Which of the following is the correct syntax to create a simple task that runs every hour in Snowflake?
easy
A. CREATE TASK my_task WAREHOUSE = my_wh SCHEDULE = 'USING CRON 0 * * * * UTC' AS SELECT CURRENT_TIMESTAMP();
B. CREATE TASK my_task WAREHOUSE = my_wh SCHEDULE = 'EVERY 1 HOUR' AS SELECT CURRENT_TIMESTAMP();
C. CREATE TASK my_task WAREHOUSE = my_wh SCHEDULE = 'CRON 0 0 * * *' AS SELECT CURRENT_TIMESTAMP();
D. CREATE TASK my_task WAREHOUSE = my_wh SCHEDULE = 'RUN EVERY HOUR' AS SELECT CURRENT_TIMESTAMP();
Solution
Step 1: Identify correct cron syntax for hourly schedule
The cron expression '0 * * * * UTC' means at minute 0 of every hour in UTC time.
Step 2: Check Snowflake task syntax
Snowflake requires SCHEDULE = 'USING CRON ...' format, so CREATE TASK my_task WAREHOUSE = my_wh SCHEDULE = 'USING CRON 0 * * * * UTC' AS SELECT CURRENT_TIMESTAMP(); matches this correctly.
When you try to resume the task, it fails. What is the problem?
medium
A. The warehouse name is missing
B. The cron expression has an invalid minute value
C. The SQL statement is invalid
D. The task name is not allowed
Solution
Step 1: Check the cron expression
Cron minute values must be between 0 and 59. '60' is invalid.
Step 2: Validate other parts
Warehouse is specified, SQL is valid, and task name is allowed, so no issues there.
Final Answer:
The cron expression has an invalid minute value -> Option B
Quick Check:
Cron minutes must be 0-59 [OK]
Hint: Cron minutes must be 0-59, not 60 [OK]
Common Mistakes:
Using 60 as a minute in cron
Ignoring cron syntax errors
Assuming warehouse or SQL errors cause failure
5. You want to create a task that runs a cleanup SQL every day at 3:30 AM UTC and uses warehouse 'clean_wh'. Which of the following is the correct way to create and enable this task?
hard
A. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 30 3 * * * UTC' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME;
B. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'EVERY DAY AT 3:30' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME;
C. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 3 30 * * * UTC' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME;
D. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 30 3 * * *' AS DELETE FROM temp_table;
Solution
Step 1: Verify cron expression for 3:30 AM UTC
The correct cron is '30 3 * * * UTC' meaning minute 30, hour 3.
Step 2: Check task creation and enabling
Task must be created with warehouse, schedule, SQL, and then resumed with ALTER TASK ... RESUME.
Step 3: Compare options
CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 30 3 * * * UTC' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME; uses correct cron, warehouse, SQL, and resumes the task. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'EVERY DAY AT 3:30' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME; uses invalid schedule syntax. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 3 30 * * * UTC' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME; swaps hour and minute. CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 30 3 * * *' AS DELETE FROM temp_table; misses RESUME command.
Final Answer:
CREATE TASK cleanup_task WAREHOUSE = clean_wh SCHEDULE = 'USING CRON 30 3 * * * UTC' AS DELETE FROM temp_table; ALTER TASK cleanup_task RESUME; -> Option A