SNOWPRO-CORE practice question 29 of 35
A company needs to read multiple terabytes of data for an initial load as part of a Snowflake migration. The company can control the number and size of CSV extract files. How does Snowflake recommend maximizing the load performance?
Full set: 628 questionsDomain Performance Management
To maximize data loading performance for a large initial load, Snowflake's primary recommendation is to leverage its massively parallel processing (MPP) architecture. This is achieved by splitting the large dataset into a greater number of smaller, evenly-sized files. The optimal compressed file size is between 100 MB and 250 MB. A virtual warehouse can then ingest these files concurrently, with each thread processing a separate file. This parallel execution dramatically increases throughput compared to loading a few very large files, as a single file cannot be split and will only be processed by a single thread, creating a bottleneck.
A. Snowpipe is optimized for continuous, small-volume data ingestion (micro-batching), not for a high-throughput, one-time bulk load of terabytes of data. The COPY command is the recommended tool.
B. This is incorrect. Loading the largest possible files (e.g., a single multi-terabyte file) prevents parallelism. The COPY command processes one file per thread, creating a severe performance bottleneck.
D. Row-by-row inserts are extremely inefficient for bulk data loading and are orders of magnitude slower than the file-based COPY command. This method should be avoided for large datasets.
1. Snowflake Documentation: Data Loading Considerations - File Sizing Best Practices and Recommendations.
"For the best performance and to avoid overloading the servers, we recommend aiming for compressed file sizes between 100 MB and 250 MB. Split larger data files into a greater number of smaller files to be loaded in parallel. The number of data files that can be processed in parallel is determined by the number of threads in a warehouse." This directly supports option C's file strategy and refutes option B.
2. Snowflake Documentation: Overview of Data Loading - Bulk Data Load.
"Snowflake is designed to load data in bulk using the COPY command... The COPY command leverages Snowflake’s massively parallel processing (MPP) compute clusters to load data concurrently from files." This highlights the importance of the COPY command and parallelism, which is enabled by having multiple files.
3. Snowflake Documentation: COPY INTO
