SOL-C01 · Question #135
A data engineering team is tasked with loading a large dataset (5TB) into Snowflake from an external S3 bucket. The data loading process is experiencing significant performance bottlenecks. Which of t
The correct answer is A. Increase the size of the virtual warehouse to a larger size (e.g., from SMALL to LARGE) before E. Partition the data in S3 into smaller files and ensure the virtual warehouse is appropriately sized. Temporarily scaling up the virtual warehouse (A) provides more compute nodes to process files concurrently, directly reducing load time for a single bulk operation. Partitioning the 5TB dataset into smaller files in S3 (E) is equally critical because Snowflake's COPY INTO command
Question
A data engineering team is tasked with loading a large dataset (5TB) into Snowflake from an external S3 bucket. The data loading process is experiencing significant performance bottlenecks. Which of the following strategies would MOST effectively improve the data loading performance, assuming the network bandwidth between Snowflake and S3 is sufficient?
Options
- AIncrease the size of the virtual warehouse to a larger size (e.g., from SMALL to LARGE) before
- BUse multiple virtual warehouses concurrently to load different subsets of the data from S3.
- CUse a larger virtual warehouse indefinitely to handle any potential performance peaks, even after
- DDisable auto-suspend on the virtual warehouse to prevent it from idling during the data load.
- EPartition the data in S3 into smaller files and ensure the virtual warehouse is appropriately sized
How the community answered
(61 responses)- A69% (42)
- B5% (3)
- C10% (6)
- D16% (10)
Explanation
Temporarily scaling up the virtual warehouse (A) provides more compute nodes to process files concurrently, directly reducing load time for a single bulk operation. Partitioning the 5TB dataset into smaller files in S3 (E) is equally critical because Snowflake's COPY INTO command parallelizes at the file level - each warehouse node picks up individual files, so one massive file means one thread; hundreds of smaller files (ideally 100–250MB each) means full parallel utilization across all nodes.
Why the distractors fail:
- B (multiple warehouses): Snowflake doesn't natively coordinate multiple warehouses for a single load; orchestrating this manually adds complexity without meaningful gain over one properly sized warehouse.
- C (permanently large warehouse): Keeping an oversized warehouse running indefinitely wastes credits - scale up for the load, then scale back down.
- D (disable auto-suspend): Auto-suspend only governs idle shutdown; the warehouse stays active during an active load regardless, so disabling it has zero performance impact.
Memory tip: Think "small files, big warehouse - temporarily." Snowflake parallelism is file-driven, so shredding data into small chunks is half the battle; the warehouse size determines how many chunks get processed at once. Scale up for the job, then scale back down to save cost.
Topics
Community Discussion
No community discussion yet for this question.